1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-02-15 20:36:59 +00:00
Files
DoctorWkt.unix-jun72/tools/apout/bsdtrap.h
2008-05-06 23:25:22 +00:00

430 lines
13 KiB
C

/* bsdtrap.h. Definitions for values and structures used in bsdtrap.c
*
* $Revision: 1.30 $
* $Date: 1999/03/01 19:14:16 $
*/
/* In this file, we list the trap number for each system call,
* and the structures associated with several of the systems
* calls in 2.11BSD UNIX
*/
#define S_INDIR 0
#define S_EXIT 1
#define S_FORK 2
#define S_READ 3
#define S_WRITE 4
#define S_OPEN 5
#define S_CLOSE 6
#define S_WAIT4 7
#define S_CREAT 8
#define S_LINK 9
#define S_UNLINK 10
#define S_EXECV 11
#define S_CHDIR 12
#define S_FCHDIR 13
#define S_MKNOD 14
#define S_CHMOD 15
#define S_CHOWN 16
#define S_CHFLAGS 17
#define S_FCHFLAGS 18
#define S_LSEEK 19
#define S_GETPID 20
#define S_MOUNT 21
#define S_UMOUNT 22
#define S_SYSCTL 23
#define S_GETUID 24
#define S_GETEUID 25
#define S_PTRACE 26
#define S_GETPPID 27
#define S_STATFS 28
#define S_FSTATFS 29
#define S_GETFSSTAT 30
#define S_SIGACTION 31
#define S_SIGPROCMASK 32
#define S_ACCESS 33
#define S_SIGPENDING 34
#define S_SIGALTSTACK 35
#define S_SYNC 36
#define S_KILL 37
#define S_STAT 38
#define S_GETLOGIN 39
#define S_LSTAT 40
#define S_DUP 41
#define S_PIPE 42
#define S_SETLOGIN 43
#define S_PROFIL 44
#define S_SETUID 45
#define S_SETEUID 46
#define S_GETGID 47
#define S_GETEGID 48
#define S_SETGID 49
#define S_SETEGID 50
#define S_ACCT 51
#define S_OLDPHYS 52
#define S_OLDLOCK 53
#define S_IOCTL 54
#define S_REBOOT 55
#define S_SYMLINK 57
#define S_READLINK 58
#define S_EXECVE 59
#define S_UMASK 60
#define S_CHROOT 61
#define S_FSTAT 62
#define S_GETPAGESIZE 64
#define S_VFORK 66
#define S_SBRK 69
#define S_VHANGUP 76
#define S_GETGROUPS 79
#define S_SETGROUPS 80
#define S_GETPGRP 81
#define S_SETPGRP 82
#define S_SETITIMER 83
#define S_WAIT 84
#define S_GETITIMER 86
#define S_GETHOSTNAME 87
#define S_SETHOSTNAME 88
#define S_GETDTABLESIZE 89
#define S_DUP2 90
#define S_UNUSED1 91
#define S_FCNTL 92
#define S_SELECT 93
#define S_UNUSED2 94
#define S_FSYNC 95
#define S_SETPRIORITY 96
#define S_SOCKET 97
#define S_CONNECT 98
#define S_ACCEPT 99
#define S_GETPRIORITY 100
#define S_SEND 101
#define S_RECV 102
#define S_SIGRETURN 103
#define S_BIND 104
#define S_SETSOCKOPT 105
#define S_LISTEN 106
#define S_SIGSUSPEND 107
#define S_SIGVEC 108
#define S_SIGBLOCK 109
#define S_SIGSETMASK 110
#define S_SIGPAUSE 111
#define S_SIGSTACK 112
#define S_RECVMSG 113
#define S_SENDMSG 114
#define S_GETTIMEOFDAY 116
#define S_GETRUSAGE 117
#define S_GETSOCKOPT 118
#define S_READV 120
#define S_WRITEV 121
#define S_SETTIMEOFDAY 122
#define S_FCHOWN 123
#define S_FCHMOD 124
#define S_RECVFROM 125
#define S_SETREUID 126
#define S_SETREGID 127
#define S_RENAME 128
#define S_TRUNCATE 129
#define S_FTRUNCATE 130
#define S_FLOCK 131
#define S_SENDTO 133
#define S_SHUTDOWN 134
#define S_SOCKETPAIR 135
#define S_MKDIR 136
#define S_RMDIR 137
#define S_UTIMES 138
#define S_ADJTIME 140
#define S_GETPEERNAME 141
#define S_GETHOSTID 142
#define S_SETHOSTID 143
#define S_GETRLIMIT 144
#define S_SETRLIMIT 145
#define S_KILLPG 146
#define S_NOSYS147 147
#define S_SETQUOTA 148
#define S_QUOTA 149
#define S_GETSOCKNAME 150
/*
* System call names.
*/
#ifdef BSDTRAP_NAME
char *bsdtrap_name[] = {
"indir", /* 0 = indir */
"exit", /* 1 = exit */
"fork", /* 2 = fork */
"read", /* 3 = read */
"write", /* 4 = write */
"open", /* 5 = open */
"close", /* 6 = close */
"wait4", /* 7 = wait4 */
"creat", /* 8 = creat */
"link", /* 9 = link */
"unlink", /* 10 = unlink */
"execv", /* 11 = execv */
"chdir", /* 12 = chdir */
"fchdir", /* 13 = fchdir */
"mknod", /* 14 = mknod */
"chmod", /* 15 = chmod */
"chown", /* 16 = chown; now 3 args */
"chflags", /* 17 = chflags */
"fchflags", /* 18 = fchflags */
"lseek", /* 19 = lseek */
"getpid", /* 20 = getpid */
"mount", /* 21 = mount */
"umount", /* 22 = umount */
"__sysctl", /* 23 = __sysctl */
"getuid", /* 24 = getuid */
"geteuid", /* 25 = geteuid */
"ptrace", /* 26 = ptrace */
"getppid", /* 27 = getppid */
"statfs", /* 28 = statfs */
"fstatfs", /* 29 = fstatfs */
"getfsstat", /* 30 = getfsstat */
"sigaction", /* 31 = sigaction */
"sigprocmask", /* 32 = sigprocmask */
"access", /* 33 = access */
"sigpending", /* 34 = sigpending */
"sigaltstack", /* 35 = sigaltstack */
"sync", /* 36 = sync */
"kill", /* 37 = kill */
"stat", /* 38 = stat */
"getlogin", /* 39 = getlogin */
"lstat", /* 40 = lstat */
"dup", /* 41 = dup */
"pipe", /* 42 = pipe */
"setlogin", /* 43 = setlogin */
"profil", /* 44 = profil */
"setuid", /* 45 = setuid */
"seteuid", /* 46 = seteuid */
"getgid", /* 47 = getgid */
"getegid", /* 48 = getegid */
"setgid", /* 49 = setgid */
"setegid", /* 50 = setegid */
"acct", /* 51 = turn acct off/on */
"old phys", /* 52 = old set phys addr */
"old lock", /* 53 = old lock in core */
"ioctl", /* 54 = ioctl */
"reboot", /* 55 = reboot */
"old mpx - nosys", /* 56 = old mpxchan */
"symlink", /* 57 = symlink */
"readlink", /* 58 = readlink */
"execve", /* 59 = execve */
"umask", /* 60 = umask */
"chroot", /* 61 = chroot */
"fstat", /* 62 = fstat */
"#63", /* 63 = used internally */
"getpagesize", /* 64 = getpagesize */
"4.3 mremap - nosys", /* 65 = mremap */
"vfork", /* 66 = vfork */
"old vread - nosys", /* 67 = old vread */
"old vwrite - nosys", /* 68 = old vwrite */
"sbrk", /* 69 = sbrk */
"4.3 sstk - nosys", /* 70 = sstk */
"4.3 mmap - nosys", /* 71 = mmap */
"old vadvise - nosys", /* 72 = old vadvise */
"4.3 munmap - nosys", /* 73 = munmap */
"4.3 mprotect - nosys", /* 74 = mprotect */
"4.3 madvise - nosys", /* 75 = madvise */
"vhangup", /* 76 = vhangup */
"old vlimit - nosys", /* 77 = old vlimit */
"4.3 mincore - nosys", /* 78 = mincore */
"getgroups", /* 79 = getgroups */
"setgroups", /* 80 = setgroups */
"getpgrp", /* 81 = getpgrp */
"setpgrp", /* 82 = setpgrp */
"setitimer", /* 83 = setitimer */
"wait", /* 84 = wait */
"4.3 swapon - nosys", /* 85 = swapon */
"getitimer", /* 86 = getitimer */
"gethostname", /* 87 = gethostname */
"sethostname", /* 88 = sethostname */
"getdtablesize", /* 89 = getdtablesize */
"dup2", /* 90 = dup2 */
"nosys", /* 91 = unused */
"fcntl", /* 92 = fcntl */
"select", /* 93 = select */
"nosys", /* 94 = unused */
"fsync", /* 95 = fsync */
"setpriority", /* 96 = setpriority */
"socket", /* 97 = socket */
"connect", /* 98 = connect */
"accept", /* 99 = accept */
"getpriority", /* 100 = getpriority */
"send", /* 101 = send */
"recv", /* 102 = recv */
"sigreturn", /* 103 = sigreturn */
"bind", /* 104 = bind */
"setsockopt", /* 105 = setsockopt */
"listen", /* 106 = listen */
"sigsuspend", /* 107 = sigsuspend */
"sigvec", /* 108 = sigvec */
"sigblock", /* 109 = sigblock */
"sigsetmask", /* 110 = sigsetmask */
"sigpause", /* 111 = sigpause */
"sigstack", /* 112 = sigstack */
"recvmsg", /* 113 = recvmsg */
"sendmsg", /* 114 = sendmsg */
"old vtrace - nosys", /* 115 = old vtrace */
"gettimeofday", /* 116 = gettimeofday */
"getrusage", /* 117 = getrusage */
"getsockopt", /* 118 = getsockopt */
"4.3 resuba - nosys", /* 119 = resuba */
"readv", /* 120 = readv */
"writev", /* 121 = writev */
"settimeofday", /* 122 = settimeofday */
"fchown", /* 123 = fchown */
"fchmod", /* 124 = fchmod */
"recvfrom", /* 125 = recvfrom */
"setreuid", /* 126 = setreuid */
"setregid", /* 127 = setregid */
"rename", /* 128 = rename */
"truncate", /* 129 = truncate */
"ftruncate", /* 130 = ftruncate */
"flock", /* 131 = flock */
"old portal - nosys", /* 132 = old portal */
"sendto", /* 133 = sendto */
"shutdown", /* 134 = shutdown */
"socketpair", /* 135 = socketpair */
"mkdir", /* 136 = mkdir */
"rmdir", /* 137 = rmdir */
"utimes", /* 138 = utimes */
"4.2 sigreturn - nosys", /* 139 = old 4.2 sigreturn */
"adjtime", /* 140 = adjtime */
"getpeername", /* 141 = getpeername */
"gethostid", /* 142 = gethostid */
"sethostid", /* 143 = sethostid */
"getrlimit", /* 144 = getrlimit */
"setrlimit", /* 145 = setrlimit */
"killpg", /* 146 = killpg */
"#147", /* 147 = nosys */
"setquota", /* 148 = setquota */
"quota", /* 149 = quota */
"getsockname", /* 150 = getsockname */
};
#endif
/* fcntl defines used by open */
#define BSD_RDONLY 0x0000 /* open for reading only */
#define BSD_WRONLY 0x0001 /* open for writing only */
#define BSD_RDWR 0x0002 /* open for reading and writing */
#define BSD_NONBLOCK 0x0004 /* no delay */
#define BSD_APPEND 0x0008 /* set append mode */
#define BSD_SHLOCK 0x0010 /* open with shared file lock */
#define BSD_EXLOCK 0x0020 /* open with exclusive file lock */
#define BSD_ASYNC 0x0040 /* signal pgrp when data ready */
#define BSD_FSYNC 0x0080 /* synchronous writes */
#define BSD_CREAT 0x0200 /* create if nonexistant */
#define BSD_TRUNC 0x0400 /* truncate to zero length */
#define BSD_EXCL 0x0800 /* error if already exists */
/* stat struct, used by S_STAT, S_FSTAT, S_LSTAT */
struct tr_stat
{
int16_t st_dev;
u_int16_t st_ino;
u_int16_t st_mode;
int16_t st_nlink;
u_int16_t st_uid;
u_int16_t st_gid;
int16_t st_rdev;
int8_t st_size[4]; /* Alignment problems */
int8_t st_atim[4]; /* Alignment problems */
int16_t st_spare1;
int8_t st_mtim[4]; /* Alignment problems */
int16_t st_spare2;
int8_t st_ctim[4]; /* Alignment problems */
int16_t st_spare3;
int8_t st_blksize[4]; /* Alignment problems */
int8_t st_blocks[4]; /* Alignment problems */
u_int16_t st_flags;
u_int16_t st_spare4[3];
};
/* Directory entry */
#define TR_DIRBLKSIZ 512
#define TR_MAXNAMLEN 63
struct tr_direct {
u_int16_t d_ino; /* inode number of entry */
u_int16_t d_reclen; /* length of this record */
u_int16_t d_namlen; /* length of string in d_name */
char d_name[TR_MAXNAMLEN+1]; /* name must be no longer than this */
};
/* used by S_ADJTIME */
struct tr_timeval {
u_int32_t tv_sec; /* seconds */
u_int32_t tv_usec; /* and microseconds */
};
/* Used by S_GETTIMEOFDAY */
struct tr_timezone {
int16_t tz_minuteswest; /* minutes west of Greenwich */
int16_t tz_dsttime; /* type of dst correction */
};
/* used in itimer calls */
struct tr_itimerval {
struct tr_timeval it_interval; /* timer interval */
struct tr_timeval it_value; /* current value */
};
/* Used by socket calls */
struct tr_sockaddr {
u_int16_t sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};
/* used in rlimit calls */
struct tr_rlimit {
int32_t rlim_cur; /* current (soft) limit */
int32_t rlim_max; /* maximum value for rlim_cur */
};
struct tr_rusage {
struct tr_timeval ru_utime; /* user time used */
struct tr_timeval ru_stime; /* system time used */
u_int32_t ru_maxrss;
u_int32_t ru_ixrss; /* integral shared memory size */
u_int32_t ru_idrss; /* integral unshared data size */
u_int32_t ru_isrss; /* integral unshared stack size */
u_int32_t ru_minflt; /* page reclaims */
u_int32_t ru_majflt; /* page faults */
u_int32_t ru_ovly; /* overlay changes */
u_int32_t ru_nswap; /* swaps */
u_int32_t ru_inblock; /* block input operations */
u_int32_t ru_oublock; /* block output operations */
u_int32_t ru_msgsnd; /* messages sent */
u_int32_t ru_msgrcv; /* messages received */
u_int32_t ru_nsignals; /* signals received */
u_int32_t ru_nvcsw; /* voluntary context switches */
u_int32_t ru_nivcsw; /* involuntary context switches */
};
/* for writev, readv */
struct tr_iovec {
u_int16_t iov_base;
u_int16_t iov_len;
};
/* A union which will point at the trap args, so that
* we can get at the various args of different types
*/
typedef union {
int16_t sarg[6]; /* Signed 16-bit args */
u_int16_t uarg[6]; /* Unsigned 16-bit args */
} arglist;
#define sarg1 A->sarg[0]
#define sarg2 A->sarg[1]
#define sarg3 A->sarg[2]
#define sarg4 A->sarg[3]
#define sarg5 A->sarg[4]
#define sarg6 A->sarg[5]
#define uarg1 A->uarg[0]
#define uarg2 A->uarg[1]
#define uarg3 A->uarg[2]
#define uarg4 A->uarg[3]
#define uarg5 A->uarg[4]
#define uarg6 A->uarg[5]