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

     1  // Generated using cgo, then manually converted into appropriate naming and code
     2  // for the Go runtime.
     3  // go tool cgo -godefs defs_linux.go defs1_linux.go defs2_linux.go
     4  
     5  package runtime
     6  
     7  import "unsafe"
     8  
     9  const (
    10  	_EINTR  = 0x4
    11  	_EAGAIN = 0xb
    12  	_ENOMEM = 0xc
    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 = 0x0
    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  
    94  type timespec struct {
    95  	tv_sec  int64
    96  	tv_nsec int64
    97  }
    98  
    99  //go:nosplit
   100  func (ts *timespec) setNsec(ns int64) {
   101  	ts.tv_sec = ns / 1e9
   102  	ts.tv_nsec = ns % 1e9
   103  }
   104  
   105  type timeval struct {
   106  	tv_sec  int64
   107  	tv_usec int64
   108  }
   109  
   110  func (tv *timeval) set_usec(x int32) {
   111  	tv.tv_usec = int64(x)
   112  }
   113  
   114  type sigactiont struct {
   115  	sa_handler uintptr
   116  	sa_flags   uint64
   117  	sa_mask    uint64
   118  	// Linux on riscv64 does not have the sa_restorer field, but the setsig
   119  	// function references it (for x86). Not much harm to include it at the end.
   120  	sa_restorer uintptr
   121  }
   122  
   123  type siginfoFields struct {
   124  	si_signo int32
   125  	si_errno int32
   126  	si_code  int32
   127  	// below here is a union; si_addr is the only field we use
   128  	si_addr uint64
   129  }
   130  
   131  type siginfo struct {
   132  	siginfoFields
   133  
   134  	// Pad struct to the max size in the kernel.
   135  	_ [_si_max_size - unsafe.Sizeof(siginfoFields{})]byte
   136  }
   137  
   138  type itimerspec struct {
   139  	it_interval timespec
   140  	it_value    timespec
   141  }
   142  
   143  type itimerval struct {
   144  	it_interval timeval
   145  	it_value    timeval
   146  }
   147  
   148  type sigeventFields struct {
   149  	value  uintptr
   150  	signo  int32
   151  	notify int32
   152  	// below here is a union; sigev_notify_thread_id is the only field we use
   153  	sigev_notify_thread_id int32
   154  }
   155  
   156  type sigevent struct {
   157  	sigeventFields
   158  
   159  	// Pad struct to the max size in the kernel.
   160  	_ [_sigev_max_size - unsafe.Sizeof(sigeventFields{})]byte
   161  }
   162  
   163  const (
   164  	_O_RDONLY   = 0x0
   165  	_O_WRONLY   = 0x1
   166  	_O_CREAT    = 0x40
   167  	_O_TRUNC    = 0x200
   168  	_O_NONBLOCK = 0x800
   169  	_O_CLOEXEC  = 0x80000
   170  )
   171  
   172  type user_regs_struct struct {
   173  	pc  uint64
   174  	ra  uint64
   175  	sp  uint64
   176  	gp  uint64
   177  	tp  uint64
   178  	t0  uint64
   179  	t1  uint64
   180  	t2  uint64
   181  	s0  uint64
   182  	s1  uint64
   183  	a0  uint64
   184  	a1  uint64
   185  	a2  uint64
   186  	a3  uint64
   187  	a4  uint64
   188  	a5  uint64
   189  	a6  uint64
   190  	a7  uint64
   191  	s2  uint64
   192  	s3  uint64
   193  	s4  uint64
   194  	s5  uint64
   195  	s6  uint64
   196  	s7  uint64
   197  	s8  uint64
   198  	s9  uint64
   199  	s10 uint64
   200  	s11 uint64
   201  	t3  uint64
   202  	t4  uint64
   203  	t5  uint64
   204  	t6  uint64
   205  }
   206  
   207  type user_fpregs_struct struct {
   208  	f [528]byte
   209  }
   210  
   211  type usigset struct {
   212  	us_x__val [16]uint64
   213  }
   214  
   215  type sigcontext struct {
   216  	sc_regs   user_regs_struct
   217  	sc_fpregs user_fpregs_struct
   218  }
   219  
   220  type stackt struct {
   221  	ss_sp    *byte
   222  	ss_flags int32
   223  	ss_size  uintptr
   224  }
   225  
   226  type ucontext struct {
   227  	uc_flags     uint64
   228  	uc_link      *ucontext
   229  	uc_stack     stackt
   230  	uc_sigmask   usigset
   231  	uc_x__unused [0]uint8
   232  	uc_pad_cgo_0 [8]byte
   233  	uc_mcontext  sigcontext
   234  }