From: Wichert Akkerman Date: Tue, 27 Mar 2001 12:17:16 +0000 (+0000) Subject: Add Linux/hppa port, patch from Richard Hirst X-Git-Tag: v4.5.18~1072 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c1652e2095fcd9ac62cf2669ef6aec5fd0052851;p=strace Add Linux/hppa port, patch from Richard Hirst --- diff --git a/CREDITS b/CREDITS index fbb414b1..8f9ebc24 100644 --- a/CREDITS +++ b/CREDITS @@ -41,3 +41,4 @@ porting to new systems: D.J. Barrow Topi Miettinen GaĆ«l Roualland + Richard Hirst diff --git a/NEWS b/NEWS index f36c95f6..7f2dcf1b 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ Changes in 4.3 ============== -* Linux/ia64 port added +* Linux/ia64 and Linux/hppa ports added * The usual Linux syscall updates (includes 32bit uid/gid support), * Linux ioctl list updated * Support IPv6 scope ids diff --git a/acconfig.h b/acconfig.h index 1c97c3ac..eb45d573 100644 --- a/acconfig.h +++ b/acconfig.h @@ -15,6 +15,9 @@ /* Define for UnixWare systems. */ #undef UNIXWARE +/* Define if this is an hppa architecture */ +#undef HPPA + /* Define if this is an i386, i486 or pentium architecture. */ #undef I386 diff --git a/configure.in b/configure.in index 30787900..3847550c 100644 --- a/configure.in +++ b/configure.in @@ -65,6 +65,9 @@ arm) s390) arch=s390 ;; +hppa*|parisc*) + arch=hppa + ;; *) AC_MSG_ERROR(this architecture is not yet supported by strace) ;; @@ -73,7 +76,7 @@ AC_MSG_RESULT($arch) # Autoheader trick. Heh, heh. arch_list=' -@@@syms="$syms I386 IA64 M68K SPARC MIPS ALPHA ARM POWERPC"@@@ +@@@syms="$syms I386 IA64 M68K SPARC MIPS ALPHA ARM POWERPC HPPA"@@@ ' osarch="$opsys" diff --git a/defs.h b/defs.h index d97978ab..29c450e0 100644 --- a/defs.h +++ b/defs.h @@ -157,6 +157,13 @@ extern int ptrace(); # define REG_SP 29 # define REG_EPC 64 #endif /* MIPS */ +#ifdef HPPA +# define PT_GR20 (20*4) +# define PT_GR26 (26*4) +# define PT_GR28 (28*4) +# define PT_IAOQ0 (106*4) +# define PT_IAOQ1 (107*4) +#endif /* HPPA */ #endif /* LINUX */ #define SUPPORTED_PERSONALITIES 1 @@ -277,7 +284,7 @@ struct tcb { #define TCB_FOLLOWFORK 00400 /* Process should have forks followed */ #define TCB_REPRINT 01000 /* We should reprint this syscall on exit */ #ifdef LINUX -#if defined(ALPHA) || defined(SPARC) || defined(POWERPC) +#if defined(ALPHA) || defined(SPARC) || defined(POWERPC) || defined(HPPA) #define TCB_WAITEXECVE 02000 /* ignore SIGTRAP after exceve */ #endif /* ALPHA */ #endif /* LINUX */ diff --git a/file.c b/file.c index a2663d1a..da3b8a2d 100644 --- a/file.c +++ b/file.c @@ -107,11 +107,17 @@ struct stat { # define off_t off_t # define loff_t loff_t # endif +# ifdef HPPA /* asm-parisc/stat.h defines stat64 */ +# undef stat64 +# endif # define stat libc_stat # define stat64 libc_stat64 # include # undef stat # undef stat64 +# ifdef HPPA +# define stat64 hpux_stat64 +# endif #else # include #endif @@ -883,7 +889,7 @@ long addr; } #endif /* HAVE_STAT64 */ -#if defined(linux) && !defined(IA64) +#if defined(linux) && !defined(IA64) && !defined(HPPA) static void convertoldstat(oldbuf, newbuf) const struct __old_kernel_stat *oldbuf; @@ -971,7 +977,7 @@ struct tcb *tcp; } #ifdef linux -# if !defined(IA64) +# if !defined(IA64) && !defined(HPPA) int sys_oldstat(tcp) struct tcb *tcp; @@ -1018,7 +1024,7 @@ struct tcb *tcp; } #ifdef linux -# if !defined(IA64) +# if !defined(IA64) && !defined(HPPA) int sys_oldfstat(tcp) struct tcb *tcp; @@ -1066,7 +1072,7 @@ struct tcb *tcp; } #ifdef linux -# if !defined(IA64) +# if !defined(IA64) && !defined(HPPA) int sys_oldlstat(tcp) struct tcb *tcp; diff --git a/linux/hppa/.cvsignore b/linux/hppa/.cvsignore new file mode 100644 index 00000000..9fa499b1 --- /dev/null +++ b/linux/hppa/.cvsignore @@ -0,0 +1,3 @@ +Makefile +ioctldefs.h +ioctls.h diff --git a/linux/hppa/Makefile.in b/linux/hppa/Makefile.in new file mode 100644 index 00000000..6b029aa0 --- /dev/null +++ b/linux/hppa/Makefile.in @@ -0,0 +1,57 @@ +# +# $Id$ +# + +srcdir = @srcdir@ +VPATH = @srcdir@ + +CC = @CC@ +CPP = @CPP@ +SHELL = /bin/sh + +DEFS = @DEFS@ +LDLIBS = @LIBS@ + +CFLAGS = -g +LDFLAGS = -g +WARNFLAGS = @WARNFLAGS@ + +CPPFLAGS = +INCLUDES = -I. -I.. -I$(srcdir)/.. -I../.. -I$(srcdir) + +includedir = @includedir@ + +all: ioctlent.h errnoent.h signalent.h syscallent.h + +ioctlent.raw: ioctlent.sh + $(SHELL) $(srcdir)/ioctlent.sh $(includedir) >$@ + +ioctlent.h: ioctlent.raw ioctlsort + ./ioctlsort >$@ + +ioctlsort: ioctlsort.o + $(CC) $(LDFLAGS) ioctlsort.o -o ioctlsort + +ioctlsort.o: ../../ioctlsort.c + $(CC) $(WARNFLAGS) $(DEFS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS) -c $(srcdir)/../../ioctlsort.c + +ioctlsort.o: ioctlent.raw + +errnoent.h: ../../errnoent.sh $(includedir)/asm/errno.h + $(SHELL) $(srcdir)/../../errnoent.sh $(includedir)/asm/errno.h >$@ + +signalent.h: ../../signalent.sh $(includedir)/asm/signal.h + $(SHELL) $(srcdir)/../../signalent.sh $(includedir)/asm/signal.h >$@ + +#syscallent.h: ../../syscallent.sh $(includedir)/sys/syscall.h +syscallent.h: + $(SHELL) $(srcdir)/../../syscallent.sh $(includedir)/sys/syscall.h >$@ + +clean: + rm -f ioctlent.c *.raw *.tmp *.o ioctlsort + +distclean: clean + rm -f Makefile + +maintainer-clean: distclean + rm -f ioctlent.h errnoent.h signalent.h diff --git a/linux/hppa/errnoent.h b/linux/hppa/errnoent.h new file mode 100644 index 00000000..2c926333 --- /dev/null +++ b/linux/hppa/errnoent.h @@ -0,0 +1,254 @@ + "ERRNO_0", /* 0 */ + "EPERM", /* 1 */ + "ENOENT", /* 2 */ + "ESRCH", /* 3 */ + "EINTR", /* 4 */ + "EIO", /* 5 */ + "ENXIO", /* 6 */ + "E2BIG", /* 7 */ + "ENOEXEC", /* 8 */ + "EBADF", /* 9 */ + "ECHILD", /* 10 */ + "EAGAIN", /* 11 */ + "ENOMEM", /* 12 */ + "EACCES", /* 13 */ + "EFAULT", /* 14 */ + "ENOTBLK", /* 15 */ + "EBUSY", /* 16 */ + "EEXIST", /* 17 */ + "EXDEV", /* 18 */ + "ENODEV", /* 19 */ + "ENOTDIR", /* 20 */ + "EISDIR", /* 21 */ + "EINVAL", /* 22 */ + "ENFILE", /* 23 */ + "EMFILE", /* 24 */ + "ENOTTY", /* 25 */ + "ETXTBSY", /* 26 */ + "EFBIG", /* 27 */ + "ENOSPC", /* 28 */ + "ESPIPE", /* 29 */ + "EROFS", /* 30 */ + "EMLINK", /* 31 */ + "EPIPE", /* 32 */ + "EDOM", /* 33 */ + "ERANGE", /* 34 */ + "ENOMSG", /* 35 */ + "EIDRM", /* 36 */ + "ECHRNG", /* 37 */ + "EL2NSYNC", /* 38 */ + "EL3HLT", /* 39 */ + "EL3RST", /* 40 */ + "ELNRNG", /* 41 */ + "EUNATCH", /* 42 */ + "ENOCSI", /* 43 */ + "EL2HLT", /* 44 */ + "EDEADLK", /* 45 */ + "ENOLCK", /* 46 */ + "EILSEQ", /* 47 */ + "ERRNO_48", /* 48 */ + "ERRNO_49", /* 49 */ + "ENONET", /* 50 */ + "ENODATA", /* 51 */ + "ETIME", /* 52 */ + "ENOSR", /* 53 */ + "ENOSTR", /* 54 */ + "ENOPKG", /* 55 */ + "ERRNO_56", /* 56 */ + "ENOLINK", /* 57 */ + "EADV", /* 58 */ + "ESRMNT", /* 59 */ + "ECOMM", /* 60 */ + "EPROTO", /* 61 */ + "ERRNO_62", /* 62 */ + "ERRNO_63", /* 63 */ + "EMULTIHOP", /* 64 */ + "ERRNO_65", /* 65 */ + "EDOTDOT", /* 66 */ + "EBADMSG", /* 67 */ + "EUSERS", /* 68 */ + "EDQUOT", /* 69 */ + "ESTALE", /* 70 */ + "EREMOTE", /* 71 */ + "EOVERFLOW", /* 72 */ + "ERRNO_73", /* 73 */ + "ERRNO_74", /* 74 */ + "ERRNO_75", /* 75 */ + "ERRNO_76", /* 76 */ + "ERRNO_77", /* 77 */ + "ERRNO_78", /* 78 */ + "ERRNO_79", /* 79 */ + "ERRNO_80", /* 80 */ + "ERRNO_81", /* 81 */ + "ERRNO_82", /* 82 */ + "ERRNO_83", /* 83 */ + "ERRNO_84", /* 84 */ + "ERRNO_85", /* 85 */ + "ERRNO_86", /* 86 */ + "ERRNO_87", /* 87 */ + "ERRNO_88", /* 88 */ + "ERRNO_89", /* 89 */ + "ERRNO_90", /* 90 */ + "ERRNO_91", /* 91 */ + "ERRNO_92", /* 92 */ + "ERRNO_93", /* 93 */ + "ERRNO_94", /* 94 */ + "ERRNO_95", /* 95 */ + "ERRNO_96", /* 96 */ + "ERRNO_97", /* 97 */ + "ERRNO_98", /* 98 */ + "ERRNO_99", /* 99 */ + "ERRNO_100", /* 100 */ + "ERRNO_101", /* 101 */ + "ERRNO_102", /* 102 */ + "ERRNO_103", /* 103 */ + "ERRNO_104", /* 104 */ + "ERRNO_105", /* 105 */ + "ERRNO_106", /* 106 */ + "ERRNO_107", /* 107 */ + "ERRNO_108", /* 108 */ + "ERRNO_109", /* 109 */ + "ERRNO_110", /* 110 */ + "ERRNO_111", /* 111 */ + "ERRNO_112", /* 112 */ + "ERRNO_113", /* 113 */ + "ERRNO_114", /* 114 */ + "ERRNO_115", /* 115 */ + "ERRNO_116", /* 116 */ + "ERRNO_117", /* 117 */ + "ERRNO_118", /* 118 */ + "ERRNO_119", /* 119 */ + "ERRNO_120", /* 120 */ + "ERRNO_121", /* 121 */ + "ERRNO_122", /* 122 */ + "ERRNO_123", /* 123 */ + "ERRNO_124", /* 124 */ + "ERRNO_125", /* 125 */ + "ERRNO_126", /* 126 */ + "ERRNO_127", /* 127 */ + "ERRNO_128", /* 128 */ + "ERRNO_129", /* 129 */ + "ERRNO_130", /* 130 */ + "ERRNO_131", /* 131 */ + "ERRNO_132", /* 132 */ + "ERRNO_133", /* 133 */ + "ERRNO_134", /* 134 */ + "ERRNO_135", /* 135 */ + "ERRNO_136", /* 136 */ + "ERRNO_137", /* 137 */ + "ERRNO_138", /* 138 */ + "ERRNO_139", /* 139 */ + "ERRNO_140", /* 140 */ + "ERRNO_141", /* 141 */ + "ERRNO_142", /* 142 */ + "ERRNO_143", /* 143 */ + "ERRNO_144", /* 144 */ + "ERRNO_145", /* 145 */ + "ERRNO_146", /* 146 */ + "ERRNO_147", /* 147 */ + "ERRNO_148", /* 148 */ + "ERRNO_149", /* 149 */ + "ERRNO_150", /* 150 */ + "ERRNO_151", /* 151 */ + "ERRNO_152", /* 152 */ + "ERRNO_153", /* 153 */ + "ERRNO_154", /* 154 */ + "ERRNO_155", /* 155 */ + "ERRNO_156", /* 156 */ + "ERRNO_157", /* 157 */ + "ERRNO_158", /* 158 */ + "ERRNO_159", /* 159 */ + "EBADE", /* 160 */ + "EBADR", /* 161 */ + "EXFULL", /* 162 */ + "ENOANO", /* 163 */ + "EBADRQC", /* 164 */ + "EBADSLT", /* 165 */ + "EBFONT", /* 166 */ + "ENOTUNIQ", /* 167 */ + "EBADFD", /* 168 */ + "EREMCHG", /* 169 */ + "ELIBACC", /* 170 */ + "ELIBBAD", /* 171 */ + "ELIBSCN", /* 172 */ + "ELIBMAX", /* 173 */ + "ELIBEXEC", /* 174 */ + "ERESTART", /* 175 */ + "ESTRPIPE", /* 176 */ + "EUCLEAN", /* 177 */ + "ENOTNAM", /* 178 */ + "ENAVAIL", /* 179 */ + "EISNAM", /* 180 */ + "EREMOTEIO", /* 181 */ + "ENOMEDIUM", /* 182 */ + "EMEDIUMTYPE", /* 183 */ + "ERRNO_184", /* 184 */ + "ERRNO_185", /* 185 */ + "ERRNO_186", /* 186 */ + "ERRNO_187", /* 187 */ + "ERRNO_188", /* 188 */ + "ERRNO_189", /* 189 */ + "ERRNO_190", /* 190 */ + "ERRNO_191", /* 191 */ + "ERRNO_192", /* 192 */ + "ERRNO_193", /* 193 */ + "ERRNO_194", /* 194 */ + "ERRNO_195", /* 195 */ + "ERRNO_196", /* 196 */ + "ERRNO_197", /* 197 */ + "ERRNO_198", /* 198 */ + "ERRNO_199", /* 199 */ + "ERRNO_200", /* 200 */ + "ERRNO_201", /* 201 */ + "ERRNO_202", /* 202 */ + "ERRNO_203", /* 203 */ + "ERRNO_204", /* 204 */ + "ERRNO_205", /* 205 */ + "ERRNO_206", /* 206 */ + "ERRNO_207", /* 207 */ + "ERRNO_208", /* 208 */ + "ERRNO_209", /* 209 */ + "ERRNO_210", /* 210 */ + "ERRNO_211", /* 211 */ + "ERRNO_212", /* 212 */ + "ERRNO_213", /* 213 */ + "ERRNO_214", /* 214 */ + "ENOSYM", /* 215 */ + "ENOTSOCK", /* 216 */ + "EDESTADDRREQ", /* 217 */ + "EMSGSIZE", /* 218 */ + "EPROTOTYPE", /* 219 */ + "ENOPROTOOPT", /* 220 */ + "EPROTONOSUPPORT", /* 221 */ + "ESOCKTNOSUPPORT", /* 222 */ + "EOPNOTSUPP", /* 223 */ + "EPFNOSUPPORT", /* 224 */ + "EAFNOSUPPORT", /* 225 */ + "EADDRINUSE", /* 226 */ + "EADDRNOTAVAIL", /* 227 */ + "ENETDOWN", /* 228 */ + "ENETUNREACH", /* 229 */ + "ENETRESET", /* 230 */ + "ECONNABORTED", /* 231 */ + "ECONNRESET", /* 232 */ + "ENOBUFS", /* 233 */ + "EISCONN", /* 234 */ + "ENOTCONN", /* 235 */ + "ESHUTDOWN", /* 236 */ + "ETOOMANYREFS", /* 237 */ + "ETIMEDOUT", /* 238 */ + "ECONNREFUSED", /* 239 */ + "EREMOTERELEASE", /* 240 */ + "EHOSTDOWN", /* 241 */ + "EHOSTUNREACH", /* 242 */ + "ERRNO_243", /* 243 */ + "EALREADY", /* 244 */ + "EINPROGRESS", /* 245 */ + "EWOULDBLOCK", /* 246 */ + "ENOTEMPTY", /* 247 */ + "ENAMETOOLONG", /* 248 */ + "ELOOP", /* 249 */ + "ERRNO_250", /* 250 */ + "ENOSYS", /* 251 */ + "ENOTSUP", /* 252 */ + "ECANCELLED", /* 253 */ diff --git a/linux/hppa/ioctlent.h b/linux/hppa/ioctlent.h new file mode 100644 index 00000000..b3da4e46 --- /dev/null +++ b/linux/hppa/ioctlent.h @@ -0,0 +1,600 @@ +{"asm/contregs.h", "AC_M_AFAR", 0x600}, +{"asm/contregs.h", "AC_M_SFSR", 0x300}, +{"asm/fbio.h", "FBIOGATTR", 0x40584606}, +{"asm/fbio.h", "FBIOGCURMAX", 0x4004461c}, +{"asm/fbio.h", "FBIOGCURPOS", 0x8004461b}, +{"asm/fbio.h", "FBIOGCURSOR", 0xc02c4619}, +{"asm/fbio.h", "FBIOGETCMAP", 0x4604}, +{"asm/fbio.h", "FBIOGTYPE", 0x40184600}, +{"asm/fbio.h", "FBIOGVIDEO", 0x40044608}, +{"asm/fbio.h", "FBIOPUTCMAP", 0x4605}, +{"asm/fbio.h", "FBIOSATTR", 0x80584605}, +{"asm/fbio.h", "FBIOSCURPOS", 0x8004461a}, +{"asm/fbio.h", "FBIOSCURSOR", 0x802c4618}, +{"asm/fbio.h", "FBIOSVIDEO", 0x80044607}, +{"asm/ioctls.h", "FIOASYNC", 0x8004667d}, +{"asm/ioctls.h", "FIOCLEX", 0x20006601}, +{"asm/ioctls.h", "FIONBIO", 0x8004667e}, +{"asm/ioctls.h", "FIONCLEX", 0x20006602}, +{"asm/ioctls.h", "FIONREAD", 0x4004667f}, +{"asm/ioctls.h", "TCFLSH", 0x00005407}, +{"asm/ioctls.h", "TCGETA", 0x40125401}, +{"asm/ioctls.h", "TCGETS", 0x40245410}, +{"asm/ioctls.h", "TCSBRK", 0x00005405}, +{"asm/ioctls.h", "TCSBRKP", 0x5425}, +{"asm/ioctls.h", "TCSETA", 0x80125402}, +{"asm/ioctls.h", "TCSETAF", 0x80125404}, +{"asm/ioctls.h", "TCSETAW", 0x80125403}, +{"asm/ioctls.h", "TCSETS", 0x80245411}, +{"asm/ioctls.h", "TCSETSF", 0x80245413}, +{"asm/ioctls.h", "TCSETSW", 0x80245412}, +{"asm/ioctls.h", "TCXONC", 0x00005406}, +{"asm/ioctls.h", "TIOCCONS", 0x20007424}, +{"asm/ioctls.h", "TIOCEXCL", 0x2000740d}, +{"asm/ioctls.h", "TIOCGETD", 0x40047400}, +{"asm/ioctls.h", "TIOCGLCKTRMIOS", 0x5456}, +{"asm/ioctls.h", "TIOCGPGRP", 0x40047483}, +{"asm/ioctls.h", "TIOCGSERIAL", 0x541e}, +{"asm/ioctls.h", "TIOCGSOFTCAR", 0x40047464}, +{"asm/ioctls.h", "TIOCGWINSZ", 0x40087468}, +{"asm/ioctls.h", "TIOCLINUX", 0x541c}, +{"asm/ioctls.h", "TIOCMBIC", 0x8004746b}, +{"asm/ioctls.h", "TIOCMBIS", 0x8004746c}, +{"asm/ioctls.h", "TIOCMGET", 0x4004746a}, +{"asm/ioctls.h", "TIOCMSET", 0x8004746d}, +{"asm/ioctls.h", "TIOCNOTTY", 0x20007471}, +{"asm/ioctls.h", "TIOCNXCL", 0x2000740e}, +{"asm/ioctls.h", "TIOCOUTQ", 0x40047473}, +{"asm/ioctls.h", "TIOCPKT", 0x80047470}, +{"asm/ioctls.h", "TIOCSCTTY", 0x20007484}, +{"asm/ioctls.h", "TIOCSERCONFIG", 0x5453}, +{"asm/ioctls.h", "TIOCSERGETLSR", 0x5459}, +{"asm/ioctls.h", "TIOCSERGETMULTI", 0x545a}, +{"asm/ioctls.h", "TIOCSERGSTRUCT", 0x5458}, +{"asm/ioctls.h", "TIOCSERGWILD", 0x5454}, +{"asm/ioctls.h", "TIOCSERSETMULTI", 0x545b}, +{"asm/ioctls.h", "TIOCSERSWILD", 0x5455}, +{"asm/ioctls.h", "TIOCSETD", 0x80047401}, +{"asm/ioctls.h", "TIOCSLCKTRMIOS", 0x5457}, +{"asm/ioctls.h", "TIOCSPGRP", 0x80047482}, +{"asm/ioctls.h", "TIOCSSERIAL", 0x541f}, +{"asm/ioctls.h", "TIOCSSOFTCAR", 0x80047465}, +{"asm/ioctls.h", "TIOCSTI", 0x80017472}, +{"asm/ioctls.h", "TIOCSWINSZ", 0x80087467}, +{"asm/ioctls.h", "TIOCTTYGSTRUCT", 0x5426}, +{"asm/ioctls.h", "__TCGETSTAT", 0x200054c8}, +{"asm/ioctls.h", "__TCSETSTAT", 0x200054c9}, +{"asm/ioctls.h", "__TIOCCBRK", 0x2000747a}, +{"asm/ioctls.h", "__TIOCCDTR", 0x20007478}, +{"asm/ioctls.h", "__TIOCFLUSH", 0x80047410}, +{"asm/ioctls.h", "__TIOCGETC", 0x40067412}, +{"asm/ioctls.h", "__TIOCGETP", 0x40067408}, +{"asm/ioctls.h", "__TIOCGETX", 0x40047423}, +{"asm/ioctls.h", "__TIOCGLTC", 0x40067474}, +{"asm/ioctls.h", "__TIOCGSIZE", 0x40087426}, +{"asm/ioctls.h", "__TIOCHPCL", 0x20007402}, +{"asm/ioctls.h", "__TIOCISIZE", 0x40047481}, +{"asm/ioctls.h", "__TIOCISPACE", 0x40047480}, +{"asm/ioctls.h", "__TIOCLBIC", 0x8004747e}, +{"asm/ioctls.h", "__TIOCLBIS", 0x8004747f}, +{"asm/ioctls.h", "__TIOCLGET", 0x8004747c}, +{"asm/ioctls.h", "__TIOCLSET", 0x8004747d}, +{"asm/ioctls.h", "__TIOCMODG", 0x40047403}, +{"asm/ioctls.h", "__TIOCMODS", 0x80047404}, +{"asm/ioctls.h", "__TIOCREMOTE", 0x80047469}, +{"asm/ioctls.h", "__TIOCSBRK", 0x2000747b}, +{"asm/ioctls.h", "__TIOCSDTR", 0x20007479}, +{"asm/ioctls.h", "__TIOCSETC", 0x80067411}, +{"asm/ioctls.h", "__TIOCSETN", 0x8006740a}, +{"asm/ioctls.h", "__TIOCSETP", 0x80067409}, +{"asm/ioctls.h", "__TIOCSETX", 0x80047422}, +{"asm/ioctls.h", "__TIOCSIGNAL", 0x80047421}, +{"asm/ioctls.h", "__TIOCSLTC", 0x80067475}, +{"asm/ioctls.h", "__TIOCSSIZE", 0x80087425}, +{"asm/ioctls.h", "__TIOCSTART", 0x2000746e}, +{"asm/ioctls.h", "__TIOCSTOP", 0x2000746f}, +{"asm/ioctls.h", "__TIOCTCNTL", 0x80047420}, +{"asm/ioctls.h", "__TIOCUCNTL", 0x80047466}, +{"asm/kbio.h", "KIOCCMD", 0x80046b08}, +{"asm/kbio.h", "KIOCGTRANS", 0x40046b05}, +{"asm/kbio.h", "KIOCLAYOUT", 0x40046b14}, +{"asm/kbio.h", "KIOCSDIRECT", 0x80046b0a}, +{"asm/kbio.h", "KIOCTRANS", 0x80046b00}, +{"asm/kbio.h", "KIOCTYPE", 0x40046b09}, +{"asm/sockios.h", "FIOGETOWN", 0x8903}, +{"asm/sockios.h", "FIOSETOWN", 0x8901}, +{"asm/sockios.h", "SIOCATMARK", 0x8905}, +{"asm/sockios.h", "SIOCGPGRP", 0x8904}, +{"asm/sockios.h", "SIOCGSTAMP", 0x8906}, +{"asm/sockios.h", "SIOCSPGRP", 0x8902}, +{"asm/vuid_event.h", "VUIDGFORMAT", 0x40047602}, +{"asm/vuid_event.h", "VUIDSFORMAT", 0x80047601}, +{"linux/apm_bios.h", "APM_IOC_STANDBY", 0x20004101}, +{"linux/apm_bios.h", "APM_IOC_SUSPEND", 0x20004102}, +{"linux/baycom.h", "BAYCOMCTL_CALIBRATE", 0x2000420a}, +{"linux/baycom.h", "BAYCOMCTL_DEBUG1", 0x40044212}, +{"linux/baycom.h", "BAYCOMCTL_DEBUG2", 0x40044213}, +{"linux/baycom.h", "BAYCOMCTL_DEBUG3", 0x40044214}, +{"linux/baycom.h", "BAYCOMCTL_GETBITS", 0x40014211}, +{"linux/baycom.h", "BAYCOMCTL_GETDCD", 0x40014200}, +{"linux/baycom.h", "BAYCOMCTL_GETPARAMS", 0x40244208}, +{"linux/baycom.h", "BAYCOMCTL_GETPTT", 0x40014201}, +{"linux/baycom.h", "BAYCOMCTL_GETSAMPLES", 0x40014210}, +{"linux/baycom.h", "BAYCOMCTL_GETSTAT", 0x40144207}, +{"linux/baycom.h", "BAYCOMCTL_PARAM_FULLDUP", 0x20004206}, +{"linux/baycom.h", "BAYCOMCTL_PARAM_PPERSIST", 0x20004203}, +{"linux/baycom.h", "BAYCOMCTL_PARAM_SLOTTIME", 0x20004204}, +{"linux/baycom.h", "BAYCOMCTL_PARAM_TXDELAY", 0x20004202}, +{"linux/baycom.h", "BAYCOMCTL_PARAM_TXTAIL", 0x20004205}, +{"linux/baycom.h", "BAYCOMCTL_SETPARAMS", 0x40244209}, +{"linux/cdk.h", "STL_BINTR", 0x20007314}, +{"linux/cdk.h", "STL_BRESET", 0x20007317}, +{"linux/cdk.h", "STL_BSTART", 0x20007315}, +{"linux/cdk.h", "STL_BSTOP", 0x20007316}, +{"linux/cdk.h", "STL_GETPFLAG", 0x20007350}, +{"linux/cdk.h", "STL_SETPFLAG", 0x20007351}, +{"linux/cdrom.h", "CDROMCLOSETRAY", 0x5319}, +{"linux/cdrom.h", "CDROMEJECT", 0x5309}, +{"linux/cdrom.h", "CDROMEJECT_SW", 0x530f}, +{"linux/cdrom.h", "CDROMLOADFROMSLOT", 0x531a}, +{"linux/cdrom.h", "CDROMMULTISESSION", 0x5310}, +{"linux/cdrom.h", "CDROMPAUSE", 0x5301}, +{"linux/cdrom.h", "CDROMPLAYBLK", 0x5317}, +{"linux/cdrom.h", "CDROMPLAYMSF", 0x5303}, +{"linux/cdrom.h", "CDROMPLAYTRKIND", 0x5304}, +{"linux/cdrom.h", "CDROMREADALL", 0x5318}, +{"linux/cdrom.h", "CDROMREADAUDIO", 0x530e}, +{"linux/cdrom.h", "CDROMREADCOOKED", 0x5315}, +{"linux/cdrom.h", "CDROMREADMODE1", 0x530d}, +{"linux/cdrom.h", "CDROMREADMODE2", 0x530c}, +{"linux/cdrom.h", "CDROMREADRAW", 0x5314}, +{"linux/cdrom.h", "CDROMREADTOCENTRY", 0x5306}, +{"linux/cdrom.h", "CDROMREADTOCHDR", 0x5305}, +{"linux/cdrom.h", "CDROMRESET", 0x5312}, +{"linux/cdrom.h", "CDROMRESUME", 0x5302}, +{"linux/cdrom.h", "CDROMSEEK", 0x5316}, +{"linux/cdrom.h", "CDROMSTART", 0x5308}, +{"linux/cdrom.h", "CDROMSTOP", 0x5307}, +{"linux/cdrom.h", "CDROMSUBCHNL", 0x530b}, +{"linux/cdrom.h", "CDROMVOLCTRL", 0x530a}, +{"linux/cdrom.h", "CDROMVOLREAD", 0x5313}, +{"linux/cdrom.h", "CDROM_GET_UPC", 0x5311}, +{"linux/cm206.h", "CDROMRESET", 0x5312}, +{"linux/cm206.h", "CDROM_GET_UPC", 0x5311}, +{"linux/cm206.h", "CM206CTL_GET_LAST_STAT", 0x20002001}, +{"linux/cm206.h", "CM206CTL_GET_STAT", 0x20002000}, +{"linux/comstats.h", "COM_CLRPORTSTATS", 0x2000631f}, +{"linux/comstats.h", "COM_GETBRDSTATS", 0x20006320}, +{"linux/comstats.h", "COM_GETPORTSTATS", 0x2000631e}, +{"linux/comstats.h", "COM_READBOARD", 0x20006329}, +{"linux/comstats.h", "COM_READPANEL", 0x2000632a}, +{"linux/comstats.h", "COM_READPORT", 0x20006328}, +{"linux/cyclades.h", "CYGETDEFTHRESH", 0x435904}, +{"linux/cyclades.h", "CYGETDEFTIMEOUT", 0x435908}, +{"linux/cyclades.h", "CYGETMON", 0x435901}, +{"linux/cyclades.h", "CYGETTHRESH", 0x435902}, +{"linux/cyclades.h", "CYGETTIMEOUT", 0x435906}, +{"linux/cyclades.h", "CYSETDEFTHRESH", 0x435905}, +{"linux/cyclades.h", "CYSETDEFTIMEOUT", 0x435909}, +{"linux/cyclades.h", "CYSETTHRESH", 0x435903}, +{"linux/cyclades.h", "CYSETTIMEOUT", 0x435907}, +{"linux/ext2_fs.h", "EXT2_IOC_GETFLAGS", 0x40046601}, +{"linux/ext2_fs.h", "EXT2_IOC_GETVERSION", 0x40047601}, +{"linux/ext2_fs.h", "EXT2_IOC_SETFLAGS", 0x80046602}, +{"linux/ext2_fs.h", "EXT2_IOC_SETVERSION", 0x80047602}, +{"linux/fb.h", "FBCMD_DRAWLINE", 0x4621}, +{"linux/fb.h", "FBCMD_MOVE", 0x4622}, +{"linux/fb.h", "FBIOGETCMAP", 0x4604}, +{"linux/fb.h", "FBIOGET_CURSORSTATE", 0x460a}, +{"linux/fb.h", "FBIOGET_FCURSORINFO", 0x4607}, +{"linux/fb.h", "FBIOGET_FSCREENINFO", 0x4602}, +{"linux/fb.h", "FBIOGET_VCURSORINFO", 0x4608}, +{"linux/fb.h", "FBIOGET_VSCREENINFO", 0x4600}, +{"linux/fb.h", "FBIOPAN_DISPLAY", 0x4606}, +{"linux/fb.h", "FBIOPUTCMAP", 0x4605}, +{"linux/fb.h", "FBIOPUT_CURSORSTATE", 0x460b}, +{"linux/fb.h", "FBIOPUT_VCURSORINFO", 0x4609}, +{"linux/fb.h", "FBIOPUT_VSCREENINFO", 0x4601}, +{"linux/fd.h", "FDCLRPRM", 0x20000241}, +{"linux/fd.h", "FDDEFPRM", 0x801c0243}, +{"linux/fd.h", "FDEJECT", 0x2000025a}, +{"linux/fd.h", "FDFLUSH", 0x2000024b}, +{"linux/fd.h", "FDFMTBEG", 0x20000247}, +{"linux/fd.h", "FDFMTEND", 0x20000249}, +{"linux/fd.h", "FDFMTTRK", 0x800c0248}, +{"linux/fd.h", "FDGETDRVPRM", 0x40580211}, +{"linux/fd.h", "FDGETDRVSTAT", 0x40340212}, +{"linux/fd.h", "FDGETDRVTYP", 0x4010020f}, +{"linux/fd.h", "FDGETFDCSTAT", 0x40200215}, +{"linux/fd.h", "FDGETMAXERRS", 0x4014020e}, +{"linux/fd.h", "FDGETPRM", 0x401c0204}, +{"linux/fd.h", "FDMSGOFF", 0x20000246}, +{"linux/fd.h", "FDMSGON", 0x20000245}, +{"linux/fd.h", "FDPOLLDRVSTAT", 0x40340213}, +{"linux/fd.h", "FDRAWCMD", 0x20000258}, +{"linux/fd.h", "FDRESET", 0x20000254}, +{"linux/fd.h", "FDSETDRVPRM", 0x80580290}, +{"linux/fd.h", "FDSETEMSGTRESH", 0x2000024a}, +{"linux/fd.h", "FDSETMAXERRS", 0x8014024c}, +{"linux/fd.h", "FDSETPRM", 0x801c0242}, +{"linux/fd.h", "FDTWADDLE", 0x20000259}, +{"linux/fd.h", "FDWERRORCLR", 0x20000256}, +{"linux/fd.h", "FDWERRORGET", 0x40180217}, +{"linux/fs.h", "BLKFLSBUF", 0x20001261}, +{"linux/fs.h", "BLKGETSIZE", 0x20001260}, +{"linux/fs.h", "BLKRAGET", 0x20001263}, +{"linux/fs.h", "BLKRASET", 0x20001262}, +{"linux/fs.h", "BLKROGET", 0x2000125e}, +{"linux/fs.h", "BLKROSET", 0x2000125d}, +{"linux/fs.h", "BLKRRPART", 0x2000125f}, +{"linux/fs.h", "FIBMAP", 0x20000001}, +{"linux/fs.h", "FIGETBSZ", 0x20000002}, +{"linux/hdreg.h", "HDIO_DRIVE_CMD", 0x31f}, +{"linux/hdreg.h", "HDIO_GETGEO", 0x301}, +{"linux/hdreg.h", "HDIO_GET_32BIT", 0x309}, +{"linux/hdreg.h", "HDIO_GET_DMA", 0x30b}, +{"linux/hdreg.h", "HDIO_GET_IDENTITY", 0x307}, +{"linux/hdreg.h", "HDIO_GET_KEEPSETTINGS", 0x308}, +{"linux/hdreg.h", "HDIO_GET_MULTCOUNT", 0x304}, +{"linux/hdreg.h", "HDIO_GET_NOWERR", 0x30a}, +{"linux/hdreg.h", "HDIO_GET_UNMASKINTR", 0x302}, +{"linux/hdreg.h", "HDIO_SET_32BIT", 0x324}, +{"linux/hdreg.h", "HDIO_SET_DMA", 0x326}, +{"linux/hdreg.h", "HDIO_SET_KEEPSETTINGS", 0x323}, +{"linux/hdreg.h", "HDIO_SET_MULTCOUNT", 0x321}, +{"linux/hdreg.h", "HDIO_SET_NOWERR", 0x325}, +{"linux/hdreg.h", "HDIO_SET_PIO_MODE", 0x327}, +{"linux/hdreg.h", "HDIO_SET_UNMASKINTR", 0x322}, +{"linux/if_ppp.h", "PPPIOCGASYNCMAP", 0x40047458}, +{"linux/if_ppp.h", "PPPIOCGDEBUG", 0x40047441}, +{"linux/if_ppp.h", "PPPIOCGFLAGS", 0x4004745a}, +{"linux/if_ppp.h", "PPPIOCGIDLE", 0x4008743f}, +{"linux/if_ppp.h", "PPPIOCGMRU", 0x40047453}, +{"linux/if_ppp.h", "PPPIOCGNPMODE", 0xc008744c}, +{"linux/if_ppp.h", "PPPIOCGRASYNCMAP", 0x40047455}, +{"linux/if_ppp.h", "PPPIOCGUNIT", 0x40047456}, +{"linux/if_ppp.h", "PPPIOCGXASYNCMAP", 0x40207450}, +{"linux/if_ppp.h", "PPPIOCSASYNCMAP", 0x80047457}, +{"linux/if_ppp.h", "PPPIOCSCOMPRESS", 0x800c744d}, +{"linux/if_ppp.h", "PPPIOCSDEBUG", 0x80047440}, +{"linux/if_ppp.h", "PPPIOCSFLAGS", 0x80047459}, +{"linux/if_ppp.h", "PPPIOCSMAXCID", 0x80047451}, +{"linux/if_ppp.h", "PPPIOCSMRU", 0x80047452}, +{"linux/if_ppp.h", "PPPIOCSNPMODE", 0x8008744b}, +{"linux/if_ppp.h", "PPPIOCSRASYNCMAP", 0x80047454}, +{"linux/if_ppp.h", "PPPIOCSXASYNCMAP", 0x8020744f}, +{"linux/if_ppp.h", "PPPIOCXFERUNIT", 0x2000744e}, +{"linux/ip_fw.h", "IP_FW_TYPE", 0x300}, +{"linux/isdn.h", "IIOCDBGVAR", 0x2000497f}, +{"linux/isdn.h", "IIOCDRVCTL", 0x20004980}, +{"linux/isdn.h", "IIOCGETCPS", 0x20004915}, +{"linux/isdn.h", "IIOCGETMAP", 0x20004911}, +{"linux/isdn.h", "IIOCGETPRF", 0x2000490f}, +{"linux/isdn.h", "IIOCGETSET", 0x20004908}, +{"linux/isdn.h", "IIOCNETAIF", 0x20004901}, +{"linux/isdn.h", "IIOCNETALN", 0x20004920}, +{"linux/isdn.h", "IIOCNETANM", 0x20004905}, +{"linux/isdn.h", "IIOCNETASL", 0x20004913}, +{"linux/isdn.h", "IIOCNETDIF", 0x20004902}, +{"linux/isdn.h", "IIOCNETDIL", 0x20004914}, +{"linux/isdn.h", "IIOCNETDLN", 0x20004921}, +{"linux/isdn.h", "IIOCNETDNM", 0x20004906}, +{"linux/isdn.h", "IIOCNETGCF", 0x20004904}, +{"linux/isdn.h", "IIOCNETGNM", 0x20004907}, +{"linux/isdn.h", "IIOCNETHUP", 0x2000490b}, +{"linux/isdn.h", "IIOCNETSCF", 0x20004903}, +{"linux/isdn.h", "IIOCSETBRJ", 0x2000490d}, +{"linux/isdn.h", "IIOCSETGST", 0x2000490c}, +{"linux/isdn.h", "IIOCSETMAP", 0x20004912}, +{"linux/isdn.h", "IIOCSETPRF", 0x20004910}, +{"linux/isdn.h", "IIOCSETSET", 0x20004909}, +{"linux/isdn.h", "IIOCSETVER", 0x2000490a}, +{"linux/isdn.h", "IIOCSIGPRF", 0x2000490e}, +{"linux/isdn_ppp.h", "PPPIOCBUNDLE", 0x80047481}, +{"linux/isdn_ppp.h", "PPPIOCGMPFLAGS", 0x40047482}, +{"linux/isdn_ppp.h", "PPPIOCLINKINFO", 0xc0247480}, +{"linux/isdn_ppp.h", "PPPIOCSMPFLAGS", 0x80047483}, +{"linux/isdn_ppp.h", "PPPIOCSMPMRU", 0x80047485}, +{"linux/isdn_ppp.h", "PPPIOCSMPMTU", 0x80047484}, +{"linux/kd.h", "GIO_CMAP", 0x4b70}, +{"linux/kd.h", "GIO_FONT", 0x4b60}, +{"linux/kd.h", "GIO_FONTX", 0x4b6b}, +{"linux/kd.h", "GIO_SCRNMAP", 0x4b40}, +{"linux/kd.h", "GIO_UNIMAP", 0x4b66}, +{"linux/kd.h", "GIO_UNISCRNMAP", 0x4b69}, +{"linux/kd.h", "KDADDIO", 0x4b34}, +{"linux/kd.h", "KDDELIO", 0x4b35}, +{"linux/kd.h", "KDDISABIO", 0x4b37}, +{"linux/kd.h", "KDENABIO", 0x4b36}, +{"linux/kd.h", "KDGETKEYCODE", 0x4b4c}, +{"linux/kd.h", "KDGETLED", 0x4b31}, +{"linux/kd.h", "KDGETMODE", 0x4b3b}, +{"linux/kd.h", "KDGKBDIACR", 0x4b4a}, +{"linux/kd.h", "KDGKBENT", 0x4b46}, +{"linux/kd.h", "KDGKBLED", 0x4b64}, +{"linux/kd.h", "KDGKBMETA", 0x4b62}, +{"linux/kd.h", "KDGKBMODE", 0x4b44}, +{"linux/kd.h", "KDGKBSENT", 0x4b48}, +{"linux/kd.h", "KDGKBTYPE", 0x4b33}, +{"linux/kd.h", "KDMAPDISP", 0x4b3c}, +{"linux/kd.h", "KDMKTONE", 0x4b30}, +{"linux/kd.h", "KDSETKEYCODE", 0x4b4d}, +{"linux/kd.h", "KDSETLED", 0x4b32}, +{"linux/kd.h", "KDSETMODE", 0x4b3a}, +{"linux/kd.h", "KDSIGACCEPT", 0x4b4e}, +{"linux/kd.h", "KDSKBDIACR", 0x4b4b}, +{"linux/kd.h", "KDSKBENT", 0x4b47}, +{"linux/kd.h", "KDSKBLED", 0x4b65}, +{"linux/kd.h", "KDSKBMETA", 0x4b63}, +{"linux/kd.h", "KDSKBMODE", 0x4b45}, +{"linux/kd.h", "KDSKBSENT", 0x4b49}, +{"linux/kd.h", "KDUNMAPDISP", 0x4b3d}, +{"linux/kd.h", "KIOCSOUND", 0x4b2f}, +{"linux/kd.h", "PIO_CMAP", 0x4b71}, +{"linux/kd.h", "PIO_FONT", 0x4b61}, +{"linux/kd.h", "PIO_FONTRESET", 0x4b6d}, +{"linux/kd.h", "PIO_FONTX", 0x4b6c}, +{"linux/kd.h", "PIO_SCRNMAP", 0x4b41}, +{"linux/kd.h", "PIO_UNIMAP", 0x4b67}, +{"linux/kd.h", "PIO_UNIMAPCLR", 0x4b68}, +{"linux/kd.h", "PIO_UNISCRNMAP", 0x4b6a}, +{"linux/loop.h", "LOOP_CLR_FD", 0x4c01}, +{"linux/loop.h", "LOOP_GET_STATUS", 0x4c03}, +{"linux/loop.h", "LOOP_SET_FD", 0x4c00}, +{"linux/loop.h", "LOOP_SET_STATUS", 0x4c02}, +{"linux/lp.h", "LPABORT", 0x604}, +{"linux/lp.h", "LPABORTOPEN", 0x60a}, +{"linux/lp.h", "LPCAREFUL", 0x609}, +{"linux/lp.h", "LPCHAR", 0x601}, +{"linux/lp.h", "LPGETFLAGS", 0x60e}, +{"linux/lp.h", "LPGETIRQ", 0x606}, +{"linux/lp.h", "LPGETSTATS", 0x60d}, +{"linux/lp.h", "LPGETSTATUS", 0x60b}, +{"linux/lp.h", "LPRESET", 0x60c}, +{"linux/lp.h", "LPSETIRQ", 0x605}, +{"linux/lp.h", "LPTIME", 0x602}, +{"linux/lp.h", "LPWAIT", 0x608}, +{"linux/lp_m68k.h", "LPABORT", 0x604}, +{"linux/lp_m68k.h", "LPABORTOPEN", 0x60a}, +{"linux/lp_m68k.h", "LPCAREFUL", 0x609}, +{"linux/lp_m68k.h", "LPCHAR", 0x601}, +{"linux/lp_m68k.h", "LPGETIRQ", 0x606}, +{"linux/lp_m68k.h", "LPGETSTATUS", 0x60b}, +{"linux/lp_m68k.h", "LPRESET", 0x60c}, +{"linux/lp_m68k.h", "LPSETIRQ", 0x605}, +{"linux/lp_m68k.h", "LPTIME", 0x602}, +{"linux/lp_m68k.h", "LPWAIT", 0x608}, +{"linux/mc146818rtc.h", "RTC_AIE_OFF", 0x20007002}, +{"linux/mc146818rtc.h", "RTC_AIE_ON", 0x20007001}, +{"linux/mc146818rtc.h", "RTC_ALM_READ", 0x40247008}, +{"linux/mc146818rtc.h", "RTC_ALM_SET", 0x80247007}, +{"linux/mc146818rtc.h", "RTC_IRQP_READ", 0x4004700b}, +{"linux/mc146818rtc.h", "RTC_IRQP_SET", 0x8004700c}, +{"linux/mc146818rtc.h", "RTC_PIE_OFF", 0x20007006}, +{"linux/mc146818rtc.h", "RTC_PIE_ON", 0x20007005}, +{"linux/mc146818rtc.h", "RTC_RD_TIME", 0x40247009}, +{"linux/mc146818rtc.h", "RTC_SET_TIME", 0x8024700a}, +{"linux/mc146818rtc.h", "RTC_UIE_OFF", 0x20007004}, +{"linux/mc146818rtc.h", "RTC_UIE_ON", 0x20007003}, +{"linux/md.h", "REGISTER_DEV", 0x20000901}, +{"linux/md.h", "START_MD", 0x20000902}, +{"linux/md.h", "STOP_MD", 0x20000903}, +{"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_BOTH", 0x40047201}, +{"linux/msdos_fs.h", "VFAT_IOCTL_READDIR_SHORT", 0x80047202}, +{"linux/mtio.h", "MTIOCGET", 0x401c6d02}, +{"linux/mtio.h", "MTIOCPOS", 0x40046d03}, +{"linux/mtio.h", "MTIOCTOP", 0x80086d01}, +{"linux/ncp_fs.h", "NCP_IOC_CONN_LOGGED_IN", 0x20006e03}, +{"linux/ncp_fs.h", "NCP_IOC_GETMOUNTUID", 0x80026e02}, +{"linux/ncp_fs.h", "NCP_IOC_GET_FS_INFO", 0xc0286e04}, +{"linux/ncp_fs.h", "NCP_IOC_NCPREQUEST", 0x400c6e01}, +{"linux/quota.h", "Q_GETQUOTA", 0x300}, +{"linux/quota.h", "Q_SYNC", 0x600}, +{"linux/random.h", "RNDADDENTROPY", 0x80085203}, +{"linux/random.h", "RNDADDTOENTCNT", 0x80045201}, +{"linux/random.h", "RNDCLEARPOOL", 0x20005206}, +{"linux/random.h", "RNDGETENTCNT", 0x40045200}, +{"linux/random.h", "RNDGETPOOL", 0x40085202}, +{"linux/random.h", "RNDZAPENTCNT", 0x20005204}, +{"linux/sbpcd.h", "CDROMAUDIOBUFSIZ", 0x5382}, +{"linux/sbpcd.h", "DDIOCSDBG", 0x9000}, +{"linux/scc.h", "TIOCCHANINI", 0x2202}, +{"linux/scc.h", "TIOCCHANMEM", 0x2210}, +{"linux/scc.h", "TIOCGKISS", 0x2282}, +{"linux/scc.h", "TIOCSCCCFG", 0x2200}, +{"linux/scc.h", "TIOCSCCINI", 0x2201}, +{"linux/scc.h", "TIOCSCCSTAT", 0x2284}, +{"linux/scc.h", "TIOCSKISS", 0x2283}, +{"linux/smb_fs.h", "SMB_IOC_GETMOUNTUID", 0x40027501}, +{"linux/sockios.h", "OLD_SIOCDARP", 0x8950}, +{"linux/sockios.h", "OLD_SIOCGARP", 0x8951}, +{"linux/sockios.h", "OLD_SIOCSARP", 0x8952}, +{"linux/sockios.h", "SIOCADDDLCI", 0x8980}, +{"linux/sockios.h", "SIOCADDMULTI", 0x8931}, +{"linux/sockios.h", "SIOCADDRT", 0x890b}, +{"linux/sockios.h", "SIOCDARP", 0x8953}, +{"linux/sockios.h", "SIOCDELDLCI", 0x8981}, +{"linux/sockios.h", "SIOCDELMULTI", 0x8932}, +{"linux/sockios.h", "SIOCDELRT", 0x890c}, +{"linux/sockios.h", "SIOCDEVPRIVATE", 0x89f0}, +{"linux/sockios.h", "SIOCDRARP", 0x8960}, +{"linux/sockios.h", "SIOCGARP", 0x8954}, +{"linux/sockios.h", "SIOCGIFADDR", 0x8915}, +{"linux/sockios.h", "SIOCGIFBR", 0x8940}, +{"linux/sockios.h", "SIOCGIFBRDADDR", 0x8919}, +{"linux/sockios.h", "SIOCGIFCONF", 0x8912}, +{"linux/sockios.h", "SIOCGIFDSTADDR", 0x8917}, +{"linux/sockios.h", "SIOCGIFENCAP", 0x8925}, +{"linux/sockios.h", "SIOCGIFFLAGS", 0x8913}, +{"linux/sockios.h", "SIOCGIFHWADDR", 0x8927}, +{"linux/sockios.h", "SIOCGIFMAP", 0x8970}, +{"linux/sockios.h", "SIOCGIFMEM", 0x891f}, +{"linux/sockios.h", "SIOCGIFMETRIC", 0x891d}, +{"linux/sockios.h", "SIOCGIFMTU", 0x8921}, +{"linux/sockios.h", "SIOCGIFNAME", 0x8910}, +{"linux/sockios.h", "SIOCGIFNETMASK", 0x891b}, +{"linux/sockios.h", "SIOCGIFSLAVE", 0x8929}, +{"linux/sockios.h", "SIOCGRARP", 0x8961}, +{"linux/sockios.h", "SIOCPROTOPRIVATE", 0x89e0}, +{"linux/sockios.h", "SIOCSARP", 0x8955}, +{"linux/sockios.h", "SIOCSIFADDR", 0x8916}, +{"linux/sockios.h", "SIOCSIFBR", 0x8941}, +{"linux/sockios.h", "SIOCSIFBRDADDR", 0x891a}, +{"linux/sockios.h", "SIOCSIFDSTADDR", 0x8918}, +{"linux/sockios.h", "SIOCSIFENCAP", 0x8926}, +{"linux/sockios.h", "SIOCSIFFLAGS", 0x8914}, +{"linux/sockios.h", "SIOCSIFHWADDR", 0x8924}, +{"linux/sockios.h", "SIOCSIFLINK", 0x8911}, +{"linux/sockios.h", "SIOCSIFMAP", 0x8971}, +{"linux/sockios.h", "SIOCSIFMEM", 0x8920}, +{"linux/sockios.h", "SIOCSIFMETRIC", 0x891e}, +{"linux/sockios.h", "SIOCSIFMTU", 0x8922}, +{"linux/sockios.h", "SIOCSIFNETMASK", 0x891c}, +{"linux/sockios.h", "SIOCSIFSLAVE", 0x8930}, +{"linux/sockios.h", "SIOCSRARP", 0x8962}, +{"linux/soundcard.h", "SNDCTL_COPR_HALT", 0xc0144307}, +{"linux/soundcard.h", "SNDCTL_COPR_LOAD", 0xcfb04301}, +{"linux/soundcard.h", "SNDCTL_COPR_RCODE", 0xc0144303}, +{"linux/soundcard.h", "SNDCTL_COPR_RCVMSG", 0x4fa44309}, +{"linux/soundcard.h", "SNDCTL_COPR_RDATA", 0xc0144302}, +{"linux/soundcard.h", "SNDCTL_COPR_RESET", 0x20004300}, +{"linux/soundcard.h", "SNDCTL_COPR_RUN", 0xc0144306}, +{"linux/soundcard.h", "SNDCTL_COPR_SENDMSG", 0x8fa44308}, +{"linux/soundcard.h", "SNDCTL_COPR_WCODE", 0x80144305}, +{"linux/soundcard.h", "SNDCTL_COPR_WDATA", 0x80144304}, +{"linux/soundcard.h", "SNDCTL_DSP_GETBLKSIZE", 0xc0045004}, +{"linux/soundcard.h", "SNDCTL_DSP_GETCAPS", 0x4004500f}, +{"linux/soundcard.h", "SNDCTL_DSP_GETFMTS", 0x4004500b}, +{"linux/soundcard.h", "SNDCTL_DSP_GETIPTR", 0x400c5011}, +{"linux/soundcard.h", "SNDCTL_DSP_GETISPACE", 0x4010500d}, +{"linux/soundcard.h", "SNDCTL_DSP_GETOPTR", 0x400c5012}, +{"linux/soundcard.h", "SNDCTL_DSP_GETOSPACE", 0x4010500c}, +{"linux/soundcard.h", "SNDCTL_DSP_GETTRIGGER", 0x40045010}, +{"linux/soundcard.h", "SNDCTL_DSP_MAPINBUF", 0x40085013}, +{"linux/soundcard.h", "SNDCTL_DSP_MAPOUTBUF", 0x40085014}, +{"linux/soundcard.h", "SNDCTL_DSP_NONBLOCK", 0x2000500e}, +{"linux/soundcard.h", "SNDCTL_DSP_POST", 0x20005008}, +{"linux/soundcard.h", "SNDCTL_DSP_RESET", 0x20005000}, +{"linux/soundcard.h", "SNDCTL_DSP_SETDUPLEX", 0x20005016}, +{"linux/soundcard.h", "SNDCTL_DSP_SETFMT", 0xc0045005}, +{"linux/soundcard.h", "SNDCTL_DSP_SETFRAGMENT", 0xc004500a}, +{"linux/soundcard.h", "SNDCTL_DSP_SETSYNCRO", 0x20005015}, +{"linux/soundcard.h", "SNDCTL_DSP_SETTRIGGER", 0x80045010}, +{"linux/soundcard.h", "SNDCTL_DSP_SPEED", 0xc0045002}, +{"linux/soundcard.h", "SNDCTL_DSP_STEREO", 0xc0045003}, +{"linux/soundcard.h", "SNDCTL_DSP_SUBDIVIDE", 0xc0045009}, +{"linux/soundcard.h", "SNDCTL_DSP_SYNC", 0x20005001}, +{"linux/soundcard.h", "SNDCTL_FM_4OP_ENABLE", 0x8004510f}, +{"linux/soundcard.h", "SNDCTL_FM_LOAD_INSTR", 0x80285107}, +{"linux/soundcard.h", "SNDCTL_MIDI_INFO", 0xc074510c}, +{"linux/soundcard.h", "SNDCTL_MIDI_MPUCMD", 0xc0216d02}, +{"linux/soundcard.h", "SNDCTL_MIDI_MPUMODE", 0xc0046d01}, +{"linux/soundcard.h", "SNDCTL_MIDI_PRETIME", 0xc0046d00}, +{"linux/soundcard.h", "SNDCTL_PMGR_ACCESS", 0xcfb85110}, +{"linux/soundcard.h", "SNDCTL_PMGR_IFACE", 0xcfb85001}, +{"linux/soundcard.h", "SNDCTL_SEQ_CTRLRATE", 0xc0045103}, +{"linux/soundcard.h", "SNDCTL_SEQ_GETINCOUNT", 0x40045105}, +{"linux/soundcard.h", "SNDCTL_SEQ_GETOUTCOUNT", 0x40045104}, +{"linux/soundcard.h", "SNDCTL_SEQ_NRMIDIS", 0x4004510b}, +{"linux/soundcard.h", "SNDCTL_SEQ_NRSYNTHS", 0x4004510a}, +{"linux/soundcard.h", "SNDCTL_SEQ_OUTOFBAND", 0x80085112}, +{"linux/soundcard.h", "SNDCTL_SEQ_PANIC", 0x20005111}, +{"linux/soundcard.h", "SNDCTL_SEQ_PERCMODE", 0x80045106}, +{"linux/soundcard.h", "SNDCTL_SEQ_RESET", 0x20005100}, +{"linux/soundcard.h", "SNDCTL_SEQ_RESETSAMPLES", 0x80045109}, +{"linux/soundcard.h", "SNDCTL_SEQ_SYNC", 0x20005101}, +{"linux/soundcard.h", "SNDCTL_SEQ_TESTMIDI", 0x80045108}, +{"linux/soundcard.h", "SNDCTL_SEQ_THRESHOLD", 0x8004510d}, +{"linux/soundcard.h", "SNDCTL_SYNTH_INFO", 0xc08c5102}, +{"linux/soundcard.h", "SNDCTL_SYNTH_MEMAVL", 0xc004510e}, +{"linux/soundcard.h", "SNDCTL_TMR_CONTINUE", 0x20005404}, +{"linux/soundcard.h", "SNDCTL_TMR_METRONOME", 0x80045407}, +{"linux/soundcard.h", "SNDCTL_TMR_SELECT", 0x80045408}, +{"linux/soundcard.h", "SNDCTL_TMR_SOURCE", 0xc0045406}, +{"linux/soundcard.h", "SNDCTL_TMR_START", 0x20005402}, +{"linux/soundcard.h", "SNDCTL_TMR_STOP", 0x20005403}, +{"linux/soundcard.h", "SNDCTL_TMR_TEMPO", 0xc0045405}, +{"linux/soundcard.h", "SNDCTL_TMR_TIMEBASE", 0xc0045401}, +{"linux/soundcard.h", "SOUND_MIXER_READ_ALTPCM", 0x40044d0a}, +{"linux/soundcard.h", "SOUND_MIXER_READ_BASS", 0x40044d01}, +{"linux/soundcard.h", "SOUND_MIXER_READ_CAPS", 0x40044dfc}, +{"linux/soundcard.h", "SOUND_MIXER_READ_CD", 0x40044d08}, +{"linux/soundcard.h", "SOUND_MIXER_READ_DEVMASK", 0x40044dfe}, +{"linux/soundcard.h", "SOUND_MIXER_READ_ENHANCE", 0x40044d1d}, +{"linux/soundcard.h", "SOUND_MIXER_READ_IGAIN", 0x40044d0c}, +{"linux/soundcard.h", "SOUND_MIXER_READ_IMIX", 0x40044d09}, +{"linux/soundcard.h", "SOUND_MIXER_READ_LINE", 0x40044d06}, +{"linux/soundcard.h", "SOUND_MIXER_READ_LINE1", 0x40044d0e}, +{"linux/soundcard.h", "SOUND_MIXER_READ_LINE2", 0x40044d0f}, +{"linux/soundcard.h", "SOUND_MIXER_READ_LINE3", 0x40044d10}, +{"linux/soundcard.h", "SOUND_MIXER_READ_LOUD", 0x40044d1e}, +{"linux/soundcard.h", "SOUND_MIXER_READ_MIC", 0x40044d07}, +{"linux/soundcard.h", "SOUND_MIXER_READ_MUTE", 0x40044d1c}, +{"linux/soundcard.h", "SOUND_MIXER_READ_OGAIN", 0x40044d0d}, +{"linux/soundcard.h", "SOUND_MIXER_READ_PCM", 0x40044d04}, +{"linux/soundcard.h", "SOUND_MIXER_READ_RECLEV", 0x40044d0b}, +{"linux/soundcard.h", "SOUND_MIXER_READ_RECMASK", 0x40044dfd}, +{"linux/soundcard.h", "SOUND_MIXER_READ_RECSRC", 0x40044dff}, +{"linux/soundcard.h", "SOUND_MIXER_READ_SPEAKER", 0x40044d05}, +{"linux/soundcard.h", "SOUND_MIXER_READ_STEREODEVS", 0x40044dfb}, +{"linux/soundcard.h", "SOUND_MIXER_READ_SYNTH", 0x40044d03}, +{"linux/soundcard.h", "SOUND_MIXER_READ_TREBLE", 0x40044d02}, +{"linux/soundcard.h", "SOUND_MIXER_READ_VOLUME", 0x40044d00}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_ALTPCM", 0xc0044d0a}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_BASS", 0xc0044d01}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_CD", 0xc0044d08}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_ENHANCE", 0xc0044d1d}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_IGAIN", 0xc0044d0c}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_IMIX", 0xc0044d09}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE", 0xc0044d06}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE1", 0xc0044d0e}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE2", 0xc0044d0f}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_LINE3", 0xc0044d10}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_LOUD", 0xc0044d1e}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_MIC", 0xc0044d07}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_MUTE", 0xc0044d1c}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_OGAIN", 0xc0044d0d}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_PCM", 0xc0044d04}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_RECLEV", 0xc0044d0b}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_RECSRC", 0xc0044dff}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_SPEAKER", 0xc0044d05}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_SYNTH", 0xc0044d03}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_TREBLE", 0xc0044d02}, +{"linux/soundcard.h", "SOUND_MIXER_WRITE_VOLUME", 0xc0044d00}, +{"linux/soundcard.h", "SOUND_PCM_READ_BITS", 0x40045005}, +{"linux/soundcard.h", "SOUND_PCM_READ_CHANNELS", 0x40045006}, +{"linux/soundcard.h", "SOUND_PCM_READ_FILTER", 0x40045007}, +{"linux/soundcard.h", "SOUND_PCM_READ_RATE", 0x40045002}, +{"linux/soundcard.h", "SOUND_PCM_WRITE_CHANNELS", 0xc0045006}, +{"linux/soundcard.h", "SOUND_PCM_WRITE_FILTER", 0xc0045007}, +{"linux/ucdrom.h", "CDROM_CLEAR_OPTIONS", 0x5321}, +{"linux/ucdrom.h", "CDROM_DISC_STATUS", 0x5327}, +{"linux/ucdrom.h", "CDROM_DRIVE_STATUS", 0x5326}, +{"linux/ucdrom.h", "CDROM_MEDIA_CHANGED", 0x5325}, +{"linux/ucdrom.h", "CDROM_SELECT_DISC", 0x5323}, +{"linux/ucdrom.h", "CDROM_SELECT_SPEED", 0x5322}, +{"linux/ucdrom.h", "CDROM_SET_OPTIONS", 0x5320}, +{"linux/umsdos_fs.h", "UMSDOS_CREAT_EMD", 0x200004d6}, +{"linux/umsdos_fs.h", "UMSDOS_DOS_SETUP", 0x200004db}, +{"linux/umsdos_fs.h", "UMSDOS_GETVERSION", 0x200004d9}, +{"linux/umsdos_fs.h", "UMSDOS_INIT_EMD", 0x200004da}, +{"linux/umsdos_fs.h", "UMSDOS_READDIR_DOS", 0x200004d2}, +{"linux/umsdos_fs.h", "UMSDOS_READDIR_EMD", 0x200004d8}, +{"linux/umsdos_fs.h", "UMSDOS_RENAME_DOS", 0x200004dc}, +{"linux/umsdos_fs.h", "UMSDOS_RMDIR_DOS", 0x200004d4}, +{"linux/umsdos_fs.h", "UMSDOS_STAT_DOS", 0x200004d5}, +{"linux/umsdos_fs.h", "UMSDOS_UNLINK_DOS", 0x200004d3}, +{"linux/umsdos_fs.h", "UMSDOS_UNLINK_EMD", 0x200004d7}, +{"linux/vt.h", "VT_ACTIVATE", 0x5606}, +{"linux/vt.h", "VT_DISALLOCATE", 0x5608}, +{"linux/vt.h", "VT_GETMODE", 0x5601}, +{"linux/vt.h", "VT_GETSTATE", 0x5603}, +{"linux/vt.h", "VT_LOCKSWITCH", 0x560b}, +{"linux/vt.h", "VT_OPENQRY", 0x5600}, +{"linux/vt.h", "VT_RELDISP", 0x5605}, +{"linux/vt.h", "VT_RESIZE", 0x5609}, +{"linux/vt.h", "VT_RESIZEX", 0x560a}, +{"linux/vt.h", "VT_SENDSIG", 0x5604}, +{"linux/vt.h", "VT_SETMODE", 0x5602}, +{"linux/vt.h", "VT_UNLOCKSWITCH", 0x560c}, +{"linux/vt.h", "VT_WAITACTIVE", 0x5607}, diff --git a/linux/hppa/signalent.h b/linux/hppa/signalent.h new file mode 100644 index 00000000..92e5565e --- /dev/null +++ b/linux/hppa/signalent.h @@ -0,0 +1,38 @@ + "SIG_0", /* 0 */ + "SIGHUP", /* 1 */ + "SIGINT", /* 2 */ + "SIGQUIT", /* 3 */ + "SIGILL", /* 4 */ + "SIGTRAP", /* 5 */ + "SIGABRT", /* 6 */ + "SIGEMT", /* 7 */ + "SIGFPE", /* 8 */ + "SIGKILL", /* 9 */ + "SIGBUS", /* 10 */ + "SIGSEGV", /* 11 */ + "SIGSYS", /* 12 */ + "SIGPIPE", /* 13 */ + "SIGALRM", /* 14 */ + "SIGTERM", /* 15 */ + "SIGUSR1", /* 16 */ + "SIGUSR2", /* 17 */ + "SIGCHLD", /* 18 */ + "SIGPWR", /* 19 */ + "SIGVTALRM", /* 20 */ + "SIGPROF", /* 21 */ + "SIGIO", /* 22 */ + "SIGWINCH", /* 23 */ + "SIGSTOP", /* 24 */ + "SIGTSTP", /* 25 */ + "SIGCONT", /* 26 */ + "SIGTTIN", /* 27 */ + "SIGTTOU", /* 28 */ + "SIGURG", /* 29 */ + "SIGLOST", /* 30 */ + "SIGUNUSED", /* 31 */ + "SIG_32", /* 32 */ + "SIGXCPU", /* 33 */ + "SIGXFSZ", /* 34 */ + "SIG_35", /* 35 */ + "SIGSTKFLT", /* 36 */ + "SIGRTMIN", /* 37 */ diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h new file mode 100644 index 00000000..3bba1be8 --- /dev/null +++ b/linux/hppa/syscallent.h @@ -0,0 +1,326 @@ +/* + * Copyright (c) 1993 Branko Lankester + * Copyright (c) 1993, 1994, 1995 Rick Sladkey + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $Id$ + */ + + { 5, 0, printargs, "SYS_0" }, /* 0 */ + { 1, TP, sys_exit, "exit" }, /* 1 */ + { 0, TP, sys_fork, "fork" }, /* 2 */ + { 3, TF, sys_read, "read" }, /* 3 */ + { 3, TF, sys_write, "write" }, /* 4 */ + { 3, TF, sys_open, "open" }, /* 5 */ + { 1, 0, sys_close, "close" }, /* 6 */ + { 3, TP, sys_waitpid, "waitpid" }, /* 7 */ + { 2, TF, sys_creat, "creat" }, /* 8 */ + { 2, TF, sys_link, "link" }, /* 9 */ + { 1, TF, sys_unlink, "unlink" }, /* 10 */ + { 3, TF|TP, sys_execve, "execve" }, /* 11 */ + { 1, TF, sys_chdir, "chdir" }, /* 12 */ + { 1, 0, sys_time, "time" }, /* 13 */ + { 3, TF, sys_mknod, "mknod" }, /* 14 */ + { 2, TF, sys_chmod, "chmod" }, /* 15 */ + { 3, TF, printargs, "lchown" }, /* 16 */ + { 3, TN, sys_socket, "socket" }, /* 17 */ + { 2, TF, sys_stat, "newstat" }, /* 18 */ + { 3, TF, sys_lseek, "lseek" }, /* 19 */ + { 0, 0, sys_getpid, "getpid" }, /* 20 */ + { 5, TF, sys_mount, "mount" }, /* 21 */ + { 3, TN, sys_bind, "bind" }, /* 22 */ + { 1, 0, sys_setuid, "setuid" }, /* 23 */ + { 0, 0, sys_getuid, "getuid" }, /* 24 */ + { 1, 0, sys_stime, "stime" }, /* 25 */ + { 4, 0, sys_ptrace, "ptrace" }, /* 26 */ + { 1, 0, sys_alarm, "alarm" }, /* 27 */ + { 2, 0, sys_fstat, "newfstat" }, /* 28 */ + { 0, 0, sys_pause, "pause" }, /* 29 */ + { 2, 0, sys_utime, "utime" }, /* 30 */ + { 3, TN, sys_connect, "connect" }, /* 31 */ + { 2, TN, sys_listen, "listen" }, /* 32 */ + { 2, TF, sys_access, "access" }, /* 33 */ + { 1, 0, sys_nice, "nice" }, /* 34 */ + { 3, TN, sys_accept, "accept" }, /* 35 */ + { 0, 0, sys_sync, "sync" }, /* 36 */ + { 2, TS, sys_kill, "kill" }, /* 37 */ + { 2, TF, sys_rename, "rename" }, /* 38 */ + { 2, TF, sys_mkdir, "mkdir" }, /* 39 */ + { 1, TF, sys_rmdir, "rmdir" }, /* 40 */ + { 1, 0, sys_dup, "dup" }, /* 41 */ + { 1, 0, sys_pipe, "pipe" }, /* 42 */ + { 1, 0, sys_times, "times" }, /* 43 */ + { 3, TN, sys_getsockname, "getsockname" }, /* 44 */ + { 1, 0, sys_brk, "brk" }, /* 45 */ + { 1, 0, sys_setgid, "setgid" }, /* 46 */ + { 0, 0, sys_getgid, "getgid" }, /* 47 */ + { 2, 0, sys_signal, "signal" }, /* 48 */ + { 0, 0, sys_geteuid, "geteuid" }, /* 49 */ + { 0, 0, sys_getegid, "getegid" }, /* 50 */ + { 1, TF, sys_acct, "acct" }, /* 51 */ + { 2, 0, sys_umount2, "umount2" }, /* 52 */ + { 3, TN, sys_getpeername, "lock" }, /* 53 */ + { 3, 0, sys_ioctl, "ioctl" }, /* 54 */ + { 3, 0, sys_fcntl, "fcntl" }, /* 55 */ + { 4, TN, sys_socketpair, "socketpair" }, /* 56 */ + { 2, 0, sys_setpgid, "setpgid" }, /* 57 */ + { 4, TN, sys_send, "send" }, /* 58 */ + { 1, 0, sys_uname, "newuname" }, /* 59 */ + { 1, 0, sys_umask, "umask" }, /* 60 */ + { 1, TF, sys_chroot, "chroot" }, /* 61 */ + { 2, 0, sys_ustat, "ustat" }, /* 62 */ + { 2, 0, sys_dup2, "dup2" }, /* 63 */ + { 0, 0, sys_getppid, "getppid" }, /* 64 */ + { 0, 0, sys_getpgrp, "getpgrp" }, /* 65 */ + { 0, 0, sys_setsid, "setsid" }, /* 66 */ + { 5, 0, printargs, "pivot_root" }, /* 67 */ + { 5, 0, printargs, "sgetmask" }, /* 68 */ + { 5, 0, printargs, "ssetmask" }, /* 69 */ + { 2, 0, sys_setreuid, "setreuid" }, /* 70 */ + { 2, 0, sys_setregid, "setregid" }, /* 71 */ + { 5, 0, printargs, "mincore" }, /* 72 */ + { 1, TS, sys_sigpending, "sigpending" }, /* 73 */ + { 2, 0, sys_sethostname, "sethostname" }, /* 74 */ + { 2, 0, sys_setrlimit, "setrlimit" }, /* 75 */ + { 2, 0, sys_getrlimit, "getrlimit" }, /* 76 */ + { 2, 0, sys_getrusage, "getrusage" }, /* 77 */ + { 2, 0, sys_gettimeofday, "gettimeofday" }, /* 78 */ + { 2, 0, sys_settimeofday, "settimeofday" }, /* 79 */ + { 2, 0, sys_getgroups, "getgroups" }, /* 80 */ + { 2, 0, sys_setgroups, "setgroups" }, /* 81 */ + { 6, TN, sys_sendto, "sendto" }, /* 82 */ + { 2, TF, sys_symlink, "symlink" }, /* 83 */ + { 2, TF, sys_lstat, "newlstat" }, /* 84 */ + { 3, TF, sys_readlink, "readlink" }, /* 85 */ + { 1, 0, sys_uselib, "uselib" }, /* 86 */ + { 1, 0, sys_swapon, "swapon" }, /* 87 */ + { 3, 0, sys_reboot, "reboot" }, /* 88 */ + { 3, 0, sys_readdir, "old_readdir" }, /* 89 */ + { 6, 0, sys_mmap, "mmap" }, /* 90 */ + { 2, 0, sys_munmap, "munmap" }, /* 91 */ + { 2, TF, sys_truncate, "truncate" }, /* 92 */ + { 2, 0, sys_ftruncate, "ftruncate" }, /* 93 */ + { 2, 0, sys_fchmod, "fchmod" }, /* 94 */ + { 3, 0, sys_fchown, "fchown" }, /* 95 */ + { 2, 0, sys_getpriority, "getpriority" }, /* 96 */ + { 3, 0, sys_setpriority, "setpriority" }, /* 97 */ + { 4, TN, sys_recv, "recv" }, /* 98 */ + { 2, TF, sys_statfs, "statfs" }, /* 99 */ + { 2, 0, sys_fstatfs, "fstatfs" }, /* 100 */ + { 3, 0, sys_ioperm, "ioperm" }, /* 101 */ + { 5, 0, sys_socketcall, "socketcall" }, /* 102 */ + { 3, 0, sys_syslog, "syslog" }, /* 103 */ + { 3, 0, sys_setitimer, "setitimer" }, /* 104 */ + { 2, 0, sys_getitimer, "getitimer" }, /* 105 */ + { 2, 0, sys_capget, "capget" }, /* 106 */ + { 2, 0, sys_capset, "capset" }, /* 107 */ + { 5, TF, sys_pread, "pread" }, /* 108 */ + { 5, TF, sys_pwrite, "pwrite" }, /* 109 */ + { 2, 0, sys_getcwd, "getcwd" }, /* 110 */ + { 0, 0, sys_vhangup, "vhangup" }, /* 111 */ + { 0, 0, sys_idle, "idle" }, /* 112 */ + { 0, 0, sys_vfork, "vfork" }, /* 113 */ + { 4, TP, sys_wait4, "wait4" }, /* 114 */ + { 1, 0, sys_swapoff, "swapoff" }, /* 115 */ + { 1, 0, sys_sysinfo, "sysinfo" }, /* 116 */ + { 2, TN, sys_shutdown, "shutdown" }, /* 117 */ + { 1, 0, sys_fsync, "fsync" }, /* 118 */ + { 5, 0, printargs, "madvise" }, /* 119 */ + { 2, TP, sys_clone, "clone" }, /* 120 */ + { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */ + { 4, TF, sys_sendfile, "sendfile" }, /* 122 */ + { 6, TN, sys_recvfrom, "recvfrom" }, /* 123 */ + { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */ + { 3, 0, sys_mprotect, "mprotect" }, /* 125 */ + { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */ + { 2, 0, sys_create_module, "create_module" }, /* 127 */ + { 4, 0, sys_init_module, "init_module" }, /* 128 */ + { 1, 0, sys_delete_module, "delete_module" }, /* 129 */ + { 1, 0, sys_get_kernel_syms, "get_kernel_syms" }, /* 130 */ + { 4, 0, sys_quotactl, "quotactl" }, /* 131 */ + { 1, 0, sys_getpgid, "getpgid" }, /* 132 */ + { 1, TF, sys_fchdir, "fchdir" }, /* 133 */ + { 0, 0, sys_bdflush, "bdflush" }, /* 134 */ + { 5, 0, sys_sysfs, "sysfs" }, /* 135 */ + { 1, 0, sys_personality, "personality" }, /* 136 */ + { 5, 0, printargs, "SYS_137" }, /* 137 */ + { 1, 0, sys_setfsuid, "setfsuid" }, /* 138 */ + { 1, 0, sys_setfsgid, "setfsgid" }, /* 139 */ + { 5, TF, printargs, "_llseek" }, /* 140 */ + { 3, 0, sys_getdents, "getdents" }, /* 141 */ + { 5, 0, printargs, "_newselect" }, /* 142 */ + { 2, 0, sys_flock, "flock" }, /* 143 */ + { 3, 0, sys_msync, "msync" }, /* 144 */ + { 3, 0, sys_readv, "readv" }, /* 145 */ + { 3, 0, sys_writev, "writev" }, /* 146 */ + { 1, 0, sys_getsid, "getsid" }, /* 147 */ + { 1, 0, sys_fdatasync, "fdatasync" }, /* 148 */ + { 5, 0, printargs, "_sysctl" }, /* 149 */ + { 2, 0, sys_mlock, "mlock" }, /* 150 */ + { 2, 0, sys_munlock, "munlock" }, /* 151 */ + { 1, 0, sys_mlockall, "mlockall" }, /* 152 */ + { 1, 0, sys_munlockall, "munlockall" }, /* 153 */ + { 2, 0, sys_sched_setparam, "sched_setparam" }, /* 154 */ + { 2, 0, sys_sched_getparam, "sched_getparam" }, /* 155 */ + { 3, 0, sys_sched_setscheduler, "sched_setscheduler" }, /* 156 */ + { 2, 0, sys_sched_getscheduler, "sched_getscheduler" }, /* 157 */ + { 0, 0, sys_sched_yield, "sched_yield" }, /* 158 */ + { 1, 0, sys_sched_get_priority_max,"sched_get_priority_max"}, /* 159 */ + { 1, 0, sys_sched_get_priority_min,"sched_get_priority_min"}, /* 160 */ + { 2, 0, sys_sched_rr_get_interval,"sched_rr_get_interval"}, /* 161 */ + { 2, 0, sys_nanosleep, "nanosleep" }, /* 162 */ + { 4, 0, sys_mremap, "mremap" }, /* 163 */ + { 3, 0, sys_setresuid, "setresuid" }, /* 164 */ + { 3, 0, sys_setresuid, "getresuid" }, /* 165 */ + { 2, TS, sys_sigaltstack, "sigaltstack" }, /* 166 */ + { 5, 0, sys_query_module, "query_module" }, /* 167 */ + { 3, 0, sys_poll, "poll" }, /* 168 */ + { 5, 0, printargs, "nfsservctl" }, /* 169 */ + { 3, 0, sys_setresgid, "setresgid" }, /* 170 */ + { 3, 0, sys_setresgid, "getresgid" }, /* 171 */ + { 5, 0, sys_prctl, "prctl" }, /* 172 */ + { 1, TS, printargs, "rt_sigreturn" }, /* 173 */ + { 4, TS, sys_rt_sigaction, "rt_sigaction" }, /* 174 */ + { 4, TS, sys_rt_sigprocmask, "rt_sigprocmask" }, /* 175 */ + { 2, TS, sys_rt_sigpending, "rt_sigpending" }, /* 176 */ + { 4, TS, sys_rt_sigtimedwait, "rt_sigtimedwait" }, /* 177 */ + { 3, TS, sys_rt_sigqueueinfo, "rt_sigqueueinfo" }, /* 178 */ + { 2, TS, sys_rt_sigsuspend, "rt_sigsuspend" }, /* 179 */ + { 3, TF, sys_chown, "chown" }, /* 180 */ + { 5, TN, sys_setsockopt, "setsockopt" }, /* 181 */ + { 5, TN, sys_getsockopt, "getsockopt" }, /* 182 */ + { 5, TN, sys_sendmsg, "sendmsg" }, /* 183 */ + { 5, TN, sys_recvmsg, "recvmsg" }, /* 184 */ + { 4, TI, sys_semop, "semop" }, /* 185 */ + { 4, TI, sys_semget, "semget" }, /* 186 */ + { 4, TI, sys_semctl, "semctl" }, /* 187 */ + { 4, TI, sys_msgsnd, "msgsnd" }, /* 188 */ + { 4, TI, sys_msgrcv, "msgrcv" }, /* 189 */ + { 4, TI, sys_msgget, "msgget" }, /* 190 */ + { 4, TI, sys_msgctl, "msgctl" }, /* 191 */ + { 4, TI, sys_shmat, "shmat" }, /* 192 */ + { 4, TI, sys_shmdt, "shmdt" }, /* 193 */ + { 4, TI, sys_shmget, "shmget" }, /* 194 */ + { 4, TI, sys_shmctl, "shmctl" }, /* 195 */ + + { 5, 0, printargs, "SYS_196" }, /* 196 */ + { 5, 0, printargs, "SYS_197" }, /* 197 */ + { 5, 0, printargs, "SYS_198" }, /* 198 */ + { 5, 0, printargs, "SYS_199" }, /* 199 */ + { 5, 0, printargs, "SYS_200" }, /* 200 */ + { 5, 0, printargs, "SYS_201" }, /* 201 */ + { 5, 0, printargs, "SYS_202" }, /* 202 */ + { 5, 0, printargs, "SYS_203" }, /* 203 */ + { 5, 0, printargs, "SYS_204" }, /* 204 */ + { 5, 0, printargs, "SYS_205" }, /* 205 */ + { 5, 0, printargs, "SYS_206" }, /* 206 */ + { 5, 0, printargs, "SYS_207" }, /* 207 */ + { 5, 0, printargs, "SYS_208" }, /* 208 */ + { 5, 0, printargs, "SYS_209" }, /* 209 */ + { 5, 0, printargs, "SYS_210" }, /* 210 */ + { 5, 0, printargs, "SYS_211" }, /* 211 */ + { 5, 0, printargs, "SYS_212" }, /* 212 */ + { 5, 0, printargs, "SYS_213" }, /* 213 */ + { 5, 0, printargs, "SYS_214" }, /* 214 */ + { 5, 0, printargs, "SYS_215" }, /* 215 */ + { 5, 0, printargs, "SYS_216" }, /* 216 */ + { 5, 0, printargs, "SYS_217" }, /* 217 */ + { 5, 0, printargs, "SYS_218" }, /* 218 */ + { 5, 0, printargs, "SYS_219" }, /* 219 */ + { 5, 0, printargs, "SYS_220" }, /* 220 */ + { 5, 0, printargs, "SYS_221" }, /* 221 */ + { 5, 0, printargs, "SYS_222" }, /* 222 */ + { 5, 0, printargs, "SYS_223" }, /* 223 */ + { 5, 0, printargs, "SYS_224" }, /* 224 */ + { 5, 0, printargs, "SYS_225" }, /* 225 */ + { 5, 0, printargs, "SYS_226" }, /* 226 */ + { 5, 0, printargs, "SYS_227" }, /* 227 */ + { 5, 0, printargs, "SYS_228" }, /* 228 */ + { 5, 0, printargs, "SYS_229" }, /* 229 */ + { 5, 0, printargs, "SYS_230" }, /* 230 */ + { 5, 0, printargs, "SYS_231" }, /* 231 */ + { 5, 0, printargs, "SYS_232" }, /* 232 */ + { 5, 0, printargs, "SYS_233" }, /* 233 */ + { 5, 0, printargs, "SYS_234" }, /* 234 */ + { 5, 0, printargs, "SYS_235" }, /* 235 */ + { 5, 0, printargs, "SYS_236" }, /* 236 */ + { 5, 0, printargs, "SYS_237" }, /* 237 */ + { 5, 0, printargs, "SYS_238" }, /* 238 */ + { 5, 0, printargs, "SYS_239" }, /* 239 */ + { 5, 0, printargs, "SYS_240" }, /* 240 */ + { 5, 0, printargs, "SYS_241" }, /* 241 */ + { 5, 0, printargs, "SYS_242" }, /* 242 */ + { 5, 0, printargs, "SYS_243" }, /* 243 */ + { 5, 0, printargs, "SYS_244" }, /* 244 */ + { 5, 0, printargs, "SYS_245" }, /* 245 */ + { 5, 0, printargs, "SYS_246" }, /* 246 */ + { 5, 0, printargs, "SYS_247" }, /* 247 */ + { 5, 0, printargs, "SYS_248" }, /* 248 */ + { 5, 0, printargs, "SYS_249" }, /* 249 */ + { 5, 0, printargs, "SYS_250" }, /* 250 */ + { 5, 0, printargs, "SYS_251" }, /* 251 */ + { 5, 0, printargs, "SYS_252" }, /* 252 */ + { 5, 0, printargs, "SYS_253" }, /* 253 */ + { 5, 0, printargs, "SYS_254" }, /* 254 */ + { 5, 0, printargs, "SYS_255" }, /* 255 */ + { 5, 0, printargs, "SYS_256" }, /* 256 */ + { 5, 0, printargs, "SYS_257" }, /* 257 */ + { 5, 0, printargs, "SYS_258" }, /* 258 */ + { 5, 0, printargs, "SYS_259" }, /* 259 */ + { 5, 0, printargs, "SYS_260" }, /* 260 */ + { 5, 0, printargs, "SYS_261" }, /* 261 */ + { 5, 0, printargs, "SYS_262" }, /* 262 */ + { 5, 0, printargs, "SYS_263" }, /* 263 */ + { 5, 0, printargs, "SYS_264" }, /* 264 */ + { 5, 0, printargs, "SYS_265" }, /* 265 */ + { 5, 0, printargs, "SYS_266" }, /* 266 */ + { 5, 0, printargs, "SYS_267" }, /* 267 */ + { 5, 0, printargs, "SYS_268" }, /* 268 */ + { 5, 0, printargs, "SYS_269" }, /* 269 */ + { 5, 0, printargs, "SYS_270" }, /* 270 */ + { 5, 0, printargs, "SYS_271" }, /* 271 */ + { 5, 0, printargs, "SYS_272" }, /* 272 */ + { 5, 0, printargs, "SYS_273" }, /* 273 */ + { 5, 0, printargs, "SYS_274" }, /* 274 */ + { 5, 0, printargs, "SYS_275" }, /* 275 */ + { 5, 0, printargs, "SYS_276" }, /* 276 */ + { 5, 0, printargs, "SYS_277" }, /* 277 */ + { 5, 0, printargs, "SYS_278" }, /* 278 */ + { 5, 0, printargs, "SYS_279" }, /* 279 */ + { 5, 0, printargs, "SYS_280" }, /* 280 */ + { 5, 0, printargs, "SYS_281" }, /* 281 */ + { 5, 0, printargs, "SYS_282" }, /* 282 */ + { 5, 0, printargs, "SYS_283" }, /* 283 */ + { 5, 0, printargs, "SYS_284" }, /* 284 */ + { 5, 0, printargs, "SYS_285" }, /* 285 */ + { 5, 0, printargs, "SYS_286" }, /* 286 */ + { 5, 0, printargs, "SYS_287" }, /* 287 */ + { 5, 0, printargs, "SYS_288" }, /* 288 */ + { 5, 0, printargs, "SYS_289" }, /* 289 */ + { 5, 0, printargs, "SYS_290" }, /* 290 */ + { 5, 0, printargs, "SYS_291" }, /* 291 */ + { 5, 0, printargs, "SYS_292" }, /* 292 */ + { 5, 0, printargs, "SYS_293" }, /* 293 */ + { 5, 0, printargs, "SYS_294" }, /* 294 */ diff --git a/linux/hppa/syscallent.sh b/linux/hppa/syscallent.sh new file mode 100644 index 00000000..bfa01587 --- /dev/null +++ b/linux/hppa/syscallent.sh @@ -0,0 +1,73 @@ +#!/bin/sh +# Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# $Id$ + +cat $* | +sed -n 's/^#[ ]*define[ ][ ]*__NR_\([^ ]*\)[ ]*[^0-9()]*(__NR_Linux + \([0-9]*\))$/\1 \2/p' | + sort +1n | + awk ' + BEGIN { + tabs = "\t\t\t\t\t\t\t\t" + call = -1; + } + { + while (++call < $2) { + f = "printargs" + n = "SYS_" call + s = "\t{ -1,\t0,\t" + s = s f "," + s = s substr(tabs, 1, 24/8 - int((length(f) + 1)/8)) + s = s "\"" n "\"" + s = s substr(tabs, 1, 16/8 - int((length(n) + 2)/8)) + s = s "}, /* " call " */" + print s + } + f = "sys_" $1 + n = $1 + s = "\t{ -1,\t0,\t" + s = s f "," + s = s substr(tabs, 1, 24/8 - int((length(f) + 1)/8)) + s = s "\"" n "\"" + s = s substr(tabs, 1, 16/8 - int((length(n) + 2)/8)) + s = s "}, /* " call " */" + print s + } + END { + limit = call + 100 + while (++call < limit) { + f = "printargs" + n = "SYS_" call + s = "\t{ -1,\t0,\t" + s = s f "," + s = s substr(tabs, 1, 24/8 - int((length(f) + 1)/8)) + s = s "\"" n "\"" + s = s substr(tabs, 1, 16/8 - int((length(n) + 2)/8)) + s = s "}, /* " call " */" + print s + } + } + ' diff --git a/linux/syscall.h b/linux/syscall.h index 6ad5fe99..99b29951 100644 --- a/linux/syscall.h +++ b/linux/syscall.h @@ -109,7 +109,7 @@ int sys_osf_utimes(); #endif -#if !defined(ALPHA) && !defined(IA64) && !defined(MIPS) +#if !defined(ALPHA) && !defined(IA64) && !defined(MIPS) &&!defined(HPPA) #ifdef POWERPC # define SYS_socket_subcall 256 #else @@ -142,7 +142,7 @@ int sys_semget(), sys_semctl(), sys_semop(); int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl(); int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl(); -#if !defined(ALPHA) && !defined(IA64) && !defined(MIPS) && !defined(SPARC) +#if !defined(ALPHA) && !defined(IA64) && !defined(MIPS) && !defined(SPARC) &&!defined(HPPA) #ifdef POWERPC # define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls)) #else diff --git a/process.c b/process.c index 11b9910e..d2697cd4 100644 --- a/process.c +++ b/process.c @@ -475,6 +475,10 @@ int new; if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(REG_A3), new)<0) return -1; return 0; +#elif defined(HPPA) + if (ptrace(PTRACE_POKEUSER, tcp->pid, (char*)(PT_GR20), new)<0) + return -1; + return 0; #else #warning Do not know how to handle change_syscall for this architecture #endif /* architecture */ @@ -640,6 +644,24 @@ struct tcb *tcp; return 0; } #ifdef LINUX +#ifdef HPPA + /* The child must have run before it can be attached. */ + /* This must be a bug in the parisc kernel, but I havn't + * identified it yet. Seems to be an issue associated + * with attaching to a process (which sends it a signal) + * before that process has ever been scheduled. When + * debugging, I started seeing crashes in + * arch/parisc/kernel/signal.c:do_signal(), apparently + * caused by r8 getting corrupt over the dequeue_signal() + * call. Didn't make much sense though... + */ + { + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 10000; + select(0, NULL, NULL, NULL, &tv); + } +#endif if (ptrace(PTRACE_ATTACH, pid, (char *) 1, 0) < 0) { perror("PTRACE_ATTACH"); fprintf(stderr, "Too late?\n"); @@ -1142,7 +1164,7 @@ struct tcb *tcp; } } #ifdef LINUX -#if defined(ALPHA) || defined(SPARC) || defined(POWERPC) +#if defined(ALPHA) || defined(SPARC) || defined(POWERPC) || defined(HPPA) tcp->flags |= TCB_WAITEXECVE; #endif /* ALPHA || SPARC || POWERPC */ #endif /* LINUX */ @@ -1798,6 +1820,8 @@ struct xlat struct_user_offsets[] = { #endif #if defined(SPARC) /* XXX No support for these offsets yet. */ +#elif defined(HPPA) + /* XXX No support for these offsets yet. */ #elif defined(POWERPC) { 4*PT_R0, "4*PT_R0" }, { 4*PT_R1, "4*PT_R1" }, @@ -2097,7 +2121,9 @@ struct xlat struct_user_offsets[] = { { uoff(u_exdata.ux_shell[0]),"offsetof(struct user, u_exdata.ux_shell[0])"}, { uoff(u_lofault), "offsetof(struct user, u_lofault)" }, #endif /* SUNOS4 */ +#ifndef HPPA { sizeof(struct user), "sizeof(struct user)" }, +#endif { 0, NULL }, }; #endif diff --git a/signal.c b/signal.c index fd16b1fc..082f5c77 100644 --- a/signal.c +++ b/signal.c @@ -932,6 +932,11 @@ struct tcb *tcp; return RVAL_NONE | RVAL_STR; } return 0; +#else +#ifdef HPPA +#warning NO sys_sigreturn DECODE FOR HPPA + return 0; +#endif /* HPPA */ #endif /* MIPS */ #endif /* SPARC */ #endif /* ALPHA */ diff --git a/syscall.c b/syscall.c index e57d689e..ffd8f658 100644 --- a/syscall.c +++ b/syscall.c @@ -633,6 +633,8 @@ struct tcb *tcp; #elif defined(S390) static long gpr2; static long pc; +#elif defined(HPPA) + static long r28; #endif #endif /* LINUX */ #ifdef FREEBSD @@ -806,6 +808,16 @@ struct tcb *tcp; memmove (®s.r_o0, ®s.r_o1, 7*sizeof(regs.r_o0)); } } +#elif defined(HPPA) + if (upeek(pid, PT_GR20, &scno) < 0) + return -1; + if (!(tcp->flags & TCB_INSYSCALL)) { + /* Check if we return from execve. */ + if ((tcp->flags & TCB_WAITEXECVE)) { + tcp->flags &= ~TCB_WAITEXECVE; + return 0; + } + } #endif #endif /* LINUX */ #ifdef SUNOS4 @@ -938,7 +950,9 @@ struct tcb *tcp; fprintf(stderr, "stray syscall exit: d0 = %ld\n", r0); return 0; } -#else +#elif defined (HPPA) + if (upeek(pid, PT_GR28, &r28) < 0) + return -1; #endif #endif /* LINUX */ return 1; @@ -1051,6 +1065,17 @@ struct tcb *tcp; tcp->u_rval = regs.r_o0; u_error = 0; } +#else /* !SPARC */ +#ifdef HPPA + if (r28 && (unsigned) -r28 < nerrnos) { + tcp->u_rval = -1; + u_error = -r28; + } + else { + tcp->u_rval = r28; + u_error = 0; + } +#endif /* HPPA */ #endif /* SPARC */ #endif /* ALPHA */ #endif /* ARM */ @@ -1229,6 +1254,19 @@ struct tcb *tcp; for (i = 0; i < tcp->u_nargs; i++) tcp->u_arg[i] = *((®s.r_o0) + i); } +#elif defined (HPPA) + { + int i; + + if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1) + tcp->u_nargs = sysent[tcp->scno].nargs; + else + tcp->u_nargs = MAX_ARGS; + for (i = 0; i < tcp->u_nargs; i++) { + if (upeek(pid, PT_GR26-4*i, &tcp->u_arg[i]) < 0) + return -1; + } + } #else /* Other architecture (like i386) (32bits specific) */ { int i; @@ -1516,7 +1554,7 @@ struct tcb *tcp; switch (tcp->scno + NR_SYSCALL_BASE) { #ifdef LINUX -#if !defined (ALPHA) && !defined(IA64) && !defined(SPARC) && !defined(MIPS) +#if !defined (ALPHA) && !defined(IA64) && !defined(SPARC) && !defined(MIPS) && !defined(HPPA) case SYS_socketcall: decode_subcall(tcp, SYS_socket_subcall, SYS_socket_nsubcalls, deref_style); diff --git a/util.c b/util.c index c0b7cc0c..db5408e9 100644 --- a/util.c +++ b/util.c @@ -902,6 +902,9 @@ struct tcb *tcp; pc = regs.r_pc; #elif defined(S390) if(upeek(tcp->pid,PT_PSWADDR,&pc) < 0) +#elif defined(HPPA) + if(upeek(tcp->pid,PT_IAOQ0,&pc) < 0) + return -1; #endif return pc; #endif /* LINUX */ @@ -985,6 +988,14 @@ struct tcb *tcp; return; } tprintf("[%08lx] ", regs.r_pc); +#elif defined(HPPA) + long pc; + + if(upeek(tcp->pid,PT_IAOQ0,&pc) < 0) { + tprintf ("[????????] "); + return; + } + tprintf("[%08lx] ", pc); #endif /* !architecture */ #endif /* LINUX */ @@ -1116,6 +1127,8 @@ struct tcb *tcp; #define LOOP 0x1000ffff #elif defined(S390) #define LOOP 0xa7f40000 /* BRC 15,0 */ +#elif defined(HPPA) +#define LOOP 0xe81f1ff7 /* b,l,n ,r0 */ #else #error unknown architecture #endif @@ -1142,6 +1155,10 @@ struct tcb *tcp; #elif defined(S390) if (upeek(tcp->pid,PT_PSWADDR, &tcp->baddr) < 0) return -1; +#elif defined(HPPA) + if (upeek(tcp->pid, PT_IAOQ0, &tcp->baddr) < 0) + return -1; + tcp->baddr &= ~0x03; #else #error unknown architecture #endif @@ -1229,6 +1246,8 @@ struct tcb *tcp; long pc; #elif defined(ALPHA) long pc; +#elif defined(HPPA) + long iaoq; #endif /* architecture */ #ifdef SPARC @@ -1341,6 +1360,24 @@ struct tcb *tcp; pc, tcp->baddr); return 0; } +#elif defined(HPPA) + if (upeek(tcp->pid, PT_IAOQ0, &iaoq) < 0) + return -1; + iaoq &= ~0x03; + if (iaoq != tcp->baddr && iaoq != tcp->baddr + 4) { + /* The breakpoint has not been reached yet. */ + if (debug) + fprintf(stderr, "NOTE: PC not at bpt (iaoq %#lx baddr %#lx)\n", + iaoq, tcp->baddr); + return 0; + } + iaoq = tcp->baddr | 3; + /* We should be pointing at a 'ldi -1000,r1' in glibc, so it is + * safe to set both IAOQ0 and IAOQ1 to that so the PSW N bit + * has no significant effect. + */ + ptrace(PTRACE_POKEUSER, tcp->pid, (void *)PT_IAOQ0, iaoq); + ptrace(PTRACE_POKEUSER, tcp->pid, (void *)PT_IAOQ1, iaoq); #endif /* arch */ #endif /* !SPARC && !IA64 */ #endif /* LINUX */