1/*- 2 * Copyright (C) 2014 Nathan Whitehorn 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 20 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 21 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 22 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 23 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * 25 * $FreeBSD: stable/11/stand/powerpc/kboot/host_syscall.h 329183 2018-02-12 20:51:28Z kevans $ 26 */ 27 28#ifndef _HOST_SYSCALL_H 29#define _HOST_SYSCALL_H 30 31#include <stand.h> 32 33ssize_t host_read(int fd, void *buf, size_t nbyte); 34ssize_t host_write(int fd, const void *buf, size_t nbyte); 35ssize_t host_seek(int fd, int64_t offset, int whence); 36int host_open(const char *path, int flags, int mode); 37ssize_t host_llseek(int fd, int32_t offset_high, int32_t offset_lo, uint64_t *result, int whence); 38int host_close(int fd); 39void *host_mmap(void *addr, size_t len, int prot, int flags, int fd, int); 40#define host_getmem(size) host_mmap(0, size, 3 /* RW */, 0x22 /* ANON */, -1, 0); 41struct old_utsname { 42 char sysname[65]; 43 char nodename[65]; 44 char release[65]; 45 char version[65]; 46 char machine[65]; 47}; 48int host_uname(struct old_utsname *); 49struct host_timeval { 50 int tv_sec; 51 int tv_usec; 52}; 53int host_gettimeofday(struct host_timeval *a, void *b); 54int host_select(int nfds, long *readfds, long *writefds, long *exceptfds, 55 struct host_timeval *timeout); 56int kexec_load(uint32_t start, int nsegs, uint32_t segs); 57int host_reboot(int, int, int, uint32_t); 58int host_getdents(int fd, void *dirp, int count); 59 60#endif 61