summaryrefslogtreecommitdiff
path: root/other/burneye/src/stub/include
diff options
context:
space:
mode:
authorRoot THC2026-02-24 12:42:47 +0000
committerRoot THC2026-02-24 12:42:47 +0000
commitc9cbeced5b3f2bdd7407e29c0811e65954132540 (patch)
treeaefc355416b561111819de159ccbd86c3004cf88 /other/burneye/src/stub/include
parent073fe4bf9fca6bf40cef2886d75df832ef4b6fca (diff)
initial
Diffstat (limited to 'other/burneye/src/stub/include')
-rw-r--r--other/burneye/src/stub/include/int80-test.c9
-rw-r--r--other/burneye/src/stub/include/int80-test.obin0 -> 716 bytes
-rw-r--r--other/burneye/src/stub/include/int80.h437
-rw-r--r--other/burneye/src/stub/include/unistd.h280
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
4int
5main (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
33typedef unsigned char cc_t;
34typedef unsigned int speed_t;
35typedef unsigned int tcflag_t;
36
37#define NCCS 32
38
39typedef 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
55struct 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
81extern 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
91static 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
104static 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
117static 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
130static 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
143static 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
156static 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
170static 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
184static 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
198static 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
212static 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
225static 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
237static 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
249static 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
261static 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
273static 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
285static 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
298static 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
311static 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
326static 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
338static 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
351static 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
364static 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
377static 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
390static 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
401static 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
412static 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
424static 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) \
205do { \
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) \
215type name(void) \
216{ \
217long __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) \
225type name(type1 arg1) \
226{ \
227long __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) \
235type name(type1 arg1,type2 arg2) \
236{ \
237long __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) \
245type name(type1 arg1,type2 arg2,type3 arg3) \
246{ \
247long __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) \
256type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
257{ \
258long __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) \
268type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
269{ \
270long __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