Source file src/runtime/defs_linux_386.go

     1  // created by cgo -cdefs and then converted to Go
     2  // cgo -cdefs defs2_linux.go
     3  
     4  package runtime
     5  
     6  import "unsafe"
     7  
     8  const (
     9  	_EINTR  = 0x4
    10  	_EAGAIN = 0xb
    11  	_ENOMEM = 0xc
    12  	_ENOSYS = 0x26
    13  
    14  	_PROT_NONE  = 0x0
    15  	_PROT_READ  = 0x1
    16  	_PROT_WRITE = 0x2
    17  	_PROT_EXEC  = 0x4
    18  
    19  	_MAP_ANON    = 0x20
    20  	_MAP_PRIVATE = 0x2
    21  	_MAP_FIXED   = 0x10
    22  
    23  	_MADV_DONTNEED   = 0x4
    24  	_MADV_FREE       = 0x8
    25  	_MADV_HUGEPAGE   = 0xe
    26  	_MADV_NOHUGEPAGE = 0xf
    27  
    28  	_SA_RESTART  = 0x10000000
    29  	_SA_ONSTACK  = 0x8000000
    30  	_SA_RESTORER = 0x4000000
    31  	_SA_SIGINFO  = 0x4
    32  
    33  	_SI_KERNEL = 0x80
    34  	_SI_TIMER  = -0x2
    35  
    36  	_SIGHUP    = 0x1
    37  	_SIGINT    = 0x2
    38  	_SIGQUIT   = 0x3
    39  	_SIGILL    = 0x4
    40  	_SIGTRAP   = 0x5
    41  	_SIGABRT   = 0x6
    42  	_SIGBUS    = 0x7
    43  	_SIGFPE    = 0x8
    44  	_SIGKILL   = 0x9
    45  	_SIGUSR1   = 0xa
    46  	_SIGSEGV   = 0xb
    47  	_SIGUSR2   = 0xc
    48  	_SIGPIPE   = 0xd
    49  	_SIGALRM   = 0xe
    50  	_SIGSTKFLT = 0x10
    51  	_SIGCHLD   = 0x11
    52  	_SIGCONT   = 0x12
    53  	_SIGSTOP   = 0x13
    54  	_SIGTSTP   = 0x14
    55  	_SIGTTIN   = 0x15
    56  	_SIGTTOU   = 0x16
    57  	_SIGURG    = 0x17
    58  	_SIGXCPU   = 0x18
    59  	_SIGXFSZ   = 0x19
    60  	_SIGVTALRM = 0x1a
    61  	_SIGPROF   = 0x1b
    62  	_SIGWINCH  = 0x1c
    63  	_SIGIO     = 0x1d
    64  	_SIGPWR    = 0x1e
    65  	_SIGSYS    = 0x1f
    66  
    67  	_SIGRTMIN = 0x20
    68  
    69  	_FPE_INTDIV = 0x1
    70  	_FPE_INTOVF = 0x2
    71  	_FPE_FLTDIV = 0x3
    72  	_FPE_FLTOVF = 0x4
    73  	_FPE_FLTUND = 0x5
    74  	_FPE_FLTRES = 0x6
    75  	_FPE_FLTINV = 0x7
    76  	_FPE_FLTSUB = 0x8
    77  
    78  	_BUS_ADRALN = 0x1
    79  	_BUS_ADRERR = 0x2
    80  	_BUS_OBJERR = 0x3
    81  
    82  	_SEGV_MAPERR = 0x1
    83  	_SEGV_ACCERR = 0x2
    84  
    85  	_ITIMER_REAL    = 0x0
    86  	_ITIMER_VIRTUAL = 0x1
    87  	_ITIMER_PROF    = 0x2
    88  
    89  	_CLOCK_THREAD_CPUTIME_ID = 0x3
    90  
    91  	_SIGEV_THREAD_ID = 0x4
    92  
    93  	_O_RDONLY   = 0x0
    94  	_O_NONBLOCK = 0x800
    95  	_O_CLOEXEC  = 0x80000
    96  
    97  	_EPOLLIN       = 0x1
    98  	_EPOLLOUT      = 0x4
    99  	_EPOLLERR      = 0x8
   100  	_EPOLLHUP      = 0x10
   101  	_EPOLLRDHUP    = 0x2000
   102  	_EPOLLET       = 0x80000000
   103  	_EPOLL_CLOEXEC = 0x80000
   104  	_EPOLL_CTL_ADD = 0x1
   105  	_EPOLL_CTL_DEL = 0x2
   106  	_EPOLL_CTL_MOD = 0x3
   107  
   108  	_AF_UNIX    = 0x1
   109  	_SOCK_DGRAM = 0x2
   110  )
   111  
   112  type fpreg struct {
   113  	significand [4]uint16
   114  	exponent    uint16
   115  }
   116  
   117  type fpxreg struct {
   118  	significand [4]uint16
   119  	exponent    uint16
   120  	padding     [3]uint16
   121  }
   122  
   123  type xmmreg struct {
   124  	element [4]uint32
   125  }
   126  
   127  type fpstate struct {
   128  	cw        uint32
   129  	sw        uint32
   130  	tag       uint32
   131  	ipoff     uint32
   132  	cssel     uint32
   133  	dataoff   uint32
   134  	datasel   uint32
   135  	_st       [8]fpreg
   136  	status    uint16
   137  	magic     uint16
   138  	_fxsr_env [6]uint32
   139  	mxcsr     uint32
   140  	reserved  uint32
   141  	_fxsr_st  [8]fpxreg
   142  	_xmm      [8]xmmreg
   143  	padding1  [44]uint32
   144  	anon0     [48]byte
   145  }
   146  
   147  type timespec struct {
   148  	tv_sec  int32
   149  	tv_nsec int32
   150  }
   151  
   152  //go:nosplit
   153  func (ts *timespec) setNsec(ns int64) {
   154  	ts.tv_sec = timediv(ns, 1e9, &ts.tv_nsec)
   155  }
   156  
   157  type timeval struct {
   158  	tv_sec  int32
   159  	tv_usec int32
   160  }
   161  
   162  func (tv *timeval) set_usec(x int32) {
   163  	tv.tv_usec = x
   164  }
   165  
   166  type sigactiont struct {
   167  	sa_handler  uintptr
   168  	sa_flags    uint32
   169  	sa_restorer uintptr
   170  	sa_mask     uint64
   171  }
   172  
   173  type siginfoFields struct {
   174  	si_signo int32
   175  	si_errno int32
   176  	si_code  int32
   177  	// below here is a union; si_addr is the only field we use
   178  	si_addr uint32
   179  }
   180  
   181  type siginfo struct {
   182  	siginfoFields
   183  
   184  	// Pad struct to the max size in the kernel.
   185  	_ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte
   186  }
   187  
   188  type stackt struct {
   189  	ss_sp    *byte
   190  	ss_flags int32
   191  	ss_size  uintptr
   192  }
   193  
   194  type sigcontext struct {
   195  	gs            uint16
   196  	__gsh         uint16
   197  	fs            uint16
   198  	__fsh         uint16
   199  	es            uint16
   200  	__esh         uint16
   201  	ds            uint16
   202  	__dsh         uint16
   203  	edi           uint32
   204  	esi           uint32
   205  	ebp           uint32
   206  	esp           uint32
   207  	ebx           uint32
   208  	edx           uint32
   209  	ecx           uint32
   210  	eax           uint32
   211  	trapno        uint32
   212  	err           uint32
   213  	eip           uint32
   214  	cs            uint16
   215  	__csh         uint16
   216  	eflags        uint32
   217  	esp_at_signal uint32
   218  	ss            uint16
   219  	__ssh         uint16
   220  	fpstate       *fpstate
   221  	oldmask       uint32
   222  	cr2           uint32
   223  }
   224  
   225  type ucontext struct {
   226  	uc_flags    uint32
   227  	uc_link     *ucontext
   228  	uc_stack    stackt
   229  	uc_mcontext sigcontext
   230  	uc_sigmask  uint32
   231  }
   232  
   233  type itimerspec struct {
   234  	it_interval timespec
   235  	it_value    timespec
   236  }
   237  
   238  type itimerval struct {
   239  	it_interval timeval
   240  	it_value    timeval
   241  }
   242  
   243  type sigeventFields struct {
   244  	value  uintptr
   245  	signo  int32
   246  	notify int32
   247  	// below here is a union; sigev_notify_thread_id is the only field we use
   248  	sigev_notify_thread_id int32
   249  }
   250  
   251  type sigevent struct {
   252  	sigeventFields
   253  
   254  	// Pad struct to the max size in the kernel.
   255  	_ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte
   256  }
   257  
   258  type epollevent struct {
   259  	events uint32
   260  	data   [8]byte // to match amd64
   261  }
   262  
   263  type sockaddr_un struct {
   264  	family uint16
   265  	path   [108]byte
   266  }
   267  

View as plain text