| // Copyright 2009 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| /* |
| * Input to godefs. |
| * |
| godefs -f -m64 defs.c >amd64/defs.h |
| godefs defs.c >386/defs.h |
| */ |
| |
| #define __DARWIN_UNIX03 0 |
| |
| #include <mach/mach.h> |
| #include <mach/message.h> |
| #include <sys/types.h> |
| #include <sys/time.h> |
| #include <signal.h> |
| #include <sys/mman.h> |
| |
| enum { |
| $PROT_NONE = PROT_NONE, |
| $PROT_READ = PROT_READ, |
| $PROT_WRITE = PROT_WRITE, |
| $PROT_EXEC = PROT_EXEC, |
| |
| $MAP_ANON = MAP_ANON, |
| $MAP_PRIVATE = MAP_PRIVATE, |
| |
| $MACH_MSG_TYPE_MOVE_RECEIVE = MACH_MSG_TYPE_MOVE_RECEIVE, |
| $MACH_MSG_TYPE_MOVE_SEND = MACH_MSG_TYPE_MOVE_SEND, |
| $MACH_MSG_TYPE_MOVE_SEND_ONCE = MACH_MSG_TYPE_MOVE_SEND_ONCE, |
| $MACH_MSG_TYPE_COPY_SEND = MACH_MSG_TYPE_COPY_SEND, |
| $MACH_MSG_TYPE_MAKE_SEND = MACH_MSG_TYPE_MAKE_SEND, |
| $MACH_MSG_TYPE_MAKE_SEND_ONCE = MACH_MSG_TYPE_MAKE_SEND_ONCE, |
| $MACH_MSG_TYPE_COPY_RECEIVE = MACH_MSG_TYPE_COPY_RECEIVE, |
| |
| $MACH_MSG_PORT_DESCRIPTOR = MACH_MSG_PORT_DESCRIPTOR, |
| $MACH_MSG_OOL_DESCRIPTOR = MACH_MSG_OOL_DESCRIPTOR, |
| $MACH_MSG_OOL_PORTS_DESCRIPTOR = MACH_MSG_OOL_PORTS_DESCRIPTOR, |
| $MACH_MSG_OOL_VOLATILE_DESCRIPTOR = MACH_MSG_OOL_VOLATILE_DESCRIPTOR, |
| |
| $MACH_MSGH_BITS_COMPLEX = MACH_MSGH_BITS_COMPLEX, |
| |
| $MACH_SEND_MSG = MACH_SEND_MSG, |
| $MACH_RCV_MSG = MACH_RCV_MSG, |
| $MACH_RCV_LARGE = MACH_RCV_LARGE, |
| |
| $MACH_SEND_TIMEOUT = MACH_SEND_TIMEOUT, |
| $MACH_SEND_INTERRUPT = MACH_SEND_INTERRUPT, |
| $MACH_SEND_CANCEL = MACH_SEND_CANCEL, |
| $MACH_SEND_ALWAYS = MACH_SEND_ALWAYS, |
| $MACH_SEND_TRAILER = MACH_SEND_TRAILER, |
| $MACH_RCV_TIMEOUT = MACH_RCV_TIMEOUT, |
| $MACH_RCV_NOTIFY = MACH_RCV_NOTIFY, |
| $MACH_RCV_INTERRUPT = MACH_RCV_INTERRUPT, |
| $MACH_RCV_OVERWRITE = MACH_RCV_OVERWRITE, |
| |
| $NDR_PROTOCOL_2_0 = NDR_PROTOCOL_2_0, |
| $NDR_INT_BIG_ENDIAN = NDR_INT_BIG_ENDIAN, |
| $NDR_INT_LITTLE_ENDIAN = NDR_INT_LITTLE_ENDIAN, |
| $NDR_FLOAT_IEEE = NDR_FLOAT_IEEE, |
| $NDR_CHAR_ASCII = NDR_CHAR_ASCII, |
| |
| $SA_SIGINFO = SA_SIGINFO, |
| $SA_RESTART = SA_RESTART, |
| $SA_ONSTACK = SA_ONSTACK, |
| $SA_USERTRAMP = SA_USERTRAMP, |
| $SA_64REGSET = SA_64REGSET, |
| }; |
| |
| typedef mach_msg_body_t $MachBody; |
| typedef mach_msg_header_t $MachHeader; |
| typedef NDR_record_t $MachNDR; |
| typedef mach_msg_port_descriptor_t $MachPort; |
| |
| typedef stack_t $StackT; |
| typedef union __sigaction_u $Sighandler; |
| |
| typedef struct __sigaction $Sigaction; // used in syscalls |
| // typedef struct sigaction $Sigaction; // used by the C library |
| typedef union sigval $Sigval; |
| typedef siginfo_t $Siginfo; |
| |
| typedef struct fp_control $FPControl; |
| typedef struct fp_status $FPStatus; |
| typedef struct mmst_reg $RegMMST; |
| typedef struct xmm_reg $RegXMM; |
| |
| #ifdef __LP64__ |
| // amd64 |
| typedef x86_thread_state64_t $Regs; |
| typedef x86_float_state64_t $FloatState; |
| typedef x86_exception_state64_t $ExceptionState; |
| typedef struct mcontext64 $Mcontext; |
| #else |
| // 386 |
| typedef x86_thread_state32_t $Regs; |
| typedef x86_float_state32_t $FloatState; |
| typedef x86_exception_state32_t $ExceptionState; |
| typedef struct mcontext32 $Mcontext; |
| #endif |
| |
| typedef ucontext_t $Ucontext; |