github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/runtime/defs_linux_386.go (about)

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