...

Source file src/runtime/defs_linux_amd64.go

Documentation: runtime

     1  // created by cgo -cdefs and then converted to Go
     2  // cgo -cdefs defs_linux.go defs1_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  	_EPOLLIN       = 0x1
    93  	_EPOLLOUT      = 0x4
    94  	_EPOLLERR      = 0x8
    95  	_EPOLLHUP      = 0x10
    96  	_EPOLLRDHUP    = 0x2000
    97  	_EPOLLET       = 0x80000000
    98  	_EPOLL_CLOEXEC = 0x80000
    99  	_EPOLL_CTL_ADD = 0x1
   100  	_EPOLL_CTL_DEL = 0x2
   101  	_EPOLL_CTL_MOD = 0x3
   102  
   103  	_AF_UNIX    = 0x1
   104  	_SOCK_DGRAM = 0x2
   105  )
   106  
   107  type timespec struct {
   108  	tv_sec  int64
   109  	tv_nsec int64
   110  }
   111  
   112  //go:nosplit
   113  func (ts *timespec) setNsec(ns int64) {
   114  	ts.tv_sec = ns / 1e9
   115  	ts.tv_nsec = ns % 1e9
   116  }
   117  
   118  type timeval struct {
   119  	tv_sec  int64
   120  	tv_usec int64
   121  }
   122  
   123  func (tv *timeval) set_usec(x int32) {
   124  	tv.tv_usec = int64(x)
   125  }
   126  
   127  type sigactiont struct {
   128  	sa_handler  uintptr
   129  	sa_flags    uint64
   130  	sa_restorer uintptr
   131  	sa_mask     uint64
   132  }
   133  
   134  type siginfoFields struct {
   135  	si_signo int32
   136  	si_errno int32
   137  	si_code  int32
   138  	// below here is a union; si_addr is the only field we use
   139  	si_addr uint64
   140  }
   141  
   142  type siginfo struct {
   143  	siginfoFields
   144  
   145  	// Pad struct to the max size in the kernel.
   146  	_ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte
   147  }
   148  
   149  type itimerspec struct {
   150  	it_interval timespec
   151  	it_value    timespec
   152  }
   153  
   154  type itimerval struct {
   155  	it_interval timeval
   156  	it_value    timeval
   157  }
   158  
   159  type sigeventFields struct {
   160  	value  uintptr
   161  	signo  int32
   162  	notify int32
   163  	// below here is a union; sigev_notify_thread_id is the only field we use
   164  	sigev_notify_thread_id int32
   165  }
   166  
   167  type sigevent struct {
   168  	sigeventFields
   169  
   170  	// Pad struct to the max size in the kernel.
   171  	_ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte
   172  }
   173  
   174  type epollevent struct {
   175  	events uint32
   176  	data   [8]byte // unaligned uintptr
   177  }
   178  
   179  // created by cgo -cdefs and then converted to Go
   180  // cgo -cdefs defs_linux.go defs1_linux.go
   181  
   182  const (
   183  	_O_RDONLY   = 0x0
   184  	_O_NONBLOCK = 0x800
   185  	_O_CLOEXEC  = 0x80000
   186  )
   187  
   188  type usigset struct {
   189  	__val [16]uint64
   190  }
   191  
   192  type fpxreg struct {
   193  	significand [4]uint16
   194  	exponent    uint16
   195  	padding     [3]uint16
   196  }
   197  
   198  type xmmreg struct {
   199  	element [4]uint32
   200  }
   201  
   202  type fpstate struct {
   203  	cwd       uint16
   204  	swd       uint16
   205  	ftw       uint16
   206  	fop       uint16
   207  	rip       uint64
   208  	rdp       uint64
   209  	mxcsr     uint32
   210  	mxcr_mask uint32
   211  	_st       [8]fpxreg
   212  	_xmm      [16]xmmreg
   213  	padding   [24]uint32
   214  }
   215  
   216  type fpxreg1 struct {
   217  	significand [4]uint16
   218  	exponent    uint16
   219  	padding     [3]uint16
   220  }
   221  
   222  type xmmreg1 struct {
   223  	element [4]uint32
   224  }
   225  
   226  type fpstate1 struct {
   227  	cwd       uint16
   228  	swd       uint16
   229  	ftw       uint16
   230  	fop       uint16
   231  	rip       uint64
   232  	rdp       uint64
   233  	mxcsr     uint32
   234  	mxcr_mask uint32
   235  	_st       [8]fpxreg1
   236  	_xmm      [16]xmmreg1
   237  	padding   [24]uint32
   238  }
   239  
   240  type fpreg1 struct {
   241  	significand [4]uint16
   242  	exponent    uint16
   243  }
   244  
   245  type stackt struct {
   246  	ss_sp     *byte
   247  	ss_flags  int32
   248  	pad_cgo_0 [4]byte
   249  	ss_size   uintptr
   250  }
   251  
   252  type mcontext struct {
   253  	gregs       [23]uint64
   254  	fpregs      *fpstate
   255  	__reserved1 [8]uint64
   256  }
   257  
   258  type ucontext struct {
   259  	uc_flags     uint64
   260  	uc_link      *ucontext
   261  	uc_stack     stackt
   262  	uc_mcontext  mcontext
   263  	uc_sigmask   usigset
   264  	__fpregs_mem fpstate
   265  }
   266  
   267  type sigcontext struct {
   268  	r8          uint64
   269  	r9          uint64
   270  	r10         uint64
   271  	r11         uint64
   272  	r12         uint64
   273  	r13         uint64
   274  	r14         uint64
   275  	r15         uint64
   276  	rdi         uint64
   277  	rsi         uint64
   278  	rbp         uint64
   279  	rbx         uint64
   280  	rdx         uint64
   281  	rax         uint64
   282  	rcx         uint64
   283  	rsp         uint64
   284  	rip         uint64
   285  	eflags      uint64
   286  	cs          uint16
   287  	gs          uint16
   288  	fs          uint16
   289  	__pad0      uint16
   290  	err         uint64
   291  	trapno      uint64
   292  	oldmask     uint64
   293  	cr2         uint64
   294  	fpstate     *fpstate1
   295  	__reserved1 [8]uint64
   296  }
   297  
   298  type sockaddr_un struct {
   299  	family uint16
   300  	path   [108]byte
   301  }
   302  

View as plain text