return -1;
}
-int no_ioctl(uint8_t minor, uint16_t a, char *b)
+int no_ioctl(uint8_t minor, uarg_t a, char *b)
{
minor;
a;
#define PIO_TABSIZE 1
#define PIO_ENTRYSIZE 2
-int sys_ioctl(uint8_t minor, uint16_t request, char *data)
+int sys_ioctl(uint8_t minor, uarg_t request, char *data)
{
if (minor != 3) {
udata.u_error = ENOTTY;
uint16_t p_pid; /* Process ID */
uint16_t p_uid;
struct p_tab *p_pptr; /* Process parent's table entry */
- uint16_t p_alarm; /* Centiseconds until alarm goes off */
+ uarg_t p_alarm; /* Centiseconds until alarm goes off */
uint16_t p_exitval; /* Exit value */
void * p_wait; /* Address of thing waited for */
uint16_t p_page; /* Page mapping data */
#ifdef CONFIG_PROFIL
uint8_t p_profscale;
void * p_profbuf;
- uint16_t p_profsize;
- uint16_t p_profoff;
+ uaddr_t p_profsize;
+ uaddr_t p_profoff;
#endif
} p_tab, *ptptr;
arg_t u_argn3; /* args n-3, n-2, n-1, and n */
void * u_isp; /* Value of initial sp (argv) */
usize_t u_top; /* Top of memory for this task */
- int16_t (*u_sigvec[NSIGS])(); /* Array of signal vectors */
+ int (*u_sigvec[NSIGS])(); /* Array of signal vectors */
/**** If you change this top section, also update offsets in "kernel.def" ****/
char * u_base; /* Source or dest for I/O */
uint16_t u_gid;
uint16_t u_euid;
uint16_t u_egid;
- uint16_t u_break; /* Top of data space */
+ uaddr_t u_break; /* Top of data space */
char u_name[8]; /* Name invoked with */
clock_t u_utime; /* Elapsed ticks in user mode */
clock_t u_stime; /* Ticks in system mode */
/* platform/tricks.s */
COMMON void switchout(void);
-COMMON void __fastcall__ doexec(uint16_t start_addr);
+COMMON void __fastcall__ doexec(uaddr_t start_addr);
COMMON void __fastcall__ switchin(ptptr process);
COMMON int16_t __fastcall__ dofork(ptptr child);
CODE1 int no_open(uint8_t minor, uint16_t flag);
CODE1 int no_close(uint8_t minor);
CODE1 int no_rdwr(uint8_t minir, uint8_t rawflag, uint8_t flag);
-CODE1 int no_ioctl(uint8_t minor, uint16_t a, char *b);
+CODE1 int no_ioctl(uint8_t minor, uarg_t a, char *b);
/* filesys.c */
/* open file, "name" in user address space */
CODE1 inoptr rwsetup (bool is_read, uint8_t *flag);
/* mm.c */
-CODE2 unsigned int uputsys(unsigned char *from, unsigned int size);
-CODE2 unsigned int ugetsys(unsigned char *to, unsigned int size);
+CODE2 unsigned int uputsys(unsigned char *from, usize_t size);
+CODE2 unsigned int ugetsys(unsigned char *to, usize_t size);
/* process.c */
CODE2 void psleep(void *event);
/* provided by architecture or helpers */
CODE2 void device_init(void); /* provided by platform */
CODE2 void pagemap_init(void);
-CODE2 void pagemap_add(uint8_t page);
+CODE2 void pagemap_add(uint8_t page); /* FIXME: may need a page type for big boxes */
CODE2 void pagemap_free(ptptr p);
CODE2 int pagemap_alloc(ptptr p);
CODE2 int pagemap_realloc(uint16_t p);
COMMON void invalidate_cache(uint16_t page);
COMMON void flush_cache(ptptr p);
-CODE2 int16_t __exit(void); /* FUZIX system call 0 */
-CODE2 int16_t _open(void); /* FUZIX system call 1 */
-CODE2 int16_t _close(void); /* FUZIX system call 2 */
-CODE2 int16_t _rename(void); /* FUZIX system call 3 */
-CODE2 int16_t _mknod(void); /* FUZIX system call 4 */
-CODE2 int16_t _link(void); /* FUZIX system call 5 */
-CODE2 int16_t _unlink(void); /* FUZIX system call 6 */
-CODE2 int16_t _read(void); /* FUZIX system call 7 */
-CODE2 int16_t _write(void); /* FUZIX system call 8 */
-CODE2 int16_t _lseek(void); /* FUZIX system call 9 */
-CODE2 int16_t _chdir(void); /* FUZIX system call 10 */
-CODE2 int16_t _sync(void); /* FUZIX system call 11 */
-CODE2 int16_t _access(void); /* FUZIX system call 12 */
-CODE2 int16_t _chmod(void); /* FUZIX system call 13 */
-CODE2 int16_t _chown(void); /* FUZIX system call 14 */
-CODE2 int16_t _stat(void); /* FUZIX system call 15 */
-CODE2 int16_t _fstat(void); /* FUZIX system call 16 */
-CODE2 int16_t _dup(void); /* FUZIX system call 17 */
-CODE2 int16_t _getpid(void); /* FUZIX system call 18 */
-CODE2 int16_t _getppid(void); /* FUZIX system call 19 */
-CODE2 int16_t _getuid(void); /* FUZIX system call 20 */
-CODE2 int16_t _umask(void); /* FUZIX system call 21 */
-CODE2 int16_t _getfsys(void); /* FUZIX system call 22 */
-CODE2 int16_t _execve(void); /* FUZIX system call 23 */
-CODE2 int16_t _getdirent(void); /* FUZIX system call 24 */
-CODE2 int16_t _setuid(void); /* FUZIX system call 25 */
-CODE2 int16_t _setgid(void); /* FUZIX system call 26 */
-CODE2 int16_t _time(void); /* FUZIX system call 27 */
-CODE2 int16_t _stime(void); /* FUZIX system call 28 */
-CODE2 int16_t _ioctl(void); /* FUZIX system call 29 */
-CODE2 int16_t _brk(void); /* FUZIX system call 30 */
-CODE2 int16_t _sbrk(void); /* FUZIX system call 31 */
-CODE2 int16_t _fork(void); /* FUZIX system call 32 */
-CODE2 int16_t _mount(void); /* FUZIX system call 33 */
-CODE2 int16_t _umount(void); /* FUZIX system call 34 */
-CODE2 int16_t _signal(void); /* FUZIX system call 35 */
-CODE2 int16_t _dup2(void); /* FUZIX system call 36 */
-CODE2 int16_t _pause(void); /* FUZIX system call 37 */
-CODE2 int16_t _alarm(void); /* FUZIX system call 38 */
-CODE2 int16_t _kill(void); /* FUZIX system call 39 */
-CODE2 int16_t _pipe(void); /* FUZIX system call 40 */
-CODE2 int16_t _getgid(void); /* FUZIX system call 41 */
-CODE2 int16_t _times(void); /* FUZIX system call 42 */
-CODE2 int16_t _utime(void); /* FUZIX system call 43 */
-CODE2 int16_t _geteuid(void); /* FUZIX system call 44 */
-CODE2 int16_t _getegid(void); /* FUZIX system call 45 */
-CODE2 int16_t _chroot(void); /* FUZIX system call 46 */
-CODE2 int16_t _fcntl(void); /* FUZIX system call 47 */
-CODE2 int16_t _fchdir(void); /* FUZIX system call 48 */
-CODE2 int16_t _fchmod(void); /* FUZIX system call 49 */
-CODE2 int16_t _fchown(void); /* FUZIX system call 50 */
-CODE2 int16_t _mkdir(void); /* FUZIX system call 51 */
-CODE2 int16_t _rmdir(void); /* FUZIX system call 52 */
-CODE2 int16_t _setpgrp(void); /* FUZIX system call 53 */
-CODE2 int16_t _uname(void); /* FUZIX system call 54 */
-CODE2 int16_t _waitpid(void); /* FUZIX system call 55 */
-CODE2 int16_t _profil(void); /* FUZIX system call 56 */
-CODE2 int16_t _uadmin(void); /* FUZIX system call 57 */
-CODE2 int16_t _nice(void); /* FUZIX system call 58 */
-CODE2 int16_t _sigdisp(void); /* FUZIX system call 59 */
-CODE2 int16_t _flock(void); /* FUZIX system call 60 */
-CODE2 int16_t _getpgrp(void); /* FUZIX system call 61 */
-CODE2 int16_t _sched_yield(void); /* FUZIX system call 62 */
+CODE2 arg_t __exit(void); /* FUZIX system call 0 */
+CODE2 arg_t _open(void); /* FUZIX system call 1 */
+CODE2 arg_t _close(void); /* FUZIX system call 2 */
+CODE2 arg_t _rename(void); /* FUZIX system call 3 */
+CODE2 arg_t _mknod(void); /* FUZIX system call 4 */
+CODE2 arg_t _link(void); /* FUZIX system call 5 */
+CODE2 arg_t _unlink(void); /* FUZIX system call 6 */
+CODE2 arg_t _read(void); /* FUZIX system call 7 */
+CODE2 arg_t _write(void); /* FUZIX system call 8 */
+CODE2 arg_t _lseek(void); /* FUZIX system call 9 */
+CODE2 arg_t _chdir(void); /* FUZIX system call 10 */
+CODE2 arg_t _sync(void); /* FUZIX system call 11 */
+CODE2 arg_t _access(void); /* FUZIX system call 12 */
+CODE2 arg_t _chmod(void); /* FUZIX system call 13 */
+CODE2 arg_t _chown(void); /* FUZIX system call 14 */
+CODE2 arg_t _stat(void); /* FUZIX system call 15 */
+CODE2 arg_t _fstat(void); /* FUZIX system call 16 */
+CODE2 arg_t _dup(void); /* FUZIX system call 17 */
+CODE2 arg_t _getpid(void); /* FUZIX system call 18 */
+CODE2 arg_t _getppid(void); /* FUZIX system call 19 */
+CODE2 arg_t _getuid(void); /* FUZIX system call 20 */
+CODE2 arg_t _umask(void); /* FUZIX system call 21 */
+CODE2 arg_t _getfsys(void); /* FUZIX system call 22 */
+CODE2 arg_t _execve(void); /* FUZIX system call 23 */
+CODE2 arg_t _getdirent(void); /* FUZIX system call 24 */
+CODE2 arg_t _setuid(void); /* FUZIX system call 25 */
+CODE2 arg_t _setgid(void); /* FUZIX system call 26 */
+CODE2 arg_t _time(void); /* FUZIX system call 27 */
+CODE2 arg_t _stime(void); /* FUZIX system call 28 */
+CODE2 arg_t _ioctl(void); /* FUZIX system call 29 */
+CODE2 arg_t _brk(void); /* FUZIX system call 30 */
+CODE2 arg_t _sbrk(void); /* FUZIX system call 31 */
+CODE2 arg_t _fork(void); /* FUZIX system call 32 */
+CODE2 arg_t _mount(void); /* FUZIX system call 33 */
+CODE2 arg_t _umount(void); /* FUZIX system call 34 */
+CODE2 arg_t _signal(void); /* FUZIX system call 35 */
+CODE2 arg_t _dup2(void); /* FUZIX system call 36 */
+CODE2 arg_t _pause(void); /* FUZIX system call 37 */
+CODE2 arg_t _alarm(void); /* FUZIX system call 38 */
+CODE2 arg_t _kill(void); /* FUZIX system call 39 */
+CODE2 arg_t _pipe(void); /* FUZIX system call 40 */
+CODE2 arg_t _getgid(void); /* FUZIX system call 41 */
+CODE2 arg_t _times(void); /* FUZIX system call 42 */
+CODE2 arg_t _utime(void); /* FUZIX system call 43 */
+CODE2 arg_t _geteuid(void); /* FUZIX system call 44 */
+CODE2 arg_t _getegid(void); /* FUZIX system call 45 */
+CODE2 arg_t _chroot(void); /* FUZIX system call 46 */
+CODE2 arg_t _fcntl(void); /* FUZIX system call 47 */
+CODE2 arg_t _fchdir(void); /* FUZIX system call 48 */
+CODE2 arg_t _fchmod(void); /* FUZIX system call 49 */
+CODE2 arg_t _fchown(void); /* FUZIX system call 50 */
+CODE2 arg_t _mkdir(void); /* FUZIX system call 51 */
+CODE2 arg_t _rmdir(void); /* FUZIX system call 52 */
+CODE2 arg_t _setpgrp(void); /* FUZIX system call 53 */
+CODE2 arg_t _uname(void); /* FUZIX system call 54 */
+CODE2 arg_t _waitpid(void); /* FUZIX system call 55 */
+CODE2 arg_t _profil(void); /* FUZIX system call 56 */
+CODE2 arg_t _uadmin(void); /* FUZIX system call 57 */
+CODE2 arg_t _nice(void); /* FUZIX system call 58 */
+CODE2 arg_t _sigdisp(void); /* FUZIX system call 59 */
+CODE2 arg_t _flock(void); /* FUZIX system call 60 */
+CODE2 arg_t _getpgrp(void); /* FUZIX system call 61 */
+CODE2 arg_t _sched_yield(void); /* FUZIX system call 62 */
#endif /* __FUZIX__KERNEL_DOT_H__ */
#include <kdata.h>
#include <printf.h>
-unsigned int uputsys(unsigned char *from, unsigned int size)
+unsigned int uputsys(unsigned char *from, usize_t size)
{
if (udata.u_sysio)
memcpy(udata.u_base, from, size);
return size;
}
-unsigned int ugetsys(unsigned char *to, unsigned int size)
+unsigned int ugetsys(unsigned char *to, usize_t size)
{
if (udata.u_sysio)
memcpy(to, udata.u_base, size);
#define argv (char **)udata.u_argn1
#define envp (char **)udata.u_argn2
-int16_t _execve(void)
+arg_t _execve(void)
{
staticfast inoptr ino;
staticfast unsigned char *buf;
/* We copy the 32bit offset in and out rather than passing it
as a 32bit OS might */
-int16_t _lseek(void)
+arg_t _lseek(void)
{
inoptr ino;
struct oft *o;
sync()
********************************************/
-int16_t _sync(void)
+arg_t _sync(void)
{
inoptr ino;
#define path (char *)udata.u_argn
#define buf (char *)udata.u_argn1
-int16_t _stat(void)
+arg_t _stat(void)
{
inoptr ino;
if (!(ino = n_open(path, NULLINOPTR)))
#define fd (int16_t)udata.u_argn
#define buf (char *)udata.u_argn1
-int16_t _fstat(void)
+arg_t _fstat(void)
{
inoptr ino;
}
-int16_t dup_op(int fd, int base)
+arg_t dup_op(int fd, int base)
{
int8_t newd;
********************************************/
#define oldd (uint16_t)udata.u_argn
-int16_t _dup(void)
+arg_t _dup(void)
{
int8_t newd;
if (getinode(oldd) == NULLINODE)
#define oldd (int16_t)udata.u_argn
#define newd (int16_t)udata.u_argn1
-int16_t _dup2(void)
+arg_t _dup2(void)
{
if (getinode(oldd) == NULLINODE)
********************************************/
#define mask (int16_t)udata.u_argn
-int16_t _umask(void)
+arg_t _umask(void)
{
int omask;
#define request (int)udata.u_argn1
#define data (char *)udata.u_argn2
-int16_t _ioctl(void)
+arg_t _ioctl(void)
{
inoptr ino;
uint16_t dev;
********************************************/
#define uindex (int8_t)udata.u_argn
-int16_t _close(void)
+arg_t _close(void)
{
return (doclose(uindex));
}
********************************************/
#define fildes (int16_t *)udata.u_argn
-int16_t _pipe(void)
+arg_t _pipe(void)
{
int8_t u1, u2, oft1, oft2;
inoptr ino;
#define path (char *)udata.u_argn
/* Helper for the bits shared with rename */
-int16_t unlinki(inoptr ino, inoptr pino, char *fname)
+arg_t unlinki(inoptr ino, inoptr pino, char *fname)
{
if (getmode(ino) == F_DIR) {
udata.u_error = EISDIR;
}
/* kind of pinned here by unlinki() */
-int16_t _unlink(void)
+arg_t _unlink(void)
{
inoptr ino;
inoptr pino;
#define buf (char *)udata.u_argn1
#define nbytes (susize_t)udata.u_argn2
-int16_t _read(void)
+arg_t _read(void)
{
inoptr ino;
uint8_t flag;
* Trivial helper to isolate directory size changes
* if we make them.
*/
-int16_t _getdirent(void)
+arg_t _getdirent(void)
{
if (nbytes < 32) {
udata.u_error = ENOSPC;
#define buf (char *)udata.u_argn1
#define nbytes (susize_t)udata.u_argn2
-int16_t _write(void)
+arg_t _write(void)
{
inoptr ino;
uint8_t flag;
* we can potentially bank them out if we do a 32K/32K mode)
*/
-static int16_t chdiroot_op(inoptr ino, inoptr * p)
+static arg_t chdiroot_op(inoptr ino, inoptr * p)
{
if (getmode(ino) != F_DIR) {
udata.u_error = ENOTDIR;
********************************************/
#define dir (char *)udata.u_argn
-int16_t _chdir(void)
+arg_t _chdir(void)
{
inoptr newcwd;
********************************************/
#define fd (int16_t)udata.u_argn
-int16_t _fchdir(void)
+arg_t _fchdir(void)
{
inoptr newcwd;
********************************************/
#define dir (char *)udata.u_argn
-int16_t _chroot(void)
+arg_t _chroot(void)
{
inoptr newroot;
#define mode (int16_t)udata.u_argn1
#define dev (int16_t)udata.u_argn2
-int16_t _mknod(void)
+arg_t _mknod(void)
{
inoptr ino;
inoptr parent;
#define path (char *)udata.u_argn
#define mode (int16_t)udata.u_argn1
-int16_t _access(void)
+arg_t _access(void)
{
inoptr ino;
uint16_t euid;
#define mode (int16_t)udata.u_argn1
-static int16_t chmod_op(inoptr ino)
+static arg_t chmod_op(inoptr ino)
{
if (ino->c_node.i_uid != udata.u_euid && esuper())
return (-1);
********************************************/
#define path (char *)udata.u_argn
-int16_t _chmod(void)
+arg_t _chmod(void)
{
inoptr ino;
int ret;
********************************************/
#define fd (int16_t)udata.u_argn
-int16_t _fchmod(void)
+arg_t _fchmod(void)
{
inoptr ino;
********************************************/
#define path (char *)udata.u_argn
-int16_t _chown(void)
+arg_t _chown(void)
{
inoptr ino;
int ret;
********************************************/
#define fd (int16_t)udata.u_argn
-int16_t _fchown(void)
+arg_t _fchown(void)
{
inoptr ino;
#define file (char *)udata.u_argn
#define buf (char *)udata.u_argn1
-int16_t _utime(void)
+arg_t _utime(void)
{
inoptr ino;
time_t t[2];
*******************************************/
#define fd (int16_t)udata.u_argn
-int16_t _acct(void)
+arg_t _acct(void)
{
#ifdef CONFIG_ACCT
inoptr inode;
#define dev (uint16_t)udata.u_argn
#define buf (struct filesys *)udata.u_argn1
-int16_t _getfsys(void)
+arg_t _getfsys(void)
{
struct mount *m = fs_tab_get(dev);
if (m == NULL || m->m_dev == NO_DEVICE) {
#define flag (uint16_t)udata.u_argn1
#define mode (uint16_t)udata.u_argn2
-int16_t _open(void)
+arg_t _open(void)
{
int8_t uindex;
int8_t oftindex;
#define name1 (char *)udata.u_argn
#define name2 (char *)udata.u_argn1
-int16_t _link(void)
+arg_t _link(void)
{
inoptr ino;
inoptr ino2;
#define request (int)udata.u_argn1
#define data (int)udata.u_argn2
-int16_t _fcntl(void)
+arg_t _fcntl(void)
{
uint8_t *acc;
int newd;
#define buf (char *)udata.u_argn
#define len (uint16_t)udata.u_argn1
-int16_t _uname(void)
+arg_t _uname(void)
{
uint16_t size = sizeof(sysinfo) + uname_len;
if (size > len)
#define file (uint16_t)udata.u_argn
#define lockop (uint16_t)udata.u_argn1
-int16_t _flock(void)
+arg_t _flock(void)
{
inoptr ino;
struct oft *o;
#define src (char *)udata.u_argn
#define dst (char *)udata.u_argn1
-int16_t _rename(void)
+arg_t _rename(void)
{
staticfast inoptr srci, srcp, dsti, dstp;
char fname[FILENAME_LEN + 1];
#define name (char *)udata.u_argn
#define mode (int16_t)udata.u_argn1
-int16_t _mkdir(void)
+arg_t _mkdir(void)
{
inoptr ino;
inoptr parent;
********************************************/
#define path (char *)udata.u_argn
-int16_t _rmdir(void)
+arg_t _rmdir(void)
{
inoptr ino;
inoptr parent;
#define dir (char *)udata.u_argn1
#define flags (int)udata.u_argn2
-int16_t _mount(void)
+arg_t _mount(void)
{
inoptr sino, dino;
uint16_t dev;
********************************************/
#define spec (char *)udata.u_argn
-int16_t _umount(void)
+arg_t _umount(void)
{
inoptr sino;
uint16_t dev;
/*******************************************
profil (samples, size, offset, scale) Function 56
char *samples;
-uint16_t offset;
-uint16_t size;
-uint8_t scale;
+usize_t offset;
+usize_t size;
+uint16_t scale;
********************************************/
#define samples (char *)udata.u_argn
#define size (usize_t)udata.u_argn2
#define scale (uint16_t)udata.u_argn3
-int16_t _profil(void)
+arg_t _profil(void)
{
#ifdef CONFIG_PROFIL
/* For performance reasons scale as
#define func (int16_t)udata.u_argn1
#define ptr (char *)udata.u_argn2
-int16_t _uadmin(void)
+arg_t _uadmin(void)
{
if (!esuper())
return -1;
********************************************/
#define pri (int16_t)udata.u_argn
-int16_t _nice(void)
+arg_t _nice(void)
{
ptptr p = udata.u_ptab;
int16_t np;
Return Process ID Number (PID) to Caller.
********************************************/
-int16_t _getpid(void)
+arg_t _getpid(void)
{
return (udata.u_ptab->p_pid);
}
Return Parent's Process ID Number (PPID).
********************************************/
-int16_t _getppid(void)
+arg_t _getppid(void)
{
return (udata.u_ptab->p_pptr->p_pid);
}
Return User ID Number (UID) to Caller.
********************************************/
-int16_t _getuid(void)
+arg_t _getuid(void)
{
return (udata.u_ptab->p_uid);
}
Return Effective User ID Number (EUID).
********************************************/
-int16_t _geteuid(void)
+arg_t _geteuid(void)
{
return (udata.u_euid);
}
Return Group ID Number (GID) to Caller.
********************************************/
-int16_t _getgid(void)
+arg_t _getgid(void)
{
return (udata.u_gid);
}
Return Effective Group ID Number (EGID).
********************************************/
-int16_t _getegid(void)
+arg_t _getegid(void)
{
return (udata.u_egid);
}
Set User ID Number (UID) of Process. Must
be SuperUser or owner, else Error (EPERM).
********************************************/
-#define uid (int)udata.u_argn
+#define uid (uint16_t)udata.u_argn
-int16_t _setuid(void)
+arg_t _setuid(void)
{
if (super() || udata.u_ptab->p_uid == uid) {
udata.u_ptab->p_uid = uid;
********************************************/
#define gid (int16_t)udata.u_argn
-int16_t _setgid(void)
+arg_t _setgid(void)
{
if (super() || udata.u_gid == gid) {
udata.u_gid = gid;
#define tvec (time_t *)udata.u_argn
#define type (uint16_t)udata.u_argn1
-int16_t _time(void)
+arg_t _time(void)
{
time_t t;
switch (type) {
#define tvec (time_t *)udata.u_argn
#define type (uint16_t)udata.u_argn1
-int16_t _stime(void)
+arg_t _stime(void)
{
time_t t;
if (type != 0) {
********************************************/
#define buf (char *)udata.u_argn
-int16_t _times(void)
+arg_t _times(void)
{
irqflags_t irq;
********************************************/
#define addr (char *)udata.u_argn
-int16_t _brk(void)
+arg_t _brk(void)
{
/* FIXME: when we start building binaries with the stack embedded in them
they will need a different test.. */
/* Don't allow break to be set past user's stack pointer */
/*** St. Nitschke allow min. of 512 bytes for Stack ***/
- if (addr >= (char *) (udata.u_syscall_sp) - 512) {
+ if (addr >= (char *) brk_limit()) {
kprintf("%d: out of memory\n", udata.u_ptab->p_pid);
udata.u_error = ENOMEM;
return (-1);
}
- udata.u_break = (unsigned) addr;
+ udata.u_break = (uaddr_t) addr;
return (0);
}
sbrk (incr) Function 31
uint16_t incr;
********************************************/
-#define incr (uint16_t)udata.u_argn
+#define incr (usize_t)udata.u_argn
-int16_t _sbrk(void)
+arg_t _sbrk(void)
{
- unsigned oldbrk;
+ uaddr_t oldbrk;
udata.u_argn += (oldbrk = udata.u_break);
if ((unsigned) udata.u_argn < oldbrk)
#define statloc (int *)udata.u_argn1
#define options (int)udata.u_argn2
-int16_t _waitpid(void)
+arg_t _waitpid(void)
{
ptptr p;
int retval;
********************************************/
#define val (int16_t)udata.u_argn
-int16_t __exit(void)
+arg_t __exit(void)
{
doexit(val, 0);
return 0; // ... yeah. that might not happen.
fork () Function 32
********************************************/
-int16_t _fork(void)
+arg_t _fork(void)
{
// allocate new process
struct p_tab *new_process;
- int16_t r;
+ arg_t r;
irqflags_t irq;
new_process = ptab_alloc();
#define t (int16_t)udata.u_argn
-int16_t _pause(void)
+arg_t _pause(void)
{
/* 0 is a traditional "pause", n is a timeout for doing
sleep etc without ugly alarm hacks */
int16_t (*func)();
********************************************/
#define sig (int16_t)udata.u_argn
-#define func (int16_t (*)())udata.u_argn1
+#define func (int (*)())udata.u_argn1
-int16_t _signal(void)
+arg_t _signal(void)
{
int16_t retval;
irqflags_t irq;
#define disp (int16_t)udata.u_argn1
/* Implement sighold/sigrelse */
-int16_t _sigdisp(void)
+arg_t _sigdisp(void)
{
if (sig < 1 || sig >= NSIGS || sig == SIGKILL || sig == SIGSTOP) {
udata.u_error = EINVAL;
#define pid (int16_t)udata.u_argn
#define sig (int16_t)udata.u_argn1
-int16_t _kill(void)
+arg_t _kill(void)
{
ptptr p;
int f = 0, s = 0;
/*******************************************
_alarm (secs) Function 38
-uint16_t secs;
+uarg_t secs;
********************************************/
-#define secs (int16_t)udata.u_argn
+#define secs (uarg_t)udata.u_argn
-int16_t _alarm(void)
+arg_t _alarm(void)
{
- int16_t retval;
+ arg_t retval;
retval = udata.u_ptab->p_alarm / 10;
udata.u_ptab->p_alarm = secs * 10;
setpgrp (void) Function 53
********************************************/
-int16_t _setpgrp(void)
+arg_t _setpgrp(void)
{
udata.u_ptab->p_pgrp = udata.u_ptab->p_pid;
return (0);
getpgrp (void) Function 61
*********************************************/
-int16_t _getpgrp(void)
+arg_t _getpgrp(void)
{
udata.u_ptab->p_pgrp = udata.u_ptab->p_pid;
return (0);
_sched_yield (void) Function 62
********************************************/
-int16_t _sched_yield(void)
+arg_t _sched_yield(void)
{
if (nready > 1)
switchin(getproc());