github.com/megatontech/mynoteforgo@v0.0.0-20200507084910-5d0c6ea6e890/源码/runtime/defs_linux_arm.go (about)

     1  package runtime
     2  
     3  // Constants
     4  const (
     5  	_EINTR  = 0x4
     6  	_ENOMEM = 0xc
     7  	_EAGAIN = 0xb
     8  
     9  	_PROT_NONE  = 0
    10  	_PROT_READ  = 0x1
    11  	_PROT_WRITE = 0x2
    12  	_PROT_EXEC  = 0x4
    13  
    14  	_MAP_ANON    = 0x20
    15  	_MAP_PRIVATE = 0x2
    16  	_MAP_FIXED   = 0x10
    17  
    18  	_MADV_DONTNEED   = 0x4
    19  	_MADV_FREE       = 0x8
    20  	_MADV_HUGEPAGE   = 0xe
    21  	_MADV_NOHUGEPAGE = 0xf
    22  
    23  	_SA_RESTART     = 0x10000000
    24  	_SA_ONSTACK     = 0x8000000
    25  	_SA_RESTORER    = 0 // unused on ARM
    26  	_SA_SIGINFO     = 0x4
    27  	_SIGHUP         = 0x1
    28  	_SIGINT         = 0x2
    29  	_SIGQUIT        = 0x3
    30  	_SIGILL         = 0x4
    31  	_SIGTRAP        = 0x5
    32  	_SIGABRT        = 0x6
    33  	_SIGBUS         = 0x7
    34  	_SIGFPE         = 0x8
    35  	_SIGKILL        = 0x9
    36  	_SIGUSR1        = 0xa
    37  	_SIGSEGV        = 0xb
    38  	_SIGUSR2        = 0xc
    39  	_SIGPIPE        = 0xd
    40  	_SIGALRM        = 0xe
    41  	_SIGSTKFLT      = 0x10
    42  	_SIGCHLD        = 0x11
    43  	_SIGCONT        = 0x12
    44  	_SIGSTOP        = 0x13
    45  	_SIGTSTP        = 0x14
    46  	_SIGTTIN        = 0x15
    47  	_SIGTTOU        = 0x16
    48  	_SIGURG         = 0x17
    49  	_SIGXCPU        = 0x18
    50  	_SIGXFSZ        = 0x19
    51  	_SIGVTALRM      = 0x1a
    52  	_SIGPROF        = 0x1b
    53  	_SIGWINCH       = 0x1c
    54  	_SIGIO          = 0x1d
    55  	_SIGPWR         = 0x1e
    56  	_SIGSYS         = 0x1f
    57  	_FPE_INTDIV     = 0x1
    58  	_FPE_INTOVF     = 0x2
    59  	_FPE_FLTDIV     = 0x3
    60  	_FPE_FLTOVF     = 0x4
    61  	_FPE_FLTUND     = 0x5
    62  	_FPE_FLTRES     = 0x6
    63  	_FPE_FLTINV     = 0x7
    64  	_FPE_FLTSUB     = 0x8
    65  	_BUS_ADRALN     = 0x1
    66  	_BUS_ADRERR     = 0x2
    67  	_BUS_OBJERR     = 0x3
    68  	_SEGV_MAPERR    = 0x1
    69  	_SEGV_ACCERR    = 0x2
    70  	_ITIMER_REAL    = 0
    71  	_ITIMER_PROF    = 0x2
    72  	_ITIMER_VIRTUAL = 0x1
    73  	_O_RDONLY       = 0
    74  	_O_CLOEXEC      = 0x80000
    75  
    76  	_EPOLLIN       = 0x1
    77  	_EPOLLOUT      = 0x4
    78  	_EPOLLERR      = 0x8
    79  	_EPOLLHUP      = 0x10
    80  	_EPOLLRDHUP    = 0x2000
    81  	_EPOLLET       = 0x80000000
    82  	_EPOLL_CLOEXEC = 0x80000
    83  	_EPOLL_CTL_ADD = 0x1
    84  	_EPOLL_CTL_DEL = 0x2
    85  	_EPOLL_CTL_MOD = 0x3
    86  
    87  	_AF_UNIX    = 0x1
    88  	_F_SETFL    = 0x4
    89  	_SOCK_DGRAM = 0x2
    90  )
    91  
    92  type timespec struct {
    93  	tv_sec  int32
    94  	tv_nsec int32
    95  }
    96  
    97  func (ts *timespec) set_sec(x int64) {
    98  	ts.tv_sec = int32(x)
    99  }
   100  
   101  func (ts *timespec) set_nsec(x int32) {
   102  	ts.tv_nsec = x
   103  }
   104  
   105  type stackt struct {
   106  	ss_sp    *byte
   107  	ss_flags int32
   108  	ss_size  uintptr
   109  }
   110  
   111  type sigcontext struct {
   112  	trap_no       uint32
   113  	error_code    uint32
   114  	oldmask       uint32
   115  	r0            uint32
   116  	r1            uint32
   117  	r2            uint32
   118  	r3            uint32
   119  	r4            uint32
   120  	r5            uint32
   121  	r6            uint32
   122  	r7            uint32
   123  	r8            uint32
   124  	r9            uint32
   125  	r10           uint32
   126  	fp            uint32
   127  	ip            uint32
   128  	sp            uint32
   129  	lr            uint32
   130  	pc            uint32
   131  	cpsr          uint32
   132  	fault_address uint32
   133  }
   134  
   135  type ucontext struct {
   136  	uc_flags    uint32
   137  	uc_link     *ucontext
   138  	uc_stack    stackt
   139  	uc_mcontext sigcontext
   140  	uc_sigmask  uint32
   141  	__unused    [31]int32
   142  	uc_regspace [128]uint32
   143  }
   144  
   145  type timeval struct {
   146  	tv_sec  int32
   147  	tv_usec int32
   148  }
   149  
   150  func (tv *timeval) set_usec(x int32) {
   151  	tv.tv_usec = x
   152  }
   153  
   154  type itimerval struct {
   155  	it_interval timeval
   156  	it_value    timeval
   157  }
   158  
   159  type siginfo struct {
   160  	si_signo int32
   161  	si_errno int32
   162  	si_code  int32
   163  	// below here is a union; si_addr is the only field we use
   164  	si_addr uint32
   165  }
   166  
   167  type sigactiont struct {
   168  	sa_handler  uintptr
   169  	sa_flags    uint32
   170  	sa_restorer uintptr
   171  	sa_mask     uint64
   172  }
   173  
   174  type epollevent struct {
   175  	events uint32
   176  	_pad   uint32
   177  	data   [8]byte // to match amd64
   178  }
   179  
   180  type sockaddr_un struct {
   181  	family uint16
   182  	path   [108]byte
   183  }