diff options
| author | Root THC | 2026-02-24 12:42:47 +0000 |
|---|---|---|
| committer | Root THC | 2026-02-24 12:42:47 +0000 |
| commit | c9cbeced5b3f2bdd7407e29c0811e65954132540 (patch) | |
| tree | aefc355416b561111819de159ccbd86c3004cf88 /other/burneye/src/stub/include | |
| parent | 073fe4bf9fca6bf40cef2886d75df832ef4b6fca (diff) | |
initial
Diffstat (limited to 'other/burneye/src/stub/include')
| -rw-r--r-- | other/burneye/src/stub/include/int80-test.c | 9 | ||||
| -rw-r--r-- | other/burneye/src/stub/include/int80-test.o | bin | 0 -> 716 bytes | |||
| -rw-r--r-- | other/burneye/src/stub/include/int80.h | 437 | ||||
| -rw-r--r-- | other/burneye/src/stub/include/unistd.h | 280 |
4 files changed, 726 insertions, 0 deletions
diff --git a/other/burneye/src/stub/include/int80-test.c b/other/burneye/src/stub/include/int80-test.c new file mode 100644 index 0000000..9e87ab5 --- /dev/null +++ b/other/burneye/src/stub/include/int80-test.c | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | |||
| 2 | #include "int80.h" | ||
| 3 | |||
| 4 | int | ||
| 5 | main (int argc, char *argv[]) | ||
| 6 | { | ||
| 7 | lseek (0, 10, 20); | ||
| 8 | } | ||
| 9 | |||
diff --git a/other/burneye/src/stub/include/int80-test.o b/other/burneye/src/stub/include/int80-test.o new file mode 100644 index 0000000..a2418b1 --- /dev/null +++ b/other/burneye/src/stub/include/int80-test.o | |||
| Binary files differ | |||
diff --git a/other/burneye/src/stub/include/int80.h b/other/burneye/src/stub/include/int80.h new file mode 100644 index 0000000..25d05b0 --- /dev/null +++ b/other/burneye/src/stub/include/int80.h | |||
| @@ -0,0 +1,437 @@ | |||
| 1 | /* from hellkit by stealth | ||
| 2 | */ | ||
| 3 | |||
| 4 | #ifndef INT80_H | ||
| 5 | #define INT80_H | ||
| 6 | |||
| 7 | #include "unistd.h" | ||
| 8 | |||
| 9 | #ifndef _I386_FCNTL_H | ||
| 10 | #define O_RDONLY 00 | ||
| 11 | #define O_WRONLY 01 | ||
| 12 | #define O_RDWR 02 | ||
| 13 | #define O_CREAT 0100 | ||
| 14 | #define O_TRUNC 01000 | ||
| 15 | #define O_APPEND 02000 | ||
| 16 | #define F_DUPFD 0 /* Duplicate file descriptor. */ | ||
| 17 | #define F_GETFD 1 /* Get file descriptor flags. */ | ||
| 18 | #define F_SETFD 2 /* Set file descriptor flags. */ | ||
| 19 | #define F_GETFL 3 /* Get file status flags. */ | ||
| 20 | #define F_SETFL 4 /* Set file status flags. */ | ||
| 21 | #endif | ||
| 22 | |||
| 23 | /* from bits/termios.h */ | ||
| 24 | #define TCGETS 0x5401 | ||
| 25 | #define TCSETS 0x5402 | ||
| 26 | #define TCSETSW 0x5403 | ||
| 27 | #define TCSETSF 0x5404 | ||
| 28 | |||
| 29 | #define ISIG 0000001 | ||
| 30 | #define ECHO 0000010 | ||
| 31 | |||
| 32 | |||
| 33 | typedef unsigned char cc_t; | ||
| 34 | typedef unsigned int speed_t; | ||
| 35 | typedef unsigned int tcflag_t; | ||
| 36 | |||
| 37 | #define NCCS 32 | ||
| 38 | |||
| 39 | typedef struct { | ||
| 40 | tcflag_t c_iflag; /* input mode flags */ | ||
| 41 | tcflag_t c_oflag; /* output mode flags */ | ||
| 42 | tcflag_t c_cflag; /* control mode flags */ | ||
| 43 | tcflag_t c_lflag; /* local mode flags */ | ||
| 44 | cc_t c_line; /* line discipline */ | ||
| 45 | cc_t c_cc[NCCS]; /* control characters */ | ||
| 46 | speed_t c_ispeed; /* input speed */ | ||
| 47 | speed_t c_ospeed; /* output speed */ | ||
| 48 | } termios; | ||
| 49 | |||
| 50 | /* from bits/utsname.h and sys/utsname.h */ | ||
| 51 | #define _UTSNAME_LENGTH 65 | ||
| 52 | #define _UTSNAME_DOMAIN_LENGTH _UTSNAME_LENGTH | ||
| 53 | #define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH | ||
| 54 | |||
| 55 | struct utsname { | ||
| 56 | char sysname[_UTSNAME_LENGTH]; | ||
| 57 | char nodename[_UTSNAME_NODENAME_LENGTH]; | ||
| 58 | char release[_UTSNAME_LENGTH]; | ||
| 59 | char version[_UTSNAME_LENGTH]; | ||
| 60 | char machine[_UTSNAME_LENGTH]; | ||
| 61 | char domainname[_UTSNAME_DOMAIN_LENGTH]; | ||
| 62 | }; | ||
| 63 | |||
| 64 | |||
| 65 | /* from bits/mman.h */ | ||
| 66 | #define PROT_READ 0x1 | ||
| 67 | #define PROT_WRITE 0x2 | ||
| 68 | #define PROT_EXEC 0x4 | ||
| 69 | #define PROT_NONE 0x0 | ||
| 70 | #define MAP_SHARED 0x01 | ||
| 71 | #define MAP_PRIVATE 0x02 | ||
| 72 | #define MAP_TYPE 0x0f | ||
| 73 | #define MAP_FIXED 0x10 | ||
| 74 | #define MAP_ANONYMOUS 0x20 | ||
| 75 | |||
| 76 | /* from unistd.h */ | ||
| 77 | #define SEEK_SET 0 | ||
| 78 | #define SEEK_CUR 1 | ||
| 79 | #define SEEK_END 2 | ||
| 80 | |||
| 81 | extern int errno; | ||
| 82 | |||
| 83 | #if 0 | ||
| 84 | /* XXX: one would have to make a wrap-around cpp script to avoid defining | ||
| 85 | * the functions in their code as it happens now :/ that is the reason | ||
| 86 | * why we include every function un-macro'd | ||
| 87 | */ | ||
| 88 | _syscall3(int,lseek,int,fd,long,offset,int,whence); | ||
| 89 | #endif | ||
| 90 | |||
| 91 | static int mmap (void *start, long length, int prot, int flags, | ||
| 92 | int fd, long offset) | ||
| 93 | { | ||
| 94 | long ret; | ||
| 95 | |||
| 96 | __asm__ __volatile__ ( "int $0x80" | ||
| 97 | : "=a" (ret) | ||
| 98 | : "a" (__NR_mmap), "b" (&start)); | ||
| 99 | |||
| 100 | return (ret); | ||
| 101 | } | ||
| 102 | |||
| 103 | |||
| 104 | static inline int munmap (char *start, int length) | ||
| 105 | { | ||
| 106 | long ret; | ||
| 107 | |||
| 108 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 109 | "movl %%esi, %%ebx\n\t" | ||
| 110 | "int $0x80" | ||
| 111 | :"=a" (ret) | ||
| 112 | :"0" (__NR_munmap), "S" ((long)start), | ||
| 113 | "c" ((int)length): "bx"); | ||
| 114 | return ret; | ||
| 115 | } | ||
| 116 | |||
| 117 | static inline int ioctl (int d, int request, int argp) | ||
| 118 | { | ||
| 119 | long ret; | ||
| 120 | |||
| 121 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 122 | "movl %%esi, %%ebx\n\t" | ||
| 123 | "int $0x80" | ||
| 124 | :"=a" (ret) | ||
| 125 | :"0" (__NR_ioctl), "S" ((long)d), | ||
| 126 | "c" ((long)request), "d" ((long)argp): "bx"); | ||
| 127 | return ret; | ||
| 128 | } | ||
| 129 | |||
| 130 | static inline int fcntl (int fd, int cmd, long arg) | ||
| 131 | { | ||
| 132 | long ret; | ||
| 133 | |||
| 134 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 135 | "movl %%esi, %%ebx\n\t" | ||
| 136 | "int $0x80" | ||
| 137 | :"=a" (ret) | ||
| 138 | :"0" (__NR_fcntl), "S" ((long)fd), | ||
| 139 | "c" ((long)cmd), "d" ((long)arg): "bx"); | ||
| 140 | return ret; | ||
| 141 | } | ||
| 142 | |||
| 143 | static inline int lseek (int fd, unsigned long int offset, int whence) | ||
| 144 | { | ||
| 145 | long ret; | ||
| 146 | |||
| 147 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 148 | "movl %%esi, %%ebx\n\t" | ||
| 149 | "int $0x80" | ||
| 150 | :"=a" (ret) | ||
| 151 | :"0" (__NR_lseek), "S" ((long)fd), | ||
| 152 | "c" ((long)offset), "d" ((long)whence): "bx"); | ||
| 153 | return ret; | ||
| 154 | } | ||
| 155 | |||
| 156 | static inline int mprotect(void *addr, long len, int prot) | ||
| 157 | { | ||
| 158 | long ret; | ||
| 159 | |||
| 160 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 161 | "movl %%esi, %%ebx\n\t" | ||
| 162 | "int $0x80" | ||
| 163 | :"=a" (ret) | ||
| 164 | :"0" (__NR_mprotect), "S" ((long)addr), | ||
| 165 | "c" ((long)len), "d" ((long)prot): "bx"); | ||
| 166 | return ret; | ||
| 167 | } | ||
| 168 | |||
| 169 | |||
| 170 | static inline int read(int fd, void *buf, long count) | ||
| 171 | { | ||
| 172 | long ret; | ||
| 173 | |||
| 174 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 175 | "movl %%esi, %%ebx\n\t" | ||
| 176 | "int $0x80" | ||
| 177 | :"=a" (ret) | ||
| 178 | :"0" (__NR_read), "S" ((long)fd), | ||
| 179 | "c" ((long)buf), "d" ((long)count): "bx"); | ||
| 180 | return ret; | ||
| 181 | } | ||
| 182 | |||
| 183 | |||
| 184 | static inline int write(int fd, void *buf, long count) | ||
| 185 | { | ||
| 186 | long ret; | ||
| 187 | |||
| 188 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 189 | "movl %%esi, %%ebx\n\t" | ||
| 190 | "int $0x80" | ||
| 191 | :"=a" (ret) | ||
| 192 | :"0" (__NR_write), "S" ((int)fd), | ||
| 193 | "c" ((long)buf), "d" ((long)count): "bx"); | ||
| 194 | return ret; | ||
| 195 | } | ||
| 196 | |||
| 197 | |||
| 198 | static inline int execve(char *s, char **argv, char **envp) | ||
| 199 | { | ||
| 200 | long ret; | ||
| 201 | |||
| 202 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 203 | "movl %%esi, %%ebx\n\t" | ||
| 204 | "int $0x80" | ||
| 205 | :"=a" (ret) | ||
| 206 | :"0" (__NR_execve), "S" ((long)s), | ||
| 207 | "c" ((long)argv), "d" ((long)envp): "bx"); | ||
| 208 | return ret; | ||
| 209 | } | ||
| 210 | |||
| 211 | |||
| 212 | static inline int setreuid(int reuid, int euid) | ||
| 213 | { | ||
| 214 | long ret; | ||
| 215 | |||
| 216 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 217 | "movl %%esi, %%ebx\n\t" | ||
| 218 | "int $0x80" | ||
| 219 | :"=a" (ret) | ||
| 220 | :"0" (__NR_setreuid), "S" ((long)reuid), | ||
| 221 | "c" ((long)euid): "bx"); | ||
| 222 | return ret; | ||
| 223 | } | ||
| 224 | |||
| 225 | static inline int uname(struct utsname *un) | ||
| 226 | { | ||
| 227 | long ret; | ||
| 228 | |||
| 229 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 230 | "movl %%esi, %%ebx\n\t" | ||
| 231 | "int $0x80" | ||
| 232 | :"=a" (ret) | ||
| 233 | :"0" (__NR_uname), "S" ((long)un): "bx"); | ||
| 234 | return ret; | ||
| 235 | } | ||
| 236 | |||
| 237 | static inline int unlink(char *pathname) | ||
| 238 | { | ||
| 239 | long ret; | ||
| 240 | |||
| 241 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 242 | "movl %%esi, %%ebx\n\t" | ||
| 243 | "int $0x80" | ||
| 244 | :"=a" (ret) | ||
| 245 | :"0" (__NR_unlink), "S" ((long)pathname): "bx"); | ||
| 246 | return ret; | ||
| 247 | } | ||
| 248 | |||
| 249 | static inline int chroot(char *path) | ||
| 250 | { | ||
| 251 | long ret; | ||
| 252 | |||
| 253 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 254 | "movl %%esi, %%ebx\n\t" | ||
| 255 | "int $0x80" | ||
| 256 | :"=a" (ret) | ||
| 257 | :"0" (__NR_chroot), "S" ((long)path): "bx"); | ||
| 258 | return ret; | ||
| 259 | } | ||
| 260 | |||
| 261 | static inline int brk(void *addr) | ||
| 262 | { | ||
| 263 | long ret; | ||
| 264 | |||
| 265 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 266 | "movl %%esi, %%ebx\n\t" | ||
| 267 | "int $0x80" | ||
| 268 | :"=a" (ret) | ||
| 269 | :"0" (__NR_brk), "S" (addr): "bx"); | ||
| 270 | return (ret); | ||
| 271 | } | ||
| 272 | |||
| 273 | static inline int _exit(int level) | ||
| 274 | { | ||
| 275 | long ret; | ||
| 276 | |||
| 277 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 278 | "movl %%esi, %%ebx\n\t" | ||
| 279 | "int $0x80" | ||
| 280 | :"=a" (ret) | ||
| 281 | :"0" (__NR_exit), "S" (level): "bx"); | ||
| 282 | return (ret); | ||
| 283 | } | ||
| 284 | |||
| 285 | static inline int dup(int fd) | ||
| 286 | { | ||
| 287 | long ret; | ||
| 288 | |||
| 289 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 290 | "movl %%esi, %%ebx\n\t" | ||
| 291 | "int $0x80" | ||
| 292 | :"=a" (ret) | ||
| 293 | :"0" (__NR_dup), "S" (fd): "bx"); | ||
| 294 | return ret; | ||
| 295 | } | ||
| 296 | |||
| 297 | |||
| 298 | static inline int dup2(int ofd, int nfd) | ||
| 299 | { | ||
| 300 | long ret; | ||
| 301 | |||
| 302 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 303 | "movl %%esi, %%ebx\n\t" | ||
| 304 | "int $0x80" | ||
| 305 | :"=a" (ret) | ||
| 306 | :"0" (__NR_dup2), "S" (ofd), "c" (nfd): "bx"); | ||
| 307 | return ret; | ||
| 308 | } | ||
| 309 | |||
| 310 | |||
| 311 | static inline int open(char *path, int mode, int flags) | ||
| 312 | { | ||
| 313 | long ret; | ||
| 314 | |||
| 315 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 316 | "movl %%esi, %%ebx\n\t" | ||
| 317 | "int $0x80" | ||
| 318 | :"=a" (ret) | ||
| 319 | :"0" (__NR_open), "S" ((long)path), | ||
| 320 | "c" ((int)mode), "d" ((int)flags): "bx"); | ||
| 321 | return ret; | ||
| 322 | } | ||
| 323 | |||
| 324 | |||
| 325 | |||
| 326 | static inline int chdir(char *path) | ||
| 327 | { | ||
| 328 | long ret; | ||
| 329 | |||
| 330 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 331 | "movl %%esi, %%ebx\n\t" | ||
| 332 | "int $0x80" | ||
| 333 | :"=a" (ret) | ||
| 334 | :"0" (__NR_chdir), "S" ((long)path): "bx"); | ||
| 335 | return ret; | ||
| 336 | } | ||
| 337 | |||
| 338 | static inline int close(int fd) | ||
| 339 | { | ||
| 340 | long ret; | ||
| 341 | |||
| 342 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 343 | "movl %%esi, %%ebx\n\t" | ||
| 344 | "int $0x80" | ||
| 345 | :"=a" (ret) | ||
| 346 | :"0" (__NR_close), "S" ((int)fd): "bx"); | ||
| 347 | return ret; | ||
| 348 | } | ||
| 349 | |||
| 350 | |||
| 351 | static inline int chown(char *path, int uid, int gid) | ||
| 352 | { | ||
| 353 | long ret; | ||
| 354 | |||
| 355 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 356 | "movl %%esi, %%ebx\n\t" | ||
| 357 | "int $0x80" | ||
| 358 | :"=a" (ret) | ||
| 359 | :"0" (__NR_chown), "S" ((long)path), | ||
| 360 | "c" ((int)uid), "d" ((int)gid): "bx"); | ||
| 361 | return ret; | ||
| 362 | } | ||
| 363 | |||
| 364 | static inline int rename(char *oldpath, char *newpath) | ||
| 365 | { | ||
| 366 | long ret; | ||
| 367 | |||
| 368 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 369 | "movl %%esi, %%ebx\n\t" | ||
| 370 | "int $0x80" | ||
| 371 | :"=a" (ret) | ||
| 372 | :"0" (__NR_rename), "S" ((long)oldpath), | ||
| 373 | "c" ((int)newpath): "bx"); | ||
| 374 | return ret; | ||
| 375 | } | ||
| 376 | |||
| 377 | static inline int chmod(char *path, int mode) | ||
| 378 | { | ||
| 379 | long ret; | ||
| 380 | |||
| 381 | __asm__ __volatile__ ("pushl %%ebx\n\t" | ||
| 382 | "movl %%esi, %%ebx\n\t" | ||
| 383 | "int $0x80" | ||
| 384 | :"=a" (ret) | ||
| 385 | :"0" (__NR_chmod), "S" ((long)path), | ||
| 386 | "c" ((int)mode): "bx"); | ||
| 387 | return ret; | ||
| 388 | } | ||
| 389 | |||
| 390 | static inline int sync(void) | ||
| 391 | { | ||
| 392 | long ret; | ||
| 393 | |||
| 394 | __asm__ __volatile__ ("int $0x80" | ||
| 395 | :"=a" (ret) | ||
| 396 | :"0" (__NR_sync)); | ||
| 397 | |||
| 398 | return (ret); | ||
| 399 | } | ||
| 400 | |||
| 401 | static inline int fork(void) | ||
| 402 | { | ||
| 403 | long ret; | ||
| 404 | |||
| 405 | __asm__ __volatile__ ("int $0x80" | ||
| 406 | :"=a" (ret) | ||
| 407 | :"0" (__NR_fork)); | ||
| 408 | |||
| 409 | return (ret); | ||
| 410 | } | ||
| 411 | |||
| 412 | static inline int antistrace(void) | ||
| 413 | { | ||
| 414 | long ret; | ||
| 415 | |||
| 416 | __asm__ __volatile__ ("int $0x03\n\t" | ||
| 417 | :"=a" (ret) | ||
| 418 | : ); | ||
| 419 | return (ret); | ||
| 420 | } | ||
| 421 | |||
| 422 | #define SIGTRAP 5 | ||
| 423 | |||
| 424 | static inline int signal(int signum, void *handler) | ||
| 425 | { | ||
| 426 | long ret; | ||
| 427 | |||
| 428 | __asm__ __volatile__ ("int $0x80" | ||
| 429 | :"=a" (ret) | ||
| 430 | :"0" (__NR_signal), "b" ((long)signum), | ||
| 431 | "c" ((int)handler)); | ||
| 432 | return ret; | ||
| 433 | } | ||
| 434 | |||
| 435 | |||
| 436 | #endif | ||
| 437 | |||
diff --git a/other/burneye/src/stub/include/unistd.h b/other/burneye/src/stub/include/unistd.h new file mode 100644 index 0000000..cc8537b --- /dev/null +++ b/other/burneye/src/stub/include/unistd.h | |||
| @@ -0,0 +1,280 @@ | |||
| 1 | #ifndef ASM_I386_UNISTD_H | ||
| 2 | #define ASM_I386_UNISTD_H | ||
| 3 | |||
| 4 | #ifndef NULL | ||
| 5 | #define NULL ((void *) 0x0) | ||
| 6 | #endif | ||
| 7 | /* | ||
| 8 | * This file contains the system call numbers. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #define __NR_exit 1 | ||
| 12 | #define __NR_fork 2 | ||
| 13 | #define __NR_read 3 | ||
| 14 | #define __NR_write 4 | ||
| 15 | #define __NR_open 5 | ||
| 16 | #define __NR_close 6 | ||
| 17 | #define __NR_waitpid 7 | ||
| 18 | #define __NR_creat 8 | ||
| 19 | #define __NR_link 9 | ||
| 20 | #define __NR_unlink 10 | ||
| 21 | #define __NR_execve 11 | ||
| 22 | #define __NR_chdir 12 | ||
| 23 | #define __NR_time 13 | ||
| 24 | #define __NR_mknod 14 | ||
| 25 | #define __NR_chmod 15 | ||
| 26 | #define __NR_lchown 16 | ||
| 27 | #define __NR_break 17 | ||
| 28 | #define __NR_oldstat 18 | ||
| 29 | #define __NR_lseek 19 | ||
| 30 | #define __NR_getpid 20 | ||
| 31 | #define __NR_mount 21 | ||
| 32 | #define __NR_umount 22 | ||
| 33 | #define __NR_setuid 23 | ||
| 34 | #define __NR_getuid 24 | ||
| 35 | #define __NR_stime 25 | ||
| 36 | #define __NR_ptrace 26 | ||
| 37 | #define __NR_alarm 27 | ||
| 38 | #define __NR_oldfstat 28 | ||
| 39 | #define __NR_pause 29 | ||
| 40 | #define __NR_utime 30 | ||
| 41 | #define __NR_stty 31 | ||
| 42 | #define __NR_gtty 32 | ||
| 43 | #define __NR_access 33 | ||
| 44 | #define __NR_nice 34 | ||
| 45 | #define __NR_ftime 35 | ||
| 46 | #define __NR_sync 36 | ||
| 47 | #define __NR_kill 37 | ||
| 48 | #define __NR_rename 38 | ||
| 49 | #define __NR_mkdir 39 | ||
| 50 | #define __NR_rmdir 40 | ||
| 51 | #define __NR_dup 41 | ||
| 52 | #define __NR_pipe 42 | ||
| 53 | #define __NR_times 43 | ||
| 54 | #define __NR_prof 44 | ||
| 55 | #define __NR_brk 45 | ||
| 56 | #define __NR_setgid 46 | ||
| 57 | #define __NR_getgid 47 | ||
| 58 | #define __NR_signal 48 | ||
| 59 | #define __NR_geteuid 49 | ||
| 60 | #define __NR_getegid 50 | ||
| 61 | #define __NR_acct 51 | ||
| 62 | #define __NR_umount2 52 | ||
| 63 | #define __NR_lock 53 | ||
| 64 | #define __NR_ioctl 54 | ||
| 65 | #define __NR_fcntl 55 | ||
| 66 | #define __NR_mpx 56 | ||
| 67 | #define __NR_setpgid 57 | ||
| 68 | #define __NR_ulimit 58 | ||
| 69 | #define __NR_oldolduname 59 | ||
| 70 | #define __NR_umask 60 | ||
| 71 | #define __NR_chroot 61 | ||
| 72 | #define __NR_ustat 62 | ||
| 73 | #define __NR_dup2 63 | ||
| 74 | #define __NR_getppid 64 | ||
| 75 | #define __NR_getpgrp 65 | ||
| 76 | #define __NR_setsid 66 | ||
| 77 | #define __NR_sigaction 67 | ||
| 78 | #define __NR_sgetmask 68 | ||
| 79 | #define __NR_ssetmask 69 | ||
| 80 | #define __NR_setreuid 70 | ||
| 81 | #define __NR_setregid 71 | ||
| 82 | #define __NR_sigsuspend 72 | ||
| 83 | #define __NR_sigpending 73 | ||
| 84 | #define __NR_sethostname 74 | ||
| 85 | #define __NR_setrlimit 75 | ||
| 86 | #define __NR_getrlimit 76 | ||
| 87 | #define __NR_getrusage 77 | ||
| 88 | #define __NR_gettimeofday 78 | ||
| 89 | #define __NR_settimeofday 79 | ||
| 90 | #define __NR_getgroups 80 | ||
| 91 | #define __NR_setgroups 81 | ||
| 92 | #define __NR_select 82 | ||
| 93 | #define __NR_symlink 83 | ||
| 94 | #define __NR_oldlstat 84 | ||
| 95 | #define __NR_readlink 85 | ||
| 96 | #define __NR_uselib 86 | ||
| 97 | #define __NR_swapon 87 | ||
| 98 | #define __NR_reboot 88 | ||
| 99 | #define __NR_readdir 89 | ||
| 100 | #define __NR_mmap 90 | ||
| 101 | #define __NR_munmap 91 | ||
| 102 | #define __NR_truncate 92 | ||
| 103 | #define __NR_ftruncate 93 | ||
| 104 | #define __NR_fchmod 94 | ||
| 105 | #define __NR_fchown 95 | ||
| 106 | #define __NR_getpriority 96 | ||
| 107 | #define __NR_setpriority 97 | ||
| 108 | #define __NR_profil 98 | ||
| 109 | #define __NR_statfs 99 | ||
| 110 | #define __NR_fstatfs 100 | ||
| 111 | #define __NR_ioperm 101 | ||
| 112 | #define __NR_socketcall 102 | ||
| 113 | #define __NR_syslog 103 | ||
| 114 | #define __NR_setitimer 104 | ||
| 115 | #define __NR_getitimer 105 | ||
| 116 | #define __NR_stat 106 | ||
| 117 | #define __NR_lstat 107 | ||
| 118 | #define __NR_fstat 108 | ||
| 119 | #define __NR_olduname 109 | ||
| 120 | #define __NR_iopl 110 | ||
| 121 | #define __NR_vhangup 111 | ||
| 122 | #define __NR_idle 112 | ||
| 123 | #define __NR_vm86old 113 | ||
| 124 | #define __NR_wait4 114 | ||
| 125 | #define __NR_swapoff 115 | ||
| 126 | #define __NR_sysinfo 116 | ||
| 127 | #define __NR_ipc 117 | ||
| 128 | #define __NR_fsync 118 | ||
| 129 | #define __NR_sigreturn 119 | ||
| 130 | #define __NR_clone 120 | ||
| 131 | #define __NR_setdomainname 121 | ||
| 132 | #define __NR_uname 122 | ||
| 133 | #define __NR_modify_ldt 123 | ||
| 134 | #define __NR_adjtimex 124 | ||
| 135 | #define __NR_mprotect 125 | ||
| 136 | #define __NR_sigprocmask 126 | ||
| 137 | #define __NR_create_module 127 | ||
| 138 | #define __NR_init_module 128 | ||
| 139 | #define __NR_delete_module 129 | ||
| 140 | #define __NR_get_kernel_syms 130 | ||
| 141 | #define __NR_quotactl 131 | ||
| 142 | #define __NR_getpgid 132 | ||
| 143 | #define __NR_fchdir 133 | ||
| 144 | #define __NR_bdflush 134 | ||
| 145 | #define __NR_sysfs 135 | ||
| 146 | #define __NR_personality 136 | ||
| 147 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
| 148 | #define __NR_setfsuid 138 | ||
| 149 | #define __NR_setfsgid 139 | ||
| 150 | #define __NR__llseek 140 | ||
| 151 | #define __NR_getdents 141 | ||
| 152 | #define __NR__newselect 142 | ||
| 153 | #define __NR_flock 143 | ||
| 154 | #define __NR_msync 144 | ||
| 155 | #define __NR_readv 145 | ||
| 156 | #define __NR_writev 146 | ||
| 157 | #define __NR_getsid 147 | ||
| 158 | #define __NR_fdatasync 148 | ||
| 159 | #define __NR__sysctl 149 | ||
| 160 | #define __NR_mlock 150 | ||
| 161 | #define __NR_munlock 151 | ||
| 162 | #define __NR_mlockall 152 | ||
| 163 | #define __NR_munlockall 153 | ||
| 164 | #define __NR_sched_setparam 154 | ||
| 165 | #define __NR_sched_getparam 155 | ||
| 166 | #define __NR_sched_setscheduler 156 | ||
| 167 | #define __NR_sched_getscheduler 157 | ||
| 168 | #define __NR_sched_yield 158 | ||
| 169 | #define __NR_sched_get_priority_max 159 | ||
| 170 | #define __NR_sched_get_priority_min 160 | ||
| 171 | #define __NR_sched_rr_get_interval 161 | ||
| 172 | #define __NR_nanosleep 162 | ||
| 173 | #define __NR_mremap 163 | ||
| 174 | #define __NR_setresuid 164 | ||
| 175 | #define __NR_getresuid 165 | ||
| 176 | #define __NR_vm86 166 | ||
| 177 | #define __NR_query_module 167 | ||
| 178 | #define __NR_poll 168 | ||
| 179 | #define __NR_nfsservctl 169 | ||
| 180 | #define __NR_setresgid 170 | ||
| 181 | #define __NR_getresgid 171 | ||
| 182 | #define __NR_prctl 172 | ||
| 183 | #define __NR_rt_sigreturn 173 | ||
| 184 | #define __NR_rt_sigaction 174 | ||
| 185 | #define __NR_rt_sigprocmask 175 | ||
| 186 | #define __NR_rt_sigpending 176 | ||
| 187 | #define __NR_rt_sigtimedwait 177 | ||
| 188 | #define __NR_rt_sigqueueinfo 178 | ||
| 189 | #define __NR_rt_sigsuspend 179 | ||
| 190 | #define __NR_pread 180 | ||
| 191 | #define __NR_pwrite 181 | ||
| 192 | #define __NR_chown 182 | ||
| 193 | #define __NR_getcwd 183 | ||
| 194 | #define __NR_capget 184 | ||
| 195 | #define __NR_capset 185 | ||
| 196 | #define __NR_sigaltstack 186 | ||
| 197 | #define __NR_sendfile 187 | ||
| 198 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
| 199 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
| 200 | #define __NR_vfork 190 | ||
| 201 | |||
| 202 | /* user-visible error numbers are in the range -1 - -122: see <asm-i386/errno.h> */ | ||
| 203 | |||
| 204 | #define __syscall_return(type, res) \ | ||
| 205 | do { \ | ||
| 206 | if ((unsigned long)(res) >= (unsigned long)(-125)) { \ | ||
| 207 | errno = -(res); \ | ||
| 208 | res = -1; \ | ||
| 209 | } \ | ||
| 210 | return (type) (res); \ | ||
| 211 | } while (0) | ||
| 212 | |||
| 213 | /* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */ | ||
| 214 | #define _syscall0(type,name) \ | ||
| 215 | type name(void) \ | ||
| 216 | { \ | ||
| 217 | long __res; \ | ||
| 218 | __asm__ volatile ("int $0x80" \ | ||
| 219 | : "=a" (__res) \ | ||
| 220 | : "0" (__NR_##name)); \ | ||
| 221 | __syscall_return(type,__res); \ | ||
| 222 | } | ||
| 223 | |||
| 224 | #define _syscall1(type,name,type1,arg1) \ | ||
| 225 | type name(type1 arg1) \ | ||
| 226 | { \ | ||
| 227 | long __res; \ | ||
| 228 | __asm__ volatile ("int $0x80" \ | ||
| 229 | : "=a" (__res) \ | ||
| 230 | : "0" (__NR_##name),"b" ((long)(arg1))); \ | ||
| 231 | __syscall_return(type,__res); \ | ||
| 232 | } | ||
| 233 | |||
| 234 | #define _syscall2(type,name,type1,arg1,type2,arg2) \ | ||
| 235 | type name(type1 arg1,type2 arg2) \ | ||
| 236 | { \ | ||
| 237 | long __res; \ | ||
| 238 | __asm__ volatile ("int $0x80" \ | ||
| 239 | : "=a" (__res) \ | ||
| 240 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \ | ||
| 241 | __syscall_return(type,__res); \ | ||
| 242 | } | ||
| 243 | |||
| 244 | #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ | ||
| 245 | type name(type1 arg1,type2 arg2,type3 arg3) \ | ||
| 246 | { \ | ||
| 247 | long __res; \ | ||
| 248 | __asm__ volatile ("int $0x80" \ | ||
| 249 | : "=a" (__res) \ | ||
| 250 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 251 | "d" ((long)(arg3))); \ | ||
| 252 | __syscall_return(type,__res); \ | ||
| 253 | } | ||
| 254 | |||
| 255 | #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ | ||
| 256 | type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ | ||
| 257 | { \ | ||
| 258 | long __res; \ | ||
| 259 | __asm__ volatile ("int $0x80" \ | ||
| 260 | : "=a" (__res) \ | ||
| 261 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 262 | "d" ((long)(arg3)),"S" ((long)(arg4))); \ | ||
| 263 | __syscall_return(type,__res); \ | ||
| 264 | } | ||
| 265 | |||
| 266 | #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ | ||
| 267 | type5,arg5) \ | ||
| 268 | type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \ | ||
| 269 | { \ | ||
| 270 | long __res; \ | ||
| 271 | __asm__ volatile ("int $0x80" \ | ||
| 272 | : "=a" (__res) \ | ||
| 273 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | ||
| 274 | "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \ | ||
| 275 | __syscall_return(type,__res); \ | ||
| 276 | } | ||
| 277 | |||
| 278 | |||
| 279 | #endif /* _ASM_I386_UNISTD_H_ */ | ||
| 280 | |||
