libcgo.go raw

   1  // SPDX-License-Identifier: Apache-2.0
   2  // SPDX-FileCopyrightText: 2022 The Ebitengine Authors
   3  
   4  //go:build !cgo && (darwin || freebsd || linux || netbsd)
   5  
   6  package fakecgo
   7  
   8  type (
   9  	size_t uintptr
  10  	// Sources:
  11  	// Darwin (32 bytes) - https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa6063a1f8f65aa32/bsd/sys/_types.h#L74
  12  	// FreeBSD (32 bytes) - https://github.com/DoctorWkt/xv6-freebsd/blob/d2a294c2a984baed27676068b15ed9a29b06ab6f/include/signal.h#L98C9-L98C21
  13  	// Linux (128 bytes) - https://github.com/torvalds/linux/blob/ab75170520d4964f3acf8bb1f91d34cbc650688e/arch/x86/include/asm/signal.h#L25
  14  	sigset_t       [128]byte
  15  	pthread_attr_t [64]byte
  16  	pthread_t      int
  17  	pthread_key_t  uint64
  18  )
  19  
  20  // for pthread_sigmask:
  21  
  22  type sighow int32
  23  
  24  const (
  25  	SIG_BLOCK   sighow = 0
  26  	SIG_UNBLOCK sighow = 1
  27  	SIG_SETMASK sighow = 2
  28  )
  29  
  30  type G struct {
  31  	stacklo uintptr
  32  	stackhi uintptr
  33  }
  34  
  35  type ThreadStart struct {
  36  	g   *G
  37  	tls *uintptr
  38  	fn  uintptr
  39  }
  40