diff options
author | hpa <hpa> | 2002-06-12 23:18:40 +0000 |
---|---|---|
committer | hpa <hpa> | 2002-06-12 23:18:40 +0000 |
commit | 2076ae80b6e59960cd15b6fb4ace19e5b8fcad3d (patch) | |
tree | 1378410d10f6af25aa81e2b6cd0737b22568f9dd /com32 | |
parent | 55ddbef3b32a149c2ee1b37d3600ea5c4a1bf57c (diff) | |
download | syslinux-2076ae80b6e59960cd15b6fb4ace19e5b8fcad3d.tar.gz |
Move com32.h to a subdirectory; we expect to have more stuff here...
Diffstat (limited to 'com32')
-rw-r--r-- | com32/include/com32.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/com32/include/com32.h b/com32/include/com32.h new file mode 100644 index 00000000..4b7266fd --- /dev/null +++ b/com32/include/com32.h @@ -0,0 +1,56 @@ +/* ----------------------------------------------------------------------- * + * Not Copyright 2002 H. Peter Anvin + * This file is in the public domain. + * ----------------------------------------------------------------------- */ + +/* + * com32.h + * + * Common declarations for com32 programs. + */ + +#ifndef _COM32_H +#define _COM32_H + +#include <stdint.h> + +/* + * This structure defines the register frame used by the + * system call interface. + * + * The syscall interface is: + * + * __syscall(<interrupt #>, <source regs>, <return regs>) + */ +typedef union { + uint32_t l; + uint16_t w[2]; + uint8_t b[4]; +} reg32_t; + +typedef struct { + uint16_t gs; /* Offset 0 */ + uint16_t fs; /* Offset 2 */ + uint16_t es; /* Offset 4 */ + uint16_t ds; /* Offset 6 */ + + reg32_t edi; /* Offset 8 */ + reg32_t esi; /* Offset 12 */ + reg32_t ebp; /* Offset 16 */ + reg32_t _unused; /* Offset 20 */ + reg32_t ebx; /* Offset 24 */ + reg32_t edx; /* Offset 28 */ + reg32_t ecx; /* Offset 32 */ + reg32_t eax; /* Offset 36 */ + + reg32_t eflags; /* Offset 40 */ +} com32sys_t; + +/* The standard prototype for _start() */ +int _start(unsigned int __nargs, + char *__cmdline, + void (*__syscall)(uint8_t, com32sys_t *, com32sys_t *), + void *__bounce_ptr, + unsigned int __bounce_len); + +#endif /* _COM32_H */ |