Update vendor (whatsapp)
parent
d64eed49bc
commit
2623a412c4
@ -0,0 +1,509 @@
|
||||
// Code generated by 'go generate' - DO NOT EDIT.
|
||||
|
||||
package libc // import "modernc.org/libc"
|
||||
|
||||
var CAPI = map[string]struct{}{
|
||||
"_IO_putc": {},
|
||||
"___errno_location": {},
|
||||
"__assert_fail": {},
|
||||
"__builtin___memcpy_chk": {},
|
||||
"__builtin___memmove_chk": {},
|
||||
"__builtin___memset_chk": {},
|
||||
"__builtin___snprintf_chk": {},
|
||||
"__builtin___sprintf_chk": {},
|
||||
"__builtin___strcat_chk": {},
|
||||
"__builtin___strcpy_chk": {},
|
||||
"__builtin___strncpy_chk": {},
|
||||
"__builtin___vsnprintf_chk": {},
|
||||
"__builtin_abort": {},
|
||||
"__builtin_abs": {},
|
||||
"__builtin_add_overflowInt64": {},
|
||||
"__builtin_add_overflowUint32": {},
|
||||
"__builtin_add_overflowUint64": {},
|
||||
"__builtin_bswap16": {},
|
||||
"__builtin_bswap32": {},
|
||||
"__builtin_bswap64": {},
|
||||
"__builtin_bzero": {},
|
||||
"__builtin_clz": {},
|
||||
"__builtin_clzl": {},
|
||||
"__builtin_clzll": {},
|
||||
"__builtin_constant_p_impl": {},
|
||||
"__builtin_copysign": {},
|
||||
"__builtin_copysignf": {},
|
||||
"__builtin_copysignl": {},
|
||||
"__builtin_exit": {},
|
||||
"__builtin_expect": {},
|
||||
"__builtin_fabs": {},
|
||||
"__builtin_fabsf": {},
|
||||
"__builtin_fabsl": {},
|
||||
"__builtin_free": {},
|
||||
"__builtin_getentropy": {},
|
||||
"__builtin_huge_val": {},
|
||||
"__builtin_huge_valf": {},
|
||||
"__builtin_inf": {},
|
||||
"__builtin_inff": {},
|
||||
"__builtin_infl": {},
|
||||
"__builtin_isnan": {},
|
||||
"__builtin_isunordered": {},
|
||||
"__builtin_malloc": {},
|
||||
"__builtin_memcmp": {},
|
||||
"__builtin_memcpy": {},
|
||||
"__builtin_memset": {},
|
||||
"__builtin_mmap": {},
|
||||
"__builtin_mul_overflowInt64": {},
|
||||
"__builtin_mul_overflowUint128": {},
|
||||
"__builtin_mul_overflowUint64": {},
|
||||
"__builtin_nan": {},
|
||||
"__builtin_nanf": {},
|
||||
"__builtin_nanl": {},
|
||||
"__builtin_object_size": {},
|
||||
"__builtin_popcount": {},
|
||||
"__builtin_popcountl": {},
|
||||
"__builtin_prefetch": {},
|
||||
"__builtin_printf": {},
|
||||
"__builtin_snprintf": {},
|
||||
"__builtin_sprintf": {},
|
||||
"__builtin_strchr": {},
|
||||
"__builtin_strcmp": {},
|
||||
"__builtin_strcpy": {},
|
||||
"__builtin_strlen": {},
|
||||
"__builtin_sub_overflowInt64": {},
|
||||
"__builtin_trap": {},
|
||||
"__builtin_unreachable": {},
|
||||
"__ccgo_dmesg": {},
|
||||
"__ccgo_getMutexType": {},
|
||||
"__ccgo_in6addr_anyp": {},
|
||||
"__ccgo_pthreadAttrGetDetachState": {},
|
||||
"__ccgo_pthreadMutexattrGettype": {},
|
||||
"__ccgo_sqlite3_log": {},
|
||||
"__cmsg_nxthdr": {},
|
||||
"__ctype_b_loc": {},
|
||||
"__ctype_get_mb_cur_max": {},
|
||||
"__errno_location": {},
|
||||
"__floatscan": {},
|
||||
"__fpclassify": {},
|
||||
"__fpclassifyf": {},
|
||||
"__fpclassifyl": {},
|
||||
"__fsmu8": {},
|
||||
"__h_errno_location": {},
|
||||
"__inet_aton": {},
|
||||
"__intscan": {},
|
||||
"__isalnum_l": {},
|
||||
"__isalpha_l": {},
|
||||
"__isdigit_l": {},
|
||||
"__islower_l": {},
|
||||
"__isnan": {},
|
||||
"__isnanf": {},
|
||||
"__isnanl": {},
|
||||
"__isoc99_sscanf": {},
|
||||
"__isprint_l": {},
|
||||
"__isupper_l": {},
|
||||
"__isxdigit_l": {},
|
||||
"__lockfile": {},
|
||||
"__lookup_ipliteral": {},
|
||||
"__lookup_name": {},
|
||||
"__lookup_serv": {},
|
||||
"__shgetc": {},
|
||||
"__shlim": {},
|
||||
"__strncasecmp_l": {},
|
||||
"__sync_add_and_fetch_uint32": {},
|
||||
"__sync_sub_and_fetch_uint32": {},
|
||||
"__syscall1": {},
|
||||
"__syscall3": {},
|
||||
"__syscall4": {},
|
||||
"__toread": {},
|
||||
"__toread_needs_stdio_exit": {},
|
||||
"__uflow": {},
|
||||
"__unlockfile": {},
|
||||
"_exit": {},
|
||||
"_longjmp": {},
|
||||
"_obstack_begin": {},
|
||||
"_obstack_newchunk": {},
|
||||
"_setjmp": {},
|
||||
"abort": {},
|
||||
"abs": {},
|
||||
"accept": {},
|
||||
"access": {},
|
||||
"acos": {},
|
||||
"acosh": {},
|
||||
"alarm": {},
|
||||
"asin": {},
|
||||
"asinh": {},
|
||||
"atan": {},
|
||||
"atan2": {},
|
||||
"atanh": {},
|
||||
"atexit": {},
|
||||
"atof": {},
|
||||
"atoi": {},
|
||||
"atol": {},
|
||||
"backtrace": {},
|
||||
"backtrace_symbols_fd": {},
|
||||
"bind": {},
|
||||
"bsearch": {},
|
||||
"bzero": {},
|
||||
"calloc": {},
|
||||
"ceil": {},
|
||||
"ceilf": {},
|
||||
"cfgetospeed": {},
|
||||
"cfsetispeed": {},
|
||||
"cfsetospeed": {},
|
||||
"chdir": {},
|
||||
"chmod": {},
|
||||
"chown": {},
|
||||
"clock_gettime": {},
|
||||
"close": {},
|
||||
"closedir": {},
|
||||
"confstr": {},
|
||||
"connect": {},
|
||||
"copysign": {},
|
||||
"copysignf": {},
|
||||
"copysignl": {},
|
||||
"cos": {},
|
||||
"cosf": {},
|
||||
"cosh": {},
|
||||
"ctime": {},
|
||||
"ctime_r": {},
|
||||
"dlclose": {},
|
||||
"dlerror": {},
|
||||
"dlopen": {},
|
||||
"dlsym": {},
|
||||
"dup2": {},
|
||||
"endpwent": {},
|
||||
"environ": {},
|
||||
"execvp": {},
|
||||
"exit": {},
|
||||
"exp": {},
|
||||
"fabs": {},
|
||||
"fabsf": {},
|
||||
"fabsl": {},
|
||||
"fchmod": {},
|
||||
"fchown": {},
|
||||
"fclose": {},
|
||||
"fcntl": {},
|
||||
"fcntl64": {},
|
||||
"fdopen": {},
|
||||
"ferror": {},
|
||||
"fflush": {},
|
||||
"fgetc": {},
|
||||
"fgets": {},
|
||||
"fileno": {},
|
||||
"floor": {},
|
||||
"fmod": {},
|
||||
"fmodl": {},
|
||||
"fopen": {},
|
||||
"fopen64": {},
|
||||
"fork": {},
|
||||
"fprintf": {},
|
||||
"fputc": {},
|
||||
"fputs": {},
|
||||
"fread": {},
|
||||
"free": {},
|
||||
"freeaddrinfo": {},
|
||||
"frexp": {},
|
||||
"fscanf": {},
|
||||
"fseek": {},
|
||||
"fstat": {},
|
||||
"fstat64": {},
|
||||
"fstatfs": {},
|
||||
"fsync": {},
|
||||
"ftell": {},
|
||||
"ftruncate": {},
|
||||
"ftruncate64": {},
|
||||
"fts64_close": {},
|
||||
"fts64_open": {},
|
||||
"fts64_read": {},
|
||||
"fts_close": {},
|
||||
"fts_open": {},
|
||||
"fts_read": {},
|
||||
"fwrite": {},
|
||||
"gai_strerror": {},
|
||||
"getaddrinfo": {},
|
||||
"getc": {},
|
||||
"getcwd": {},
|
||||
"getegid": {},
|
||||
"getentropy": {},
|
||||
"getenv": {},
|
||||
"geteuid": {},
|
||||
"getgid": {},
|
||||
"getgrgid": {},
|
||||
"getgrgid_r": {},
|
||||
"getgrnam": {},
|
||||
"getgrnam_r": {},
|
||||
"gethostbyaddr": {},
|
||||
"gethostbyaddr_r": {},
|
||||
"gethostbyname": {},
|
||||
"gethostbyname2": {},
|
||||
"gethostbyname2_r": {},
|
||||
"gethostbyname_r": {},
|
||||
"gethostname": {},
|
||||
"getnameinfo": {},
|
||||
"getpeername": {},
|
||||
"getpid": {},
|
||||
"getpwnam": {},
|
||||
"getpwnam_r": {},
|
||||
"getpwuid": {},
|
||||
"getpwuid_r": {},
|
||||
"getrandom": {},
|
||||
"getresgid": {},
|
||||
"getresuid": {},
|
||||
"getrlimit": {},
|
||||
"getrlimit64": {},
|
||||
"getrusage": {},
|
||||
"getservbyname": {},
|
||||
"getsockname": {},
|
||||
"getsockopt": {},
|
||||
"gettimeofday": {},
|
||||
"getuid": {},
|
||||
"gmtime_r": {},
|
||||
"h_errno": {},
|
||||
"htonl": {},
|
||||
"htons": {},
|
||||
"hypot": {},
|
||||
"inet_ntoa": {},
|
||||
"inet_ntop": {},
|
||||
"inet_pton": {},
|
||||
"initstate": {},
|
||||
"initstate_r": {},
|
||||
"ioctl": {},
|
||||
"isalnum": {},
|
||||
"isalpha": {},
|
||||
"isascii": {},
|
||||
"isatty": {},
|
||||
"isdigit": {},
|
||||
"islower": {},
|
||||
"isnan": {},
|
||||
"isnanf": {},
|
||||
"isnanl": {},
|
||||
"isprint": {},
|
||||
"isupper": {},
|
||||
"iswalnum": {},
|
||||
"iswspace": {},
|
||||
"isxdigit": {},
|
||||
"kill": {},
|
||||
"ldexp": {},
|
||||
"link": {},
|
||||
"listen": {},
|
||||
"localeconv": {},
|
||||
"localtime": {},
|
||||
"localtime_r": {},
|
||||
"log": {},
|
||||
"log10": {},
|
||||
"longjmp": {},
|
||||
"lrand48": {},
|
||||
"lseek": {},
|
||||
"lseek64": {},
|
||||
"lstat": {},
|
||||
"lstat64": {},
|
||||
"malloc": {},
|
||||
"mblen": {},
|
||||
"mbrtowc": {},
|
||||
"mbsinit": {},
|
||||
"mbstowcs": {},
|
||||
"mbtowc": {},
|
||||
"memchr": {},
|
||||
"memcmp": {},
|
||||
"memcpy": {},
|
||||
"memmove": {},
|
||||
"memset": {},
|
||||
"mkdir": {},
|
||||
"mkfifo": {},
|
||||
"mknod": {},
|
||||
"mkostemp": {},
|
||||
"mkstemp": {},
|
||||
"mkstemp64": {},
|
||||
"mkstemps": {},
|
||||
"mkstemps64": {},
|
||||
"mktime": {},
|
||||
"mmap": {},
|
||||
"mmap64": {},
|
||||
"modf": {},
|
||||
"mremap": {},
|
||||
"munmap": {},
|
||||
"nanf": {},
|
||||
"nl_langinfo": {},
|
||||
"ntohs": {},
|
||||
"obstack_free": {},
|
||||
"obstack_vprintf": {},
|
||||
"open": {},
|
||||
"open64": {},
|
||||
"opendir": {},
|
||||
"openpty": {},
|
||||
"pathconf": {},
|
||||
"pause": {},
|
||||
"pclose": {},
|
||||
"perror": {},
|
||||
"pipe": {},
|
||||
"poll": {},
|
||||
"popen": {},
|
||||
"posix_fadvise": {},
|
||||
"pow": {},
|
||||
"printf": {},
|
||||
"pselect": {},
|
||||
"pthread_attr_destroy": {},
|
||||
"pthread_attr_getdetachstate": {},
|
||||
"pthread_attr_init": {},
|
||||
"pthread_attr_setdetachstate": {},
|
||||
"pthread_attr_setscope": {},
|
||||
"pthread_attr_setstacksize": {},
|
||||
"pthread_cond_broadcast": {},
|
||||
"pthread_cond_destroy": {},
|
||||
"pthread_cond_init": {},
|
||||
"pthread_cond_signal": {},
|
||||
"pthread_cond_timedwait": {},
|
||||
"pthread_cond_wait": {},
|
||||
"pthread_create": {},
|
||||
"pthread_detach": {},
|
||||
"pthread_equal": {},
|
||||
"pthread_exit": {},
|
||||
"pthread_getspecific": {},
|
||||
"pthread_join": {},
|
||||
"pthread_key_create": {},
|
||||
"pthread_key_delete": {},
|
||||
"pthread_mutex_destroy": {},
|
||||
"pthread_mutex_init": {},
|
||||
"pthread_mutex_lock": {},
|
||||
"pthread_mutex_trylock": {},
|
||||
"pthread_mutex_unlock": {},
|
||||
"pthread_mutexattr_destroy": {},
|
||||
"pthread_mutexattr_init": {},
|
||||
"pthread_mutexattr_settype": {},
|
||||
"pthread_self": {},
|
||||
"pthread_setspecific": {},
|
||||
"putc": {},
|
||||
"putchar": {},
|
||||
"puts": {},
|
||||
"pwrite": {},
|
||||
"qsort": {},
|
||||
"raise": {},
|
||||
"rand": {},
|
||||
"rand_r": {},
|
||||
"random": {},
|
||||
"random_r": {},
|
||||
"read": {},
|
||||
"readdir": {},
|
||||
"readdir64": {},
|
||||
"readlink": {},
|
||||
"readv": {},
|
||||
"realloc": {},
|
||||
"reallocarray": {},
|
||||
"realpath": {},
|
||||
"recv": {},
|
||||
"recvfrom": {},
|
||||
"recvmsg": {},
|
||||
"remove": {},
|
||||
"rename": {},
|
||||
"rewind": {},
|
||||
"rindex": {},
|
||||
"rint": {},
|
||||
"rmdir": {},
|
||||
"round": {},
|
||||
"scalbn": {},
|
||||
"scalbnl": {},
|
||||
"sched_yield": {},
|
||||
"select": {},
|
||||
"send": {},
|
||||
"sendmsg": {},
|
||||
"sendto": {},
|
||||
"setbuf": {},
|
||||
"setenv": {},
|
||||
"setjmp": {},
|
||||
"setlocale": {},
|
||||
"setrlimit": {},
|
||||
"setrlimit64": {},
|
||||
"setsid": {},
|
||||
"setsockopt": {},
|
||||
"setstate": {},
|
||||
"setvbuf": {},
|
||||
"shmat": {},
|
||||
"shmctl": {},
|
||||
"shmdt": {},
|
||||
"shutdown": {},
|
||||
"sigaction": {},
|
||||
"signal": {},
|
||||
"sin": {},
|
||||
"sinf": {},
|
||||
"sinh": {},
|
||||
"sleep": {},
|
||||
"snprintf": {},
|
||||
"socket": {},
|
||||
"sprintf": {},
|
||||
"sqrt": {},
|
||||
"srand48": {},
|
||||
"sscanf": {},
|
||||
"stat": {},
|
||||
"stat64": {},
|
||||
"stderr": {},
|
||||
"stdin": {},
|
||||
"stdout": {},
|
||||
"strcasecmp": {},
|
||||
"strcat": {},
|
||||
"strchr": {},
|
||||
"strcmp": {},
|
||||
"strcpy": {},
|
||||
"strcspn": {},
|
||||
"strdup": {},
|
||||
"strerror": {},
|
||||
"strerror_r": {},
|
||||
"strlcat": {},
|
||||
"strlcpy": {},
|
||||
"strlen": {},
|
||||
"strncasecmp": {},
|
||||
"strncat": {},
|
||||
"strncmp": {},
|
||||
"strncpy": {},
|
||||
"strnlen": {},
|
||||
"strpbrk": {},
|
||||
"strrchr": {},
|
||||
"strspn": {},
|
||||
"strstr": {},
|
||||
"strtod": {},
|
||||
"strtof": {},
|
||||
"strtoimax": {},
|
||||
"strtok": {},
|
||||
"strtol": {},
|
||||
"strtold": {},
|
||||
"strtoll": {},
|
||||
"strtoul": {},
|
||||
"strtoull": {},
|
||||
"strtoumax": {},
|
||||
"symlink": {},
|
||||
"sysconf": {},
|
||||
"system": {},
|
||||
"tan": {},
|
||||
"tanh": {},
|
||||
"tcgetattr": {},
|
||||
"tcsendbreak": {},
|
||||
"tcsetattr": {},
|
||||
"time": {},
|
||||
"tmpfile": {},
|
||||
"tolower": {},
|
||||
"toupper": {},
|
||||
"trunc": {},
|
||||
"tzset": {},
|
||||
"umask": {},
|
||||
"uname": {},
|
||||
"ungetc": {},
|
||||
"unlink": {},
|
||||
"unsetenv": {},
|
||||
"usleep": {},
|
||||
"utime": {},
|
||||
"utimes": {},
|
||||
"uuid_copy": {},
|
||||
"uuid_generate_random": {},
|
||||
"uuid_parse": {},
|
||||
"uuid_unparse": {},
|
||||
"vasprintf": {},
|
||||
"vfprintf": {},
|
||||
"vfscanf": {},
|
||||
"vprintf": {},
|
||||
"vsnprintf": {},
|
||||
"vsprintf": {},
|
||||
"vsscanf": {},
|
||||
"waitpid": {},
|
||||
"wcschr": {},
|
||||
"wctomb": {},
|
||||
"wcwidth": {},
|
||||
"write": {},
|
||||
"writev": {},
|
||||
"zero_struct_address": {},
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo errno/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_linux_riscv64.go -pkgname errno', DO NOT EDIT.
|
||||
|
||||
package errno
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,187 @@
|
||||
// Code generated by 'ccgo errno/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o errno/errno_linux_riscv64.go -pkgname errno', DO NOT EDIT.
|
||||
|
||||
package errno
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
E2BIG = 7
|
||||
EACCES = 13
|
||||
EADDRINUSE = 98
|
||||
EADDRNOTAVAIL = 99
|
||||
EADV = 68
|
||||
EAFNOSUPPORT = 97
|
||||
EAGAIN = 11
|
||||
EALREADY = 114
|
||||
EBADE = 52
|
||||
EBADF = 9
|
||||
EBADFD = 77
|
||||
EBADMSG = 74
|
||||
EBADR = 53
|
||||
EBADRQC = 56
|
||||
EBADSLT = 57
|
||||
EBFONT = 59
|
||||
EBUSY = 16
|
||||
ECANCELED = 125
|
||||
ECHILD = 10
|
||||
ECHRNG = 44
|
||||
ECOMM = 70
|
||||
ECONNABORTED = 103
|
||||
ECONNREFUSED = 111
|
||||
ECONNRESET = 104
|
||||
EDEADLK = 35
|
||||
EDEADLOCK = 35
|
||||
EDESTADDRREQ = 89
|
||||
EDOM = 33
|
||||
EDOTDOT = 73
|
||||
EDQUOT = 122
|
||||
EEXIST = 17
|
||||
EFAULT = 14
|
||||
EFBIG = 27
|
||||
EHOSTDOWN = 112
|
||||
EHOSTUNREACH = 113
|
||||
EHWPOISON = 133
|
||||
EIDRM = 43
|
||||
EILSEQ = 84
|
||||
EINPROGRESS = 115
|
||||
EINTR = 4
|
||||
EINVAL = 22
|
||||
EIO = 5
|
||||
EISCONN = 106
|
||||
EISDIR = 21
|
||||
EISNAM = 120
|
||||
EKEYEXPIRED = 127
|
||||
EKEYREJECTED = 129
|
||||
EKEYREVOKED = 128
|
||||
EL2HLT = 51
|
||||
EL2NSYNC = 45
|
||||
EL3HLT = 46
|
||||
EL3RST = 47
|
||||
ELIBACC = 79
|
||||
ELIBBAD = 80
|
||||
ELIBEXEC = 83
|
||||
ELIBMAX = 82
|
||||
ELIBSCN = 81
|
||||
ELNRNG = 48
|
||||
ELOOP = 40
|
||||
EMEDIUMTYPE = 124
|
||||
EMFILE = 24
|
||||
EMLINK = 31
|
||||
EMSGSIZE = 90
|
||||
EMULTIHOP = 72
|
||||
ENAMETOOLONG = 36
|
||||
ENAVAIL = 119
|
||||
ENETDOWN = 100
|
||||
ENETRESET = 102
|
||||
ENETUNREACH = 101
|
||||
ENFILE = 23
|
||||
ENOANO = 55
|
||||
ENOBUFS = 105
|
||||
ENOCSI = 50
|
||||
ENODATA = 61
|
||||
ENODEV = 19
|
||||
ENOENT = 2
|
||||
ENOEXEC = 8
|
||||
ENOKEY = 126
|
||||
ENOLCK = 37
|
||||
ENOLINK = 67
|
||||
ENOMEDIUM = 123
|
||||
ENOMEM = 12
|
||||
ENOMSG = 42
|
||||
ENONET = 64
|
||||
ENOPKG = 65
|
||||
ENOPROTOOPT = 92
|
||||
ENOSPC = 28
|
||||
ENOSR = 63
|
||||
ENOSTR = 60
|
||||
ENOSYS = 38
|
||||
ENOTBLK = 15
|
||||
ENOTCONN = 107
|
||||
ENOTDIR = 20
|
||||
ENOTEMPTY = 39
|
||||
ENOTNAM = 118
|
||||
ENOTRECOVERABLE = 131
|
||||
ENOTSOCK = 88
|
||||
ENOTSUP = 95
|
||||
ENOTTY = 25
|
||||
ENOTUNIQ = 76
|
||||
ENXIO = 6
|
||||
EOPNOTSUPP = 95
|
||||
EOVERFLOW = 75
|
||||
EOWNERDEAD = 130
|
||||
EPERM = 1
|
||||
EPFNOSUPPORT = 96
|
||||
EPIPE = 32
|
||||
EPROTO = 71
|
||||
EPROTONOSUPPORT = 93
|
||||
EPROTOTYPE = 91
|
||||
ERANGE = 34
|
||||
EREMCHG = 78
|
||||
EREMOTE = 66
|
||||
EREMOTEIO = 121
|
||||
ERESTART = 85
|
||||
ERFKILL = 132
|
||||
EROFS = 30
|
||||
ESHUTDOWN = 108
|
||||
ESOCKTNOSUPPORT = 94
|
||||
ESPIPE = 29
|
||||
ESRCH = 3
|
||||
ESRMNT = 69
|
||||
ESTALE = 116
|
||||
ESTRPIPE = 86
|
||||
ETIME = 62
|
||||
ETIMEDOUT = 110
|
||||
ETOOMANYREFS = 109
|
||||
ETXTBSY = 26
|
||||
EUCLEAN = 117
|
||||
EUNATCH = 49
|
||||
EUSERS = 87
|
||||
EWOULDBLOCK = 11
|
||||
EXDEV = 18
|
||||
EXFULL = 54
|
||||
X_ASM_GENERIC_ERRNO_BASE_H = 0
|
||||
X_ASM_GENERIC_ERRNO_H = 0
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_BITS_ERRNO_H = 1
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_ERRNO_H = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo fcntl/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fcntl/fcntl_linux_riscv64.go -pkgname fcntl', DO NOT EDIT.
|
||||
|
||||
package fcntl
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo fts/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o fts/fts_linux_riscv64.go -pkgname fts', DO NOT EDIT.
|
||||
|
||||
package fts
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo grp/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o grp/grp_linux_riscv64.go -pkgname grp', DO NOT EDIT.
|
||||
|
||||
package grp
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,953 @@
|
||||
// Code generated by 'ccgo grp/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o grp/grp_linux_riscv64.go -pkgname grp', DO NOT EDIT.
|
||||
|
||||
package grp
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
NSS_BUFLEN_GROUP = 1024
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_BITS_TIME64_H = 1
|
||||
X_BITS_TYPESIZES_H = 1
|
||||
X_BITS_TYPES_H = 1
|
||||
X_BSD_SIZE_T_ = 0
|
||||
X_BSD_SIZE_T_DEFINED_ = 0
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_GCC_SIZE_T = 0
|
||||
X_GRP_H = 1
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_SIZET_ = 0
|
||||
X_SIZE_T = 0
|
||||
X_SIZE_T_ = 0
|
||||
X_SIZE_T_DECLARED = 0
|
||||
X_SIZE_T_DEFINED = 0
|
||||
X_SIZE_T_DEFINED_ = 0
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
X_SYS_SIZE_T_H = 0
|
||||
X_T_SIZE = 0
|
||||
X_T_SIZE_ = 0
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// POSIX Standard: 9.2.1 Group Database Access <grp.h>
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// These are defined by the user (or the compiler)
|
||||
// to specify the desired environment:
|
||||
//
|
||||
// __STRICT_ANSI__ ISO Standard C.
|
||||
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
|
||||
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
|
||||
// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
|
||||
// __STDC_WANT_LIB_EXT2__
|
||||
// Extensions to ISO C99 from TR 27431-2:2010.
|
||||
// __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-1:2014.
|
||||
// __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-4:2015.
|
||||
// __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-3:2015.
|
||||
// __STDC_WANT_IEC_60559_EXT__
|
||||
// ISO C2X interfaces defined only in Annex F.
|
||||
//
|
||||
// _POSIX_SOURCE IEEE Std 1003.1.
|
||||
// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
||||
// if >=199309L, add IEEE Std 1003.1b-1993;
|
||||
// if >=199506L, add IEEE Std 1003.1c-1995;
|
||||
// if >=200112L, all of IEEE 1003.1-2004
|
||||
// if >=200809L, all of IEEE 1003.1-2008
|
||||
// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
||||
// Single Unix conformance is wanted, to 600 for the
|
||||
// sixth revision, to 700 for the seventh revision.
|
||||
// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
||||
// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
|
||||
// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
||||
// _FILE_OFFSET_BITS=N Select default filesystem interface.
|
||||
// _ATFILE_SOURCE Additional *at interfaces.
|
||||
// _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// _GNU_SOURCE All of the above, plus GNU extensions.
|
||||
// _DEFAULT_SOURCE The default set of features (taking precedence over
|
||||
// __STRICT_ANSI__).
|
||||
//
|
||||
// _FORTIFY_SOURCE Add security hardening to many library functions.
|
||||
// Set to 1 or 2; 2 performs stricter checks than 1.
|
||||
//
|
||||
// _REENTRANT, _THREAD_SAFE
|
||||
// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
|
||||
//
|
||||
// The `-ansi' switch to the GNU C compiler, and standards conformance
|
||||
// options such as `-std=c99', define __STRICT_ANSI__. If none of
|
||||
// these are defined, or if _DEFAULT_SOURCE is defined, the default is
|
||||
// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
|
||||
// 200809L, as well as enabling miscellaneous functions from BSD and
|
||||
// SVID. If more than one of these are defined, they accumulate. For
|
||||
// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
|
||||
// give you ISO C, 1003.1, and 1003.2, but nothing else.
|
||||
//
|
||||
// These are defined by this file and are used by the
|
||||
// header files to decide what to declare or define:
|
||||
//
|
||||
// __GLIBC_USE (F) Define things from feature set F. This is defined
|
||||
// to 1 or 0; the subsequent macros are either defined
|
||||
// or undefined, and those tests should be moved to
|
||||
// __GLIBC_USE.
|
||||
// __USE_ISOC11 Define ISO C11 things.
|
||||
// __USE_ISOC99 Define ISO C99 things.
|
||||
// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
|
||||
// __USE_ISOCXX11 Define ISO C++11 things.
|
||||
// __USE_POSIX Define IEEE Std 1003.1 things.
|
||||
// __USE_POSIX2 Define IEEE Std 1003.2 things.
|
||||
// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
|
||||
// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
|
||||
// __USE_XOPEN Define XPG things.
|
||||
// __USE_XOPEN_EXTENDED Define X/Open Unix things.
|
||||
// __USE_UNIX98 Define Single Unix V2 things.
|
||||
// __USE_XOPEN2K Define XPG6 things.
|
||||
// __USE_XOPEN2KXSI Define XPG6 XSI things.
|
||||
// __USE_XOPEN2K8 Define XPG7 things.
|
||||
// __USE_XOPEN2K8XSI Define XPG7 XSI things.
|
||||
// __USE_LARGEFILE Define correct standard I/O things.
|
||||
// __USE_LARGEFILE64 Define LFS things with separate names.
|
||||
// __USE_FILE_OFFSET64 Define 64bit interface as default.
|
||||
// __USE_MISC Define things from 4.3BSD or System V Unix.
|
||||
// __USE_ATFILE Define *at interfaces and AT_* constants for them.
|
||||
// __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// __USE_GNU Define GNU extensions.
|
||||
// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
||||
//
|
||||
// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
||||
// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
|
||||
// only for compatibility. All new code should use the other symbols
|
||||
// to test for features.
|
||||
//
|
||||
// All macros listed above as possibly being defined by this file are
|
||||
// explicitly undefined if they are not explicitly defined.
|
||||
// Feature-test macros that are not defined by the user or compiler
|
||||
// but are implied by the other feature-test macros defined (or by the
|
||||
// lack of any definitions) are defined by the file.
|
||||
//
|
||||
// ISO C feature test macros depend on the definition of the macro
|
||||
// when an affected header is included, not when the first system
|
||||
// header is included, and so they are handled in
|
||||
// <bits/libc-header-start.h>, which does not have a multiple include
|
||||
// guard. Feature test macros that can be handled from the first
|
||||
// system header included are handled here.
|
||||
|
||||
// Undefine everything, so we get a clean slate.
|
||||
|
||||
// Suppress kernel-name space pollution unless user expressedly asks
|
||||
// for it.
|
||||
|
||||
// Convenience macro to test the version of gcc.
|
||||
// Use like this:
|
||||
// #if __GNUC_PREREQ (2,8)
|
||||
// ... code requiring gcc 2.8 or later ...
|
||||
// #endif
|
||||
// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
|
||||
// added in 2.0.
|
||||
|
||||
// Similarly for clang. Features added to GCC after version 4.2 may
|
||||
// or may not also be available in clang, and clang's definitions of
|
||||
// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
|
||||
// features can be queried via __has_extension/__has_feature.
|
||||
|
||||
// Whether to use feature set F.
|
||||
|
||||
// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
|
||||
// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
|
||||
// issue a warning; the expectation is that the source is being
|
||||
// transitioned to use the new macro.
|
||||
|
||||
// If _GNU_SOURCE was defined by the user, turn on all the other features.
|
||||
|
||||
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
||||
// define _DEFAULT_SOURCE.
|
||||
|
||||
// This is to enable the ISO C2X extension.
|
||||
|
||||
// This is to enable the ISO C11 extension.
|
||||
|
||||
// This is to enable the ISO C99 extension.
|
||||
|
||||
// This is to enable the ISO C90 Amendment 1:1995 extension.
|
||||
|
||||
// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
|
||||
// is defined, use POSIX.1-2008 (or another version depending on
|
||||
// _XOPEN_SOURCE).
|
||||
|
||||
// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
|
||||
// defined in all multithreaded code. GNU libc has not required this
|
||||
// for many years. We now treat them as compatibility synonyms for
|
||||
// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
|
||||
// comprehensive support for multithreaded code. Using them never
|
||||
// lowers the selected level of POSIX conformance, only raises it.
|
||||
|
||||
// Features part to handle 64-bit time_t support.
|
||||
// Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We need to know the word size in order to check the time size.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// The function 'gets' existed in C89, but is impossible to use
|
||||
// safely. It has been removed from ISO C11 and ISO C++14. Note: for
|
||||
// compatibility with various implementations of <cstdio>, this test
|
||||
// must consider only the value of __cplusplus when compiling C++.
|
||||
|
||||
// GNU formerly extended the scanf functions with modified format
|
||||
// specifiers %as, %aS, and %a[...] that allocate a buffer for the
|
||||
// input using malloc. This extension conflicts with ISO C99, which
|
||||
// defines %a as a standalone format specifier that reads a floating-
|
||||
// point number; moreover, POSIX.1-2008 provides the same feature
|
||||
// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
|
||||
//
|
||||
// We now follow C99 unless GNU extensions are active and the compiler
|
||||
// is specifically in C89 or C++98 mode (strict or not). For
|
||||
// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
|
||||
// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
|
||||
// old extension.
|
||||
|
||||
// Get definitions of __STDC_* predefined macros, if the compiler has
|
||||
// not preincluded this header automatically.
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This macro indicates that the installed library is the GNU C Library.
|
||||
// For historic reasons the value now is 6 and this will stay from now
|
||||
// on. The use of this variable is deprecated. Use __GLIBC__ and
|
||||
// __GLIBC_MINOR__ now (see below) when you want to test for a specific
|
||||
// GNU C library version and use the values in <gnu/lib-names.h> to get
|
||||
// the sonames of the shared libraries.
|
||||
|
||||
// Major and minor version number of the GNU C library package. Use
|
||||
// these macros to test for features in specific releases.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We are almost always included from features.h.
|
||||
|
||||
// The GNU libc does not support any K&R compilers or the traditional mode
|
||||
// of ISO C compilers anymore. Check for some of the combinations not
|
||||
// supported anymore.
|
||||
|
||||
// Some user header file might have defined this before.
|
||||
|
||||
// Compilers that lack __has_attribute may object to
|
||||
// #if defined __has_attribute && __has_attribute (...)
|
||||
// even though they do not need to evaluate the right-hand side of the &&.
|
||||
// Similarly for __has_builtin, etc.
|
||||
|
||||
// All functions, except those with callbacks or those that
|
||||
// synchronize memory, are leaf functions.
|
||||
|
||||
// GCC can always grok prototypes. For C++ programs we add throw()
|
||||
// to help it optimize the function calls. But this only works with
|
||||
// gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions
|
||||
// as non-throwing using a function attribute since programs can use
|
||||
// the -fexceptions options for C code as well.
|
||||
|
||||
// These two macros are not used in glibc anymore. They are kept here
|
||||
// only because some other projects expect the macros to be defined.
|
||||
|
||||
// For these things, GCC behaves the ANSI way normally,
|
||||
// and the non-ANSI way under -traditional.
|
||||
|
||||
// This is not a typedef so `const __ptr_t' does the right thing.
|
||||
|
||||
// C++ needs to know that types and declarations are C, not C++.
|
||||
|
||||
// Fortify support.
|
||||
|
||||
// Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available.
|
||||
|
||||
// Support for flexible arrays.
|
||||
// Headers that should use flexible arrays only if they're "real"
|
||||
// (e.g. only if they won't affect sizeof()) should test
|
||||
// #if __glibc_c99_flexarr_available.
|
||||
|
||||
// __asm__ ("xyz") is used throughout the headers to rename functions
|
||||
// at the assembly language level. This is wrapped by the __REDIRECT
|
||||
// macro, in order to support compilers that can do this some other
|
||||
// way. When compilers don't support asm-names at all, we have to do
|
||||
// preprocessor tricks instead (which don't have exactly the right
|
||||
// semantics, but it's the best we can do).
|
||||
//
|
||||
// Example:
|
||||
// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
|
||||
|
||||
//
|
||||
// #elif __SOME_OTHER_COMPILER__
|
||||
//
|
||||
// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
|
||||
|
||||
// GCC and clang have various useful declarations that can be made with
|
||||
// the '__attribute__' syntax. All of the ways we use this do fine if
|
||||
// they are omitted for compilers that don't understand it.
|
||||
|
||||
// At some point during the gcc 2.96 development the `malloc' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Tell the compiler which arguments to an allocation function
|
||||
// indicate the size of the allocation.
|
||||
|
||||
// At some point during the gcc 2.96 development the `pure' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// This declaration tells the compiler that the value is constant.
|
||||
|
||||
// At some point during the gcc 3.1 development the `used' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Since version 3.2, gcc allows marking deprecated functions.
|
||||
|
||||
// Since version 4.5, gcc also allows one to specify the message printed
|
||||
// when a deprecated function is used. clang claims to be gcc 4.2, but
|
||||
// may also support this feature.
|
||||
|
||||
// At some point during the gcc 2.8 development the `format_arg' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
// If several `format_arg' attributes are given for the same function, in
|
||||
// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
|
||||
// all designated arguments are considered.
|
||||
|
||||
// At some point during the gcc 2.97 development the `strfmon' format
|
||||
// attribute for functions was introduced. We don't want to use it
|
||||
// unconditionally (although this would be possible) since it
|
||||
// generates warnings.
|
||||
|
||||
// The nonnull function attribute marks pointer parameters that
|
||||
// must not be NULL.
|
||||
|
||||
// The returns_nonnull function attribute marks the return type of the function
|
||||
// as always being non-null.
|
||||
|
||||
// If fortification mode, we warn about unused results of certain
|
||||
// function calls which can lead to problems.
|
||||
|
||||
// Forces a function to be always inlined.
|
||||
// The Linux kernel defines __always_inline in stddef.h (283d7573), and
|
||||
// it conflicts with this definition. Therefore undefine it first to
|
||||
// allow either header to be included first.
|
||||
|
||||
// Associate error messages with the source location of the call site rather
|
||||
// than with the source location inside the function.
|
||||
|
||||
// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
|
||||
// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
|
||||
// older than 4.3 may define these macros and still not guarantee GNU inlining
|
||||
// semantics.
|
||||
//
|
||||
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
|
||||
// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
|
||||
// __GNUC_GNU_INLINE__ macro definitions.
|
||||
|
||||
// GCC 4.3 and above allow passing all anonymous arguments of an
|
||||
// __extern_always_inline function to some other vararg function.
|
||||
|
||||
// It is possible to compile containing GCC extensions even if GCC is
|
||||
// run in pedantic mode if the uses are carefully marked using the
|
||||
// `__extension__' keyword. But this is not generally available before
|
||||
// version 2.8.
|
||||
|
||||
// __restrict is known in EGCS 1.2 and above, and in clang.
|
||||
// It works also in C++ mode (outside of arrays), but only when spelled
|
||||
// as '__restrict', not 'restrict'.
|
||||
|
||||
// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
|
||||
// array_name[restrict]
|
||||
// GCC 3.1 and clang support this.
|
||||
// This syntax is not usable in C++ mode.
|
||||
|
||||
// Describes a char array whose address can safely be passed as the first
|
||||
// argument to strncpy and strncat, as the char array is not necessarily
|
||||
// a NUL-terminated string.
|
||||
|
||||
// Undefine (also defined in libc-symbols.h).
|
||||
// Copies attributes from the declaration or type referenced by
|
||||
// the argument.
|
||||
|
||||
// The #ifndef lets Gnulib avoid including these on non-glibc
|
||||
// platforms, where the includes typically do not exist.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Properties of long double type. ldbl-128 version.
|
||||
// Copyright (C) 2016-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// long double is distinct from double, so there is nothing to
|
||||
// define here.
|
||||
|
||||
// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
|
||||
// intended for use in preprocessor macros.
|
||||
//
|
||||
// Note: MESSAGE must be a _single_ string; concatenation of string
|
||||
// literals is not supported.
|
||||
|
||||
// Generic selection (ISO C11) is a C-only feature, available in GCC
|
||||
// since version 4.9. Previous versions do not provide generic
|
||||
// selection, even though they might set __STDC_VERSION__ to 201112L,
|
||||
// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
|
||||
// when testing __STDC_VERSION__ for generic selection support.
|
||||
// On the other hand, Clang also defines __GNUC__, so a clang-specific
|
||||
// check is required to enable the use of generic selection.
|
||||
|
||||
// Designates a 1-based positional argument ref-index of pointer type
|
||||
// that can be used to access size-index elements of the pointed-to
|
||||
// array according to access mode, or at least one element when
|
||||
// size-index is not provided:
|
||||
// access (access-mode, <ref-index> [, <size-index>])
|
||||
|
||||
// Designates dealloc as a function to call to deallocate objects
|
||||
// allocated by the declared function.
|
||||
|
||||
// Specify that a function such as setjmp or vfork may return
|
||||
// twice.
|
||||
|
||||
// If we don't have __REDIRECT, prototypes will be missing if
|
||||
// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
|
||||
|
||||
// Decide whether we can define 'extern inline' functions in headers.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
|
||||
// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
|
||||
// that will always return failure (and set errno to ENOSYS).
|
||||
// This file is automatically generated.
|
||||
// This file selects the right generated file of `__stub_FUNCTION' macros
|
||||
// based on the architecture being compiled for.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This file is automatically generated.
|
||||
// It defines a symbol `__stub_FUNCTION' for each function
|
||||
// in the C library which is a stub, meaning it will fail
|
||||
// every time called, usually setting errno to ENOSYS.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// Convenience types.
|
||||
type X__u_char = uint8 /* types.h:31:23 */
|
||||
type X__u_short = uint16 /* types.h:32:28 */
|
||||
type X__u_int = uint32 /* types.h:33:22 */
|
||||
type X__u_long = uint64 /* types.h:34:27 */
|
||||
|
||||
// Fixed-size types, underlying types depend on word size and compiler.
|
||||
type X__int8_t = int8 /* types.h:37:21 */
|
||||
type X__uint8_t = uint8 /* types.h:38:23 */
|
||||
type X__int16_t = int16 /* types.h:39:26 */
|
||||
type X__uint16_t = uint16 /* types.h:40:28 */
|
||||
type X__int32_t = int32 /* types.h:41:20 */
|
||||
type X__uint32_t = uint32 /* types.h:42:22 */
|
||||
type X__int64_t = int64 /* types.h:44:25 */
|
||||
type X__uint64_t = uint64 /* types.h:45:27 */
|
||||
|
||||
// Smallest types with at least a given width.
|
||||
type X__int_least8_t = X__int8_t /* types.h:52:18 */
|
||||
type X__uint_least8_t = X__uint8_t /* types.h:53:19 */
|
||||
type X__int_least16_t = X__int16_t /* types.h:54:19 */
|
||||
type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
|
||||
type X__int_least32_t = X__int32_t /* types.h:56:19 */
|
||||
type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
|
||||
type X__int_least64_t = X__int64_t /* types.h:58:19 */
|
||||
type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
|
||||
|
||||
// quad_t is also 64 bits.
|
||||
type X__quad_t = int64 /* types.h:63:18 */
|
||||
type X__u_quad_t = uint64 /* types.h:64:27 */
|
||||
|
||||
// Largest integral types.
|
||||
type X__intmax_t = int64 /* types.h:72:18 */
|
||||
type X__uintmax_t = uint64 /* types.h:73:27 */
|
||||
|
||||
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
|
||||
// macros for each of the OS types we define below. The definitions
|
||||
// of those macros must use the following macros for underlying types.
|
||||
// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
||||
// variants of each of the following integer types on this machine.
|
||||
//
|
||||
// 16 -- "natural" 16-bit type (always short)
|
||||
// 32 -- "natural" 32-bit type (always int)
|
||||
// 64 -- "natural" 64-bit type (long or long long)
|
||||
// LONG32 -- 32-bit type, traditionally long
|
||||
// QUAD -- 64-bit type, traditionally long long
|
||||
// WORD -- natural type of __WORDSIZE bits (int or long)
|
||||
// LONGWORD -- type of __WORDSIZE bits, traditionally long
|
||||
//
|
||||
// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
||||
// conventional uses of `long' or `long long' type modifiers match the
|
||||
// types we define, even when a less-adorned type would be the same size.
|
||||
// This matters for (somewhat) portably writing printf/scanf formats for
|
||||
// these types, where using the appropriate l or ll format modifiers can
|
||||
// make the typedefs and the formats match up across all GNU platforms. If
|
||||
// we used `long' when it's 64 bits where `long long' is expected, then the
|
||||
// compiler would warn about the formats not matching the argument types,
|
||||
// and the programmer changing them to shut up the compiler would break the
|
||||
// program's portability.
|
||||
//
|
||||
// Here we assume what is presently the case in all the GCC configurations
|
||||
// we support: long long is always 64 bits, long is always word/address size,
|
||||
// and int is always 32 bits.
|
||||
|
||||
// No need to mark the typedef with __extension__.
|
||||
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
|
||||
// Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// See <bits/types.h> for the meaning of these macros. This file exists so
|
||||
// that <bits/types.h> need not vary across different GNU platforms.
|
||||
|
||||
// Tell the libc code that off_t and off64_t are actually the same type
|
||||
// for all ABI purposes, even if possibly expressed as different base types
|
||||
// for C type-checking purposes.
|
||||
|
||||
// Same for ino_t and ino64_t.
|
||||
|
||||
// And for __rlim_t and __rlim64_t.
|
||||
|
||||
// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
|
||||
|
||||
// And for getitimer, setitimer and rusage
|
||||
|
||||
// Number of descriptors that can fit in an `fd_set'.
|
||||
|
||||
// bits/time64.h -- underlying types for __time64_t. RISC-V version.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Define __TIME64_T_TYPE so that it is always a 64-bit type.
|
||||
|
||||
// If we already have 64-bit time type then use it.
|
||||
|
||||
type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
|
||||
type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
|
||||
type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
|
||||
type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers.
|
||||
type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS).
|
||||
type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks.
|
||||
type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts.
|
||||
type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets.
|
||||
type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
|
||||
type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
|
||||
type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
|
||||
type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
|
||||
type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
|
||||
type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
|
||||
type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
|
||||
type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch.
|
||||
type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
|
||||
type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds.
|
||||
type X__suseconds64_t = int64 /* types.h:163:33 */
|
||||
|
||||
type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address.
|
||||
type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key.
|
||||
|
||||
// Clock ID used in clock and timer functions.
|
||||
type X__clockid_t = int32 /* types.h:169:29 */
|
||||
|
||||
// Timer ID returned by `timer_create'.
|
||||
type X__timer_t = uintptr /* types.h:172:12 */
|
||||
|
||||
// Type to represent block size.
|
||||
type X__blksize_t = int32 /* types.h:175:29 */
|
||||
|
||||
// Types from the Large File Support interface.
|
||||
|
||||
// Type to count number of disk blocks.
|
||||
type X__blkcnt_t = int64 /* types.h:180:28 */
|
||||
type X__blkcnt64_t = int64 /* types.h:181:30 */
|
||||
|
||||
// Type to count file system blocks.
|
||||
type X__fsblkcnt_t = uint64 /* types.h:184:30 */
|
||||
type X__fsblkcnt64_t = uint64 /* types.h:185:32 */
|
||||
|
||||
// Type to count file system nodes.
|
||||
type X__fsfilcnt_t = uint64 /* types.h:188:30 */
|
||||
type X__fsfilcnt64_t = uint64 /* types.h:189:32 */
|
||||
|
||||
// Type of miscellaneous file system fields.
|
||||
type X__fsword_t = int64 /* types.h:192:28 */
|
||||
|
||||
type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error.
|
||||
|
||||
// Signed long type used in system calls.
|
||||
type X__syscall_slong_t = int64 /* types.h:197:33 */
|
||||
// Unsigned long type used in system calls.
|
||||
type X__syscall_ulong_t = uint64 /* types.h:199:33 */
|
||||
|
||||
// These few don't really vary by system, they always correspond
|
||||
// to one of the other defined types.
|
||||
type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS).
|
||||
type X__caddr_t = uintptr /* types.h:204:14 */
|
||||
|
||||
// Duplicates info from stdint.h but this is used in unistd.h.
|
||||
type X__intptr_t = int64 /* types.h:207:25 */
|
||||
|
||||
// Duplicate info from sys/socket.h.
|
||||
type X__socklen_t = uint32 /* types.h:210:23 */
|
||||
|
||||
// C99: An integer type that can be accessed as an atomic entity,
|
||||
// even in the presence of asynchronous interrupts.
|
||||
// It is not currently necessary for this to be machine-specific.
|
||||
type X__sig_atomic_t = int32 /* types.h:215:13 */
|
||||
|
||||
// Wide character type.
|
||||
// Locale-writers should change this as necessary to
|
||||
// be big enough to hold unique values not between 0 and 127,
|
||||
// and not (wchar_t) -1, for each defined multibyte character.
|
||||
|
||||
// Define this type if we are doing the whole job,
|
||||
// or if we want this type in particular.
|
||||
|
||||
// A null pointer constant.
|
||||
|
||||
// For the Single Unix specification we must define this type here.
|
||||
type Gid_t = X__gid_t /* grp.h:37:17 */
|
||||
|
||||
// The group structure.
|
||||
type Group = struct {
|
||||
Fgr_name uintptr
|
||||
Fgr_passwd uintptr
|
||||
Fgr_gid X__gid_t
|
||||
F__ccgo_pad1 [4]byte
|
||||
Fgr_mem uintptr
|
||||
} /* grp.h:42:1 */
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo langinfo/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o langinfo/langinfo_linux_riscv64.go -pkgname langinfo', DO NOT EDIT.
|
||||
|
||||
package langinfo
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,413 @@
|
||||
// Copyright 2020 The Libc Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package libc // import "modernc.org/libc"
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"unicode"
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
"modernc.org/libc/errno"
|
||||
"modernc.org/libc/fcntl"
|
||||
"modernc.org/libc/signal"
|
||||
"modernc.org/libc/sys/types"
|
||||
"modernc.org/libc/utime"
|
||||
"modernc.org/libc/wctype"
|
||||
)
|
||||
|
||||
// int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
|
||||
func Xsigaction(t *TLS, signum int32, act, oldact uintptr) int32 {
|
||||
// musl/arch/x86_64/ksigaction.h
|
||||
//
|
||||
// struct k_sigaction {
|
||||
// void (*handler)(int);
|
||||
// unsigned long flags;
|
||||
// void (*restorer)(void);
|
||||
// unsigned mask[2];
|
||||
// };
|
||||
type k_sigaction struct {
|
||||
handler uintptr
|
||||
flags ulong
|
||||
restorer uintptr
|
||||
mask [2]uint32
|
||||
}
|
||||
|
||||
var kact, koldact uintptr
|
||||
if act != 0 {
|
||||
sz := int(unsafe.Sizeof(k_sigaction{}))
|
||||
kact = t.Alloc(sz)
|
||||
defer t.Free(sz)
|
||||
*(*k_sigaction)(unsafe.Pointer(kact)) = k_sigaction{
|
||||
handler: (*signal.Sigaction)(unsafe.Pointer(act)).F__sigaction_handler.Fsa_handler,
|
||||
flags: ulong((*signal.Sigaction)(unsafe.Pointer(act)).Fsa_flags),
|
||||
restorer: (*signal.Sigaction)(unsafe.Pointer(act)).Fsa_restorer,
|
||||
}
|
||||
Xmemcpy(t, kact+unsafe.Offsetof(k_sigaction{}.mask), act+unsafe.Offsetof(signal.Sigaction{}.Fsa_mask), types.Size_t(unsafe.Sizeof(k_sigaction{}.mask)))
|
||||
}
|
||||
if oldact != 0 {
|
||||
panic(todo(""))
|
||||
}
|
||||
|
||||
if _, _, err := unix.Syscall6(unix.SYS_RT_SIGACTION, uintptr(signum), kact, koldact, unsafe.Sizeof(k_sigaction{}.mask), 0, 0); err != 0 {
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
if oldact != 0 {
|
||||
panic(todo(""))
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
// int fcntl(int fd, int cmd, ... /* arg */ );
|
||||
func Xfcntl64(t *TLS, fd, cmd int32, args uintptr) int32 {
|
||||
var arg uintptr
|
||||
if args != 0 {
|
||||
arg = *(*uintptr)(unsafe.Pointer(args))
|
||||
}
|
||||
if cmd == fcntl.F_SETFL {
|
||||
arg |= unix.O_LARGEFILE
|
||||
}
|
||||
n, _, err := unix.Syscall(unix.SYS_FCNTL, uintptr(fd), uintptr(cmd), arg)
|
||||
if err != 0 {
|
||||
// if dmesgs {
|
||||
// dmesg("%v: fd %v cmd %v", origin(1), fcntlCmdStr(fd), cmd)
|
||||
// }
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %d %s %#x: %d", origin(1), fd, fcntlCmdStr(cmd), arg, n)
|
||||
// }
|
||||
return int32(n)
|
||||
}
|
||||
|
||||
// int fstatat(int dirfd, const char *pathname, struct stat *statbuf, int flags);
|
||||
func Xfstatat(t *TLS, dirfd int32, pathname, statbuf uintptr, flags int32) int32 {
|
||||
// From golang.org/x/sys/unix/zsyscall_linux_riscv64.go
|
||||
if _, _, err := unix.Syscall6(unix.SYS_FSTATAT, uintptr(dirfd), pathname, statbuf, uintptr(flags), 0, 0); err != 0 {
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
// int lstat(const char *pathname, struct stat *statbuf);
|
||||
func Xlstat64(t *TLS, pathname, statbuf uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux_riscv64.go
|
||||
return Xfstatat(t, unix.AT_FDCWD, pathname, statbuf, unix.AT_SYMLINK_NOFOLLOW)
|
||||
}
|
||||
|
||||
// int stat(const char *pathname, struct stat *statbuf);
|
||||
func Xstat64(t *TLS, pathname, statbuf uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux_riscv64.go
|
||||
return Xfstatat(t, unix.AT_FDCWD, pathname, statbuf, 0)
|
||||
}
|
||||
|
||||
// int fstat(int fd, struct stat *statbuf);
|
||||
func Xfstat64(t *TLS, fd int32, statbuf uintptr) int32 {
|
||||
if _, _, err := unix.Syscall(unix.SYS_FSTAT, uintptr(fd), statbuf, 0); err != 0 {
|
||||
// if dmesgs {
|
||||
// dmesg("%v: fd %d: %v", origin(1), fd, err)
|
||||
// }
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %d size %#x: ok\n%+v", origin(1), fd, (*stat.Stat)(unsafe.Pointer(statbuf)).Fst_size, (*stat.Stat)(unsafe.Pointer(statbuf)))
|
||||
// }
|
||||
return 0
|
||||
}
|
||||
|
||||
func Xmmap(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
|
||||
return Xmmap64(t, addr, length, prot, flags, fd, offset)
|
||||
}
|
||||
|
||||
// void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
|
||||
func Xmmap64(t *TLS, addr uintptr, length types.Size_t, prot, flags, fd int32, offset types.Off_t) uintptr {
|
||||
data, _, err := unix.Syscall6(unix.SYS_MMAP, addr, uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
|
||||
if err != 0 {
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %v", origin(1), err)
|
||||
// }
|
||||
t.setErrno(err)
|
||||
return ^uintptr(0) // (void*)-1
|
||||
}
|
||||
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %#x", origin(1), data)
|
||||
// }
|
||||
return data
|
||||
}
|
||||
|
||||
// void *mremap(void *old_address, size_t old_size, size_t new_size, int flags, ... /* void *new_address */);
|
||||
func Xmremap(t *TLS, old_address uintptr, old_size, new_size types.Size_t, flags int32, args uintptr) uintptr {
|
||||
var arg uintptr
|
||||
if args != 0 {
|
||||
arg = *(*uintptr)(unsafe.Pointer(args))
|
||||
}
|
||||
data, _, err := unix.Syscall6(unix.SYS_MREMAP, old_address, uintptr(old_size), uintptr(new_size), uintptr(flags), arg, 0)
|
||||
if err != 0 {
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %v", origin(1), err)
|
||||
// }
|
||||
t.setErrno(err)
|
||||
return ^uintptr(0) // (void*)-1
|
||||
}
|
||||
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %#x", origin(1), data)
|
||||
// }
|
||||
return data
|
||||
}
|
||||
|
||||
// int ftruncate(int fd, off_t length);
|
||||
func Xftruncate64(t *TLS, fd int32, length types.Off_t) int32 {
|
||||
if _, _, err := unix.Syscall(unix.SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0); err != 0 {
|
||||
// if dmesgs {
|
||||
// dmesg("%v: fd %d: %v", origin(1), fd, err)
|
||||
// }
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
// if dmesgs {
|
||||
// dmesg("%v: %d %#x: ok", origin(1), fd, length)
|
||||
// }
|
||||
return 0
|
||||
}
|
||||
|
||||
// off64_t lseek64(int fd, off64_t offset, int whence);
|
||||
func Xlseek64(t *TLS, fd int32, offset types.Off_t, whence int32) types.Off_t {
|
||||
n, _, err := unix.Syscall(unix.SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
|
||||
if err != 0 {
|
||||
// if dmesgs {
|
||||
// dmesg("%v: fd %v, off %#x, whence %v: %v", origin(1), fd, offset, whenceStr(whence), err)
|
||||
// }
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
// if dmesgs {
|
||||
// dmesg("%v: fd %v, off %#x, whence %v: %#x", origin(1), fd, offset, whenceStr(whence), n)
|
||||
// }
|
||||
return types.Off_t(n)
|
||||
}
|
||||
|
||||
// From man utime executed on linux/riscv64:
|
||||
//
|
||||
// The utimbuf structure is:
|
||||
//
|
||||
// struct utimbuf {
|
||||
// time_t actime; /* access time */
|
||||
// time_t modtime; /* modification time */
|
||||
// };
|
||||
|
||||
type utimbuf struct {
|
||||
actime utime.Time_t
|
||||
modtime utime.Time_t
|
||||
}
|
||||
|
||||
// int utime(const char *filename, const struct utimbuf *times);
|
||||
func Xutime(t *TLS, filename, times uintptr) int32 {
|
||||
if times == 0 {
|
||||
return Xutimes(t, filename, 0)
|
||||
}
|
||||
|
||||
n := int(unsafe.Sizeof([2]types.Timeval{}))
|
||||
p := t.Alloc(n)
|
||||
defer t.Free(n)
|
||||
*(*[2]types.Timeval)(unsafe.Pointer(p)) = [2]types.Timeval{
|
||||
{Ftv_sec: (*utimbuf)(unsafe.Pointer(times)).actime},
|
||||
{Ftv_sec: (*utimbuf)(unsafe.Pointer(times)).modtime},
|
||||
}
|
||||
return Xutimes(t, filename, p)
|
||||
}
|
||||
|
||||
// unsigned int alarm(unsigned int seconds);
|
||||
func Xalarm(t *TLS, seconds uint32) uint32 {
|
||||
panic(todo(""))
|
||||
// No alarm syscall on linux/riscv64. And cannot implement with setitimer as in musl,
|
||||
// because of missing defination to constant ITIMER_REAL in types_linux_riscv64.go.
|
||||
}
|
||||
|
||||
// time_t time(time_t *tloc);
|
||||
func Xtime(t *TLS, tloc uintptr) types.Time_t {
|
||||
// From golang.org/x/sys/unix/syscall_linux_riscv64.go
|
||||
var tv types.Timeval
|
||||
if err := Xgettimeofday(t, uintptr(unsafe.Pointer(&tv)), 0); err != 0 {
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
if tloc != 0 {
|
||||
*(*types.Time_t)(unsafe.Pointer(tloc)) = tv.Ftv_sec
|
||||
}
|
||||
return tv.Ftv_sec
|
||||
}
|
||||
|
||||
// int getrlimit(int resource, struct rlimit *rlim);
|
||||
func Xgetrlimit64(t *TLS, resource int32, rlim uintptr) int32 {
|
||||
if _, _, err := unix.Syscall(unix.SYS_GETRLIMIT, uintptr(resource), uintptr(rlim), 0); err != 0 {
|
||||
t.setErrno(err)
|
||||
return -1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
// int mkdir(const char *path, mode_t mode);
|
||||
func Xmkdir(t *TLS, path uintptr, mode types.Mode_t) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xmkdirat(t, unix.AT_FDCWD, path, mode)
|
||||
}
|
||||
|
||||
// int symlink(const char *target, const char *linkpath);
|
||||
func Xsymlink(t *TLS, target, linkpath uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xsymlinkat(t, target, unix.AT_FDCWD, linkpath)
|
||||
}
|
||||
|
||||
// int chmod(const char *pathname, mode_t mode)
|
||||
func Xchmod(t *TLS, pathname uintptr, mode types.Mode_t) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xfchmodat(t, unix.AT_FDCWD, pathname, mode, 0)
|
||||
}
|
||||
|
||||
// int utimes(const char *filename, const struct timeval times[2]);
|
||||
func Xutimes(t *TLS, filename, times uintptr) int32 {
|
||||
return Xutimensat(t, unix.AT_FDCWD, filename, times, 0)
|
||||
}
|
||||
|
||||
// int unlink(const char *pathname);
|
||||
func Xunlink(t *TLS, pathname uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xunlinkat(t, unix.AT_FDCWD, pathname, 0)
|
||||
}
|
||||
|
||||
// int access(const char *pathname, int mode);
|
||||
func Xaccess(t *TLS, pathname uintptr, mode int32) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xfaccessat(t, unix.AT_FDCWD, pathname, mode, 0)
|
||||
}
|
||||
|
||||
// int rmdir(const char *pathname);
|
||||
func Xrmdir(t *TLS, pathname uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xunlinkat(t, unix.AT_FDCWD, pathname, unix.AT_REMOVEDIR)
|
||||
}
|
||||
|
||||
// int rename(const char *oldpath, const char *newpath);
|
||||
func Xrename(t *TLS, oldpath, newpath uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xrenameat(t, unix.AT_FDCWD, oldpath, unix.AT_FDCWD, newpath)
|
||||
}
|
||||
|
||||
// int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath);
|
||||
func Xrenameat(t *TLS, olddirfd int32, oldpath uintptr, newdirfd int32, newpath uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux_riscv64.go
|
||||
return Xrenameat2(t, olddirfd, oldpath, newdirfd, newpath, 0)
|
||||
}
|
||||
|
||||
// int mknod(const char *pathname, mode_t mode, dev_t dev);
|
||||
func Xmknod(t *TLS, pathname uintptr, mode types.Mode_t, dev types.Dev_t) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xmknodat(t, unix.AT_FDCWD, pathname, mode, dev)
|
||||
}
|
||||
|
||||
// int chown(const char *pathname, uid_t owner, gid_t group);
|
||||
func Xchown(t *TLS, pathname uintptr, owner types.Uid_t, group types.Gid_t) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xfchownat(t, unix.AT_FDCWD, pathname, owner, group, 0)
|
||||
}
|
||||
|
||||
// int link(const char *oldpath, const char *newpath);
|
||||
func Xlink(t *TLS, oldpath, newpath uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xlinkat(t, unix.AT_FDCWD, oldpath, unix.AT_FDCWD, newpath, 0)
|
||||
}
|
||||
|
||||
// int pipe(int pipefd[2]);
|
||||
func Xpipe(t *TLS, pipefd uintptr) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xpipe2(t, pipefd, 0)
|
||||
}
|
||||
|
||||
// int dup2(int oldfd, int newfd);
|
||||
func Xdup2(t *TLS, oldfd, newfd int32) int32 {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xdup3(t, oldfd, newfd, 0)
|
||||
}
|
||||
|
||||
// ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsize);
|
||||
func Xreadlink(t *TLS, path, buf uintptr, bufsize types.Size_t) types.Ssize_t {
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
return Xreadlinkat(t, unix.AT_FDCWD, path, buf, bufsize)
|
||||
}
|
||||
|
||||
// FILE *fopen64(const char *pathname, const char *mode);
|
||||
func Xfopen64(t *TLS, pathname, mode uintptr) uintptr {
|
||||
m := strings.ReplaceAll(GoString(mode), "b", "")
|
||||
var flags int
|
||||
switch m {
|
||||
case "r":
|
||||
flags = os.O_RDONLY
|
||||
case "r+":
|
||||
flags = os.O_RDWR
|
||||
case "w":
|
||||
flags = os.O_WRONLY | os.O_CREATE | os.O_TRUNC
|
||||
case "w+":
|
||||
flags = os.O_RDWR | os.O_CREATE | os.O_TRUNC
|
||||
case "a":
|
||||
flags = os.O_WRONLY | os.O_CREATE | os.O_APPEND
|
||||
case "a+":
|
||||
flags = os.O_RDWR | os.O_CREATE | os.O_APPEND
|
||||
default:
|
||||
panic(m)
|
||||
}
|
||||
//TODO- flags |= fcntl.O_LARGEFILE
|
||||
|
||||
// From golang.org/x/sys/unix/syscall_linux.go
|
||||
fd := Xopenat(t, unix.AT_FDCWD, pathname, int32(flags|unix.O_LARGEFILE), 0666)
|
||||
if fd == -1 {
|
||||
return 0
|
||||
}
|
||||
|
||||
if p := newFile(t, fd); p != 0 {
|
||||
return p
|
||||
}
|
||||
|
||||
Xclose(t, fd)
|
||||
t.setErrno(errno.ENOMEM)
|
||||
return 0
|
||||
}
|
||||
|
||||
// int iswspace(wint_t wc);
|
||||
func Xiswspace(t *TLS, wc wctype.Wint_t) int32 {
|
||||
return Bool32(unicode.IsSpace(rune(wc)))
|
||||
}
|
||||
|
||||
// int iswalnum(wint_t wc);
|
||||
func Xiswalnum(t *TLS, wc wctype.Wint_t) int32 {
|
||||
return Bool32(unicode.IsLetter(rune(wc)) || unicode.IsNumber(rune(wc)))
|
||||
}
|
||||
|
||||
func __syscall1(t *TLS, trap, p1 long) long {
|
||||
return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), 0, 0))
|
||||
}
|
||||
|
||||
func __syscall3(t *TLS, trap, p1, p2, p3 long) long {
|
||||
return __syscall(unix.Syscall(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3)))
|
||||
}
|
||||
|
||||
func __syscall4(t *TLS, trap, p1, p2, p3, p4 long) long {
|
||||
return __syscall(unix.Syscall6(uintptr(trap), uintptr(p1), uintptr(p2), uintptr(p3), uintptr(p4), 0, 0))
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo limits/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o limits/limits_linux_riscv64.go -pkgname limits', DO NOT EDIT.
|
||||
|
||||
package limits
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo netdb/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netdb/netdb_linux_riscv64.go -pkgname netdb', DO NOT EDIT.
|
||||
|
||||
package netdb
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo netinet/in/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o netinet/in/in_linux_riscv64.go -pkgname in', DO NOT EDIT.
|
||||
|
||||
package in
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo poll/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o poll/poll_linux_riscv64.go -pkgname poll', DO NOT EDIT.
|
||||
|
||||
package poll
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,677 @@
|
||||
// Code generated by 'ccgo poll/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o poll/poll_linux_riscv64.go -pkgname poll', DO NOT EDIT.
|
||||
|
||||
package poll
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
POLLERR = 0x008
|
||||
POLLHUP = 0x010
|
||||
POLLIN = 0x001
|
||||
POLLNVAL = 0x020
|
||||
POLLOUT = 0x004
|
||||
POLLPRI = 0x002
|
||||
POLLRDBAND = 0x080
|
||||
POLLRDNORM = 0x040
|
||||
POLLWRBAND = 0x200
|
||||
POLLWRNORM = 0x100
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
X_SYS_POLL_H = 1
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
// Compatibility definitions for System V `poll' interface.
|
||||
// Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// These are defined by the user (or the compiler)
|
||||
// to specify the desired environment:
|
||||
//
|
||||
// __STRICT_ANSI__ ISO Standard C.
|
||||
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
|
||||
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
|
||||
// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
|
||||
// __STDC_WANT_LIB_EXT2__
|
||||
// Extensions to ISO C99 from TR 27431-2:2010.
|
||||
// __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-1:2014.
|
||||
// __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-4:2015.
|
||||
// __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-3:2015.
|
||||
// __STDC_WANT_IEC_60559_EXT__
|
||||
// ISO C2X interfaces defined only in Annex F.
|
||||
//
|
||||
// _POSIX_SOURCE IEEE Std 1003.1.
|
||||
// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
||||
// if >=199309L, add IEEE Std 1003.1b-1993;
|
||||
// if >=199506L, add IEEE Std 1003.1c-1995;
|
||||
// if >=200112L, all of IEEE 1003.1-2004
|
||||
// if >=200809L, all of IEEE 1003.1-2008
|
||||
// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
||||
// Single Unix conformance is wanted, to 600 for the
|
||||
// sixth revision, to 700 for the seventh revision.
|
||||
// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
||||
// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
|
||||
// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
||||
// _FILE_OFFSET_BITS=N Select default filesystem interface.
|
||||
// _ATFILE_SOURCE Additional *at interfaces.
|
||||
// _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// _GNU_SOURCE All of the above, plus GNU extensions.
|
||||
// _DEFAULT_SOURCE The default set of features (taking precedence over
|
||||
// __STRICT_ANSI__).
|
||||
//
|
||||
// _FORTIFY_SOURCE Add security hardening to many library functions.
|
||||
// Set to 1 or 2; 2 performs stricter checks than 1.
|
||||
//
|
||||
// _REENTRANT, _THREAD_SAFE
|
||||
// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
|
||||
//
|
||||
// The `-ansi' switch to the GNU C compiler, and standards conformance
|
||||
// options such as `-std=c99', define __STRICT_ANSI__. If none of
|
||||
// these are defined, or if _DEFAULT_SOURCE is defined, the default is
|
||||
// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
|
||||
// 200809L, as well as enabling miscellaneous functions from BSD and
|
||||
// SVID. If more than one of these are defined, they accumulate. For
|
||||
// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
|
||||
// give you ISO C, 1003.1, and 1003.2, but nothing else.
|
||||
//
|
||||
// These are defined by this file and are used by the
|
||||
// header files to decide what to declare or define:
|
||||
//
|
||||
// __GLIBC_USE (F) Define things from feature set F. This is defined
|
||||
// to 1 or 0; the subsequent macros are either defined
|
||||
// or undefined, and those tests should be moved to
|
||||
// __GLIBC_USE.
|
||||
// __USE_ISOC11 Define ISO C11 things.
|
||||
// __USE_ISOC99 Define ISO C99 things.
|
||||
// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
|
||||
// __USE_ISOCXX11 Define ISO C++11 things.
|
||||
// __USE_POSIX Define IEEE Std 1003.1 things.
|
||||
// __USE_POSIX2 Define IEEE Std 1003.2 things.
|
||||
// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
|
||||
// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
|
||||
// __USE_XOPEN Define XPG things.
|
||||
// __USE_XOPEN_EXTENDED Define X/Open Unix things.
|
||||
// __USE_UNIX98 Define Single Unix V2 things.
|
||||
// __USE_XOPEN2K Define XPG6 things.
|
||||
// __USE_XOPEN2KXSI Define XPG6 XSI things.
|
||||
// __USE_XOPEN2K8 Define XPG7 things.
|
||||
// __USE_XOPEN2K8XSI Define XPG7 XSI things.
|
||||
// __USE_LARGEFILE Define correct standard I/O things.
|
||||
// __USE_LARGEFILE64 Define LFS things with separate names.
|
||||
// __USE_FILE_OFFSET64 Define 64bit interface as default.
|
||||
// __USE_MISC Define things from 4.3BSD or System V Unix.
|
||||
// __USE_ATFILE Define *at interfaces and AT_* constants for them.
|
||||
// __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// __USE_GNU Define GNU extensions.
|
||||
// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
||||
//
|
||||
// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
||||
// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
|
||||
// only for compatibility. All new code should use the other symbols
|
||||
// to test for features.
|
||||
//
|
||||
// All macros listed above as possibly being defined by this file are
|
||||
// explicitly undefined if they are not explicitly defined.
|
||||
// Feature-test macros that are not defined by the user or compiler
|
||||
// but are implied by the other feature-test macros defined (or by the
|
||||
// lack of any definitions) are defined by the file.
|
||||
//
|
||||
// ISO C feature test macros depend on the definition of the macro
|
||||
// when an affected header is included, not when the first system
|
||||
// header is included, and so they are handled in
|
||||
// <bits/libc-header-start.h>, which does not have a multiple include
|
||||
// guard. Feature test macros that can be handled from the first
|
||||
// system header included are handled here.
|
||||
|
||||
// Undefine everything, so we get a clean slate.
|
||||
|
||||
// Suppress kernel-name space pollution unless user expressedly asks
|
||||
// for it.
|
||||
|
||||
// Convenience macro to test the version of gcc.
|
||||
// Use like this:
|
||||
// #if __GNUC_PREREQ (2,8)
|
||||
// ... code requiring gcc 2.8 or later ...
|
||||
// #endif
|
||||
// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
|
||||
// added in 2.0.
|
||||
|
||||
// Similarly for clang. Features added to GCC after version 4.2 may
|
||||
// or may not also be available in clang, and clang's definitions of
|
||||
// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
|
||||
// features can be queried via __has_extension/__has_feature.
|
||||
|
||||
// Whether to use feature set F.
|
||||
|
||||
// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
|
||||
// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
|
||||
// issue a warning; the expectation is that the source is being
|
||||
// transitioned to use the new macro.
|
||||
|
||||
// If _GNU_SOURCE was defined by the user, turn on all the other features.
|
||||
|
||||
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
||||
// define _DEFAULT_SOURCE.
|
||||
|
||||
// This is to enable the ISO C2X extension.
|
||||
|
||||
// This is to enable the ISO C11 extension.
|
||||
|
||||
// This is to enable the ISO C99 extension.
|
||||
|
||||
// This is to enable the ISO C90 Amendment 1:1995 extension.
|
||||
|
||||
// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
|
||||
// is defined, use POSIX.1-2008 (or another version depending on
|
||||
// _XOPEN_SOURCE).
|
||||
|
||||
// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
|
||||
// defined in all multithreaded code. GNU libc has not required this
|
||||
// for many years. We now treat them as compatibility synonyms for
|
||||
// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
|
||||
// comprehensive support for multithreaded code. Using them never
|
||||
// lowers the selected level of POSIX conformance, only raises it.
|
||||
|
||||
// Features part to handle 64-bit time_t support.
|
||||
// Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We need to know the word size in order to check the time size.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// The function 'gets' existed in C89, but is impossible to use
|
||||
// safely. It has been removed from ISO C11 and ISO C++14. Note: for
|
||||
// compatibility with various implementations of <cstdio>, this test
|
||||
// must consider only the value of __cplusplus when compiling C++.
|
||||
|
||||
// GNU formerly extended the scanf functions with modified format
|
||||
// specifiers %as, %aS, and %a[...] that allocate a buffer for the
|
||||
// input using malloc. This extension conflicts with ISO C99, which
|
||||
// defines %a as a standalone format specifier that reads a floating-
|
||||
// point number; moreover, POSIX.1-2008 provides the same feature
|
||||
// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
|
||||
//
|
||||
// We now follow C99 unless GNU extensions are active and the compiler
|
||||
// is specifically in C89 or C++98 mode (strict or not). For
|
||||
// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
|
||||
// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
|
||||
// old extension.
|
||||
|
||||
// Get definitions of __STDC_* predefined macros, if the compiler has
|
||||
// not preincluded this header automatically.
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This macro indicates that the installed library is the GNU C Library.
|
||||
// For historic reasons the value now is 6 and this will stay from now
|
||||
// on. The use of this variable is deprecated. Use __GLIBC__ and
|
||||
// __GLIBC_MINOR__ now (see below) when you want to test for a specific
|
||||
// GNU C library version and use the values in <gnu/lib-names.h> to get
|
||||
// the sonames of the shared libraries.
|
||||
|
||||
// Major and minor version number of the GNU C library package. Use
|
||||
// these macros to test for features in specific releases.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We are almost always included from features.h.
|
||||
|
||||
// The GNU libc does not support any K&R compilers or the traditional mode
|
||||
// of ISO C compilers anymore. Check for some of the combinations not
|
||||
// supported anymore.
|
||||
|
||||
// Some user header file might have defined this before.
|
||||
|
||||
// Compilers that lack __has_attribute may object to
|
||||
// #if defined __has_attribute && __has_attribute (...)
|
||||
// even though they do not need to evaluate the right-hand side of the &&.
|
||||
// Similarly for __has_builtin, etc.
|
||||
|
||||
// All functions, except those with callbacks or those that
|
||||
// synchronize memory, are leaf functions.
|
||||
|
||||
// GCC can always grok prototypes. For C++ programs we add throw()
|
||||
// to help it optimize the function calls. But this only works with
|
||||
// gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions
|
||||
// as non-throwing using a function attribute since programs can use
|
||||
// the -fexceptions options for C code as well.
|
||||
|
||||
// These two macros are not used in glibc anymore. They are kept here
|
||||
// only because some other projects expect the macros to be defined.
|
||||
|
||||
// For these things, GCC behaves the ANSI way normally,
|
||||
// and the non-ANSI way under -traditional.
|
||||
|
||||
// This is not a typedef so `const __ptr_t' does the right thing.
|
||||
|
||||
// C++ needs to know that types and declarations are C, not C++.
|
||||
|
||||
// Fortify support.
|
||||
|
||||
// Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available.
|
||||
|
||||
// Support for flexible arrays.
|
||||
// Headers that should use flexible arrays only if they're "real"
|
||||
// (e.g. only if they won't affect sizeof()) should test
|
||||
// #if __glibc_c99_flexarr_available.
|
||||
|
||||
// __asm__ ("xyz") is used throughout the headers to rename functions
|
||||
// at the assembly language level. This is wrapped by the __REDIRECT
|
||||
// macro, in order to support compilers that can do this some other
|
||||
// way. When compilers don't support asm-names at all, we have to do
|
||||
// preprocessor tricks instead (which don't have exactly the right
|
||||
// semantics, but it's the best we can do).
|
||||
//
|
||||
// Example:
|
||||
// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
|
||||
|
||||
//
|
||||
// #elif __SOME_OTHER_COMPILER__
|
||||
//
|
||||
// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
|
||||
|
||||
// GCC and clang have various useful declarations that can be made with
|
||||
// the '__attribute__' syntax. All of the ways we use this do fine if
|
||||
// they are omitted for compilers that don't understand it.
|
||||
|
||||
// At some point during the gcc 2.96 development the `malloc' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Tell the compiler which arguments to an allocation function
|
||||
// indicate the size of the allocation.
|
||||
|
||||
// At some point during the gcc 2.96 development the `pure' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// This declaration tells the compiler that the value is constant.
|
||||
|
||||
// At some point during the gcc 3.1 development the `used' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Since version 3.2, gcc allows marking deprecated functions.
|
||||
|
||||
// Since version 4.5, gcc also allows one to specify the message printed
|
||||
// when a deprecated function is used. clang claims to be gcc 4.2, but
|
||||
// may also support this feature.
|
||||
|
||||
// At some point during the gcc 2.8 development the `format_arg' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
// If several `format_arg' attributes are given for the same function, in
|
||||
// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
|
||||
// all designated arguments are considered.
|
||||
|
||||
// At some point during the gcc 2.97 development the `strfmon' format
|
||||
// attribute for functions was introduced. We don't want to use it
|
||||
// unconditionally (although this would be possible) since it
|
||||
// generates warnings.
|
||||
|
||||
// The nonnull function attribute marks pointer parameters that
|
||||
// must not be NULL.
|
||||
|
||||
// The returns_nonnull function attribute marks the return type of the function
|
||||
// as always being non-null.
|
||||
|
||||
// If fortification mode, we warn about unused results of certain
|
||||
// function calls which can lead to problems.
|
||||
|
||||
// Forces a function to be always inlined.
|
||||
// The Linux kernel defines __always_inline in stddef.h (283d7573), and
|
||||
// it conflicts with this definition. Therefore undefine it first to
|
||||
// allow either header to be included first.
|
||||
|
||||
// Associate error messages with the source location of the call site rather
|
||||
// than with the source location inside the function.
|
||||
|
||||
// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
|
||||
// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
|
||||
// older than 4.3 may define these macros and still not guarantee GNU inlining
|
||||
// semantics.
|
||||
//
|
||||
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
|
||||
// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
|
||||
// __GNUC_GNU_INLINE__ macro definitions.
|
||||
|
||||
// GCC 4.3 and above allow passing all anonymous arguments of an
|
||||
// __extern_always_inline function to some other vararg function.
|
||||
|
||||
// It is possible to compile containing GCC extensions even if GCC is
|
||||
// run in pedantic mode if the uses are carefully marked using the
|
||||
// `__extension__' keyword. But this is not generally available before
|
||||
// version 2.8.
|
||||
|
||||
// __restrict is known in EGCS 1.2 and above, and in clang.
|
||||
// It works also in C++ mode (outside of arrays), but only when spelled
|
||||
// as '__restrict', not 'restrict'.
|
||||
|
||||
// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
|
||||
// array_name[restrict]
|
||||
// GCC 3.1 and clang support this.
|
||||
// This syntax is not usable in C++ mode.
|
||||
|
||||
// Describes a char array whose address can safely be passed as the first
|
||||
// argument to strncpy and strncat, as the char array is not necessarily
|
||||
// a NUL-terminated string.
|
||||
|
||||
// Undefine (also defined in libc-symbols.h).
|
||||
// Copies attributes from the declaration or type referenced by
|
||||
// the argument.
|
||||
|
||||
// The #ifndef lets Gnulib avoid including these on non-glibc
|
||||
// platforms, where the includes typically do not exist.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Properties of long double type. ldbl-128 version.
|
||||
// Copyright (C) 2016-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// long double is distinct from double, so there is nothing to
|
||||
// define here.
|
||||
|
||||
// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
|
||||
// intended for use in preprocessor macros.
|
||||
//
|
||||
// Note: MESSAGE must be a _single_ string; concatenation of string
|
||||
// literals is not supported.
|
||||
|
||||
// Generic selection (ISO C11) is a C-only feature, available in GCC
|
||||
// since version 4.9. Previous versions do not provide generic
|
||||
// selection, even though they might set __STDC_VERSION__ to 201112L,
|
||||
// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
|
||||
// when testing __STDC_VERSION__ for generic selection support.
|
||||
// On the other hand, Clang also defines __GNUC__, so a clang-specific
|
||||
// check is required to enable the use of generic selection.
|
||||
|
||||
// Designates a 1-based positional argument ref-index of pointer type
|
||||
// that can be used to access size-index elements of the pointed-to
|
||||
// array according to access mode, or at least one element when
|
||||
// size-index is not provided:
|
||||
// access (access-mode, <ref-index> [, <size-index>])
|
||||
|
||||
// Designates dealloc as a function to call to deallocate objects
|
||||
// allocated by the declared function.
|
||||
|
||||
// Specify that a function such as setjmp or vfork may return
|
||||
// twice.
|
||||
|
||||
// If we don't have __REDIRECT, prototypes will be missing if
|
||||
// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
|
||||
|
||||
// Decide whether we can define 'extern inline' functions in headers.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
|
||||
// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
|
||||
// that will always return failure (and set errno to ENOSYS).
|
||||
// This file is automatically generated.
|
||||
// This file selects the right generated file of `__stub_FUNCTION' macros
|
||||
// based on the architecture being compiled for.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This file is automatically generated.
|
||||
// It defines a symbol `__stub_FUNCTION' for each function
|
||||
// in the C library which is a stub, meaning it will fail
|
||||
// every time called, usually setting errno to ENOSYS.
|
||||
|
||||
// Get the platform dependent bits of `poll'.
|
||||
// Copyright (C) 1997-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Event types that can be polled for. These bits may be set in `events'
|
||||
// to indicate the interesting event types; they will appear in `revents'
|
||||
// to indicate the status of the file descriptor.
|
||||
|
||||
// These values are defined in XPG4.2.
|
||||
|
||||
// Event types always implicitly polled for. These bits need not be set in
|
||||
// `events', but they will appear in `revents' to indicate the status of
|
||||
// the file descriptor.
|
||||
|
||||
// Type used for the number of file descriptors.
|
||||
type Nfds_t = uint64 /* poll.h:33:27 */
|
||||
|
||||
// Data structure describing a polling request.
|
||||
type Pollfd = struct {
|
||||
Ffd int32
|
||||
Fevents int16
|
||||
Frevents int16
|
||||
} /* poll.h:36:1 */
|
||||
|
||||
// Define some inlines helping to catch common problems.
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo pthread/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pthread/pthread_linux_riscv64.go -pkgname pthread', DO NOT EDIT.
|
||||
|
||||
package pthread
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo pwd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pwd/pwd_linux_riscv64.go -pkgname pwd', DO NOT EDIT.
|
||||
|
||||
package pwd
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,958 @@
|
||||
// Code generated by 'ccgo pwd/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o pwd/pwd_linux_riscv64.go -pkgname pwd', DO NOT EDIT.
|
||||
|
||||
package pwd
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
NSS_BUFLEN_PASSWD = 1024
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_BITS_TIME64_H = 1
|
||||
X_BITS_TYPESIZES_H = 1
|
||||
X_BITS_TYPES_H = 1
|
||||
X_BSD_SIZE_T_ = 0
|
||||
X_BSD_SIZE_T_DEFINED_ = 0
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_GCC_SIZE_T = 0
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_PWD_H = 1
|
||||
X_SIZET_ = 0
|
||||
X_SIZE_T = 0
|
||||
X_SIZE_T_ = 0
|
||||
X_SIZE_T_DECLARED = 0
|
||||
X_SIZE_T_DEFINED = 0
|
||||
X_SIZE_T_DEFINED_ = 0
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
X_SYS_SIZE_T_H = 0
|
||||
X_T_SIZE = 0
|
||||
X_T_SIZE_ = 0
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// POSIX Standard: 9.2.2 User Database Access <pwd.h>
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// These are defined by the user (or the compiler)
|
||||
// to specify the desired environment:
|
||||
//
|
||||
// __STRICT_ANSI__ ISO Standard C.
|
||||
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
|
||||
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
|
||||
// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
|
||||
// __STDC_WANT_LIB_EXT2__
|
||||
// Extensions to ISO C99 from TR 27431-2:2010.
|
||||
// __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-1:2014.
|
||||
// __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-4:2015.
|
||||
// __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-3:2015.
|
||||
// __STDC_WANT_IEC_60559_EXT__
|
||||
// ISO C2X interfaces defined only in Annex F.
|
||||
//
|
||||
// _POSIX_SOURCE IEEE Std 1003.1.
|
||||
// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
||||
// if >=199309L, add IEEE Std 1003.1b-1993;
|
||||
// if >=199506L, add IEEE Std 1003.1c-1995;
|
||||
// if >=200112L, all of IEEE 1003.1-2004
|
||||
// if >=200809L, all of IEEE 1003.1-2008
|
||||
// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
||||
// Single Unix conformance is wanted, to 600 for the
|
||||
// sixth revision, to 700 for the seventh revision.
|
||||
// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
||||
// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
|
||||
// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
||||
// _FILE_OFFSET_BITS=N Select default filesystem interface.
|
||||
// _ATFILE_SOURCE Additional *at interfaces.
|
||||
// _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// _GNU_SOURCE All of the above, plus GNU extensions.
|
||||
// _DEFAULT_SOURCE The default set of features (taking precedence over
|
||||
// __STRICT_ANSI__).
|
||||
//
|
||||
// _FORTIFY_SOURCE Add security hardening to many library functions.
|
||||
// Set to 1 or 2; 2 performs stricter checks than 1.
|
||||
//
|
||||
// _REENTRANT, _THREAD_SAFE
|
||||
// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
|
||||
//
|
||||
// The `-ansi' switch to the GNU C compiler, and standards conformance
|
||||
// options such as `-std=c99', define __STRICT_ANSI__. If none of
|
||||
// these are defined, or if _DEFAULT_SOURCE is defined, the default is
|
||||
// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
|
||||
// 200809L, as well as enabling miscellaneous functions from BSD and
|
||||
// SVID. If more than one of these are defined, they accumulate. For
|
||||
// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
|
||||
// give you ISO C, 1003.1, and 1003.2, but nothing else.
|
||||
//
|
||||
// These are defined by this file and are used by the
|
||||
// header files to decide what to declare or define:
|
||||
//
|
||||
// __GLIBC_USE (F) Define things from feature set F. This is defined
|
||||
// to 1 or 0; the subsequent macros are either defined
|
||||
// or undefined, and those tests should be moved to
|
||||
// __GLIBC_USE.
|
||||
// __USE_ISOC11 Define ISO C11 things.
|
||||
// __USE_ISOC99 Define ISO C99 things.
|
||||
// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
|
||||
// __USE_ISOCXX11 Define ISO C++11 things.
|
||||
// __USE_POSIX Define IEEE Std 1003.1 things.
|
||||
// __USE_POSIX2 Define IEEE Std 1003.2 things.
|
||||
// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
|
||||
// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
|
||||
// __USE_XOPEN Define XPG things.
|
||||
// __USE_XOPEN_EXTENDED Define X/Open Unix things.
|
||||
// __USE_UNIX98 Define Single Unix V2 things.
|
||||
// __USE_XOPEN2K Define XPG6 things.
|
||||
// __USE_XOPEN2KXSI Define XPG6 XSI things.
|
||||
// __USE_XOPEN2K8 Define XPG7 things.
|
||||
// __USE_XOPEN2K8XSI Define XPG7 XSI things.
|
||||
// __USE_LARGEFILE Define correct standard I/O things.
|
||||
// __USE_LARGEFILE64 Define LFS things with separate names.
|
||||
// __USE_FILE_OFFSET64 Define 64bit interface as default.
|
||||
// __USE_MISC Define things from 4.3BSD or System V Unix.
|
||||
// __USE_ATFILE Define *at interfaces and AT_* constants for them.
|
||||
// __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// __USE_GNU Define GNU extensions.
|
||||
// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
||||
//
|
||||
// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
||||
// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
|
||||
// only for compatibility. All new code should use the other symbols
|
||||
// to test for features.
|
||||
//
|
||||
// All macros listed above as possibly being defined by this file are
|
||||
// explicitly undefined if they are not explicitly defined.
|
||||
// Feature-test macros that are not defined by the user or compiler
|
||||
// but are implied by the other feature-test macros defined (or by the
|
||||
// lack of any definitions) are defined by the file.
|
||||
//
|
||||
// ISO C feature test macros depend on the definition of the macro
|
||||
// when an affected header is included, not when the first system
|
||||
// header is included, and so they are handled in
|
||||
// <bits/libc-header-start.h>, which does not have a multiple include
|
||||
// guard. Feature test macros that can be handled from the first
|
||||
// system header included are handled here.
|
||||
|
||||
// Undefine everything, so we get a clean slate.
|
||||
|
||||
// Suppress kernel-name space pollution unless user expressedly asks
|
||||
// for it.
|
||||
|
||||
// Convenience macro to test the version of gcc.
|
||||
// Use like this:
|
||||
// #if __GNUC_PREREQ (2,8)
|
||||
// ... code requiring gcc 2.8 or later ...
|
||||
// #endif
|
||||
// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
|
||||
// added in 2.0.
|
||||
|
||||
// Similarly for clang. Features added to GCC after version 4.2 may
|
||||
// or may not also be available in clang, and clang's definitions of
|
||||
// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
|
||||
// features can be queried via __has_extension/__has_feature.
|
||||
|
||||
// Whether to use feature set F.
|
||||
|
||||
// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
|
||||
// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
|
||||
// issue a warning; the expectation is that the source is being
|
||||
// transitioned to use the new macro.
|
||||
|
||||
// If _GNU_SOURCE was defined by the user, turn on all the other features.
|
||||
|
||||
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
||||
// define _DEFAULT_SOURCE.
|
||||
|
||||
// This is to enable the ISO C2X extension.
|
||||
|
||||
// This is to enable the ISO C11 extension.
|
||||
|
||||
// This is to enable the ISO C99 extension.
|
||||
|
||||
// This is to enable the ISO C90 Amendment 1:1995 extension.
|
||||
|
||||
// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
|
||||
// is defined, use POSIX.1-2008 (or another version depending on
|
||||
// _XOPEN_SOURCE).
|
||||
|
||||
// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
|
||||
// defined in all multithreaded code. GNU libc has not required this
|
||||
// for many years. We now treat them as compatibility synonyms for
|
||||
// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
|
||||
// comprehensive support for multithreaded code. Using them never
|
||||
// lowers the selected level of POSIX conformance, only raises it.
|
||||
|
||||
// Features part to handle 64-bit time_t support.
|
||||
// Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We need to know the word size in order to check the time size.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// The function 'gets' existed in C89, but is impossible to use
|
||||
// safely. It has been removed from ISO C11 and ISO C++14. Note: for
|
||||
// compatibility with various implementations of <cstdio>, this test
|
||||
// must consider only the value of __cplusplus when compiling C++.
|
||||
|
||||
// GNU formerly extended the scanf functions with modified format
|
||||
// specifiers %as, %aS, and %a[...] that allocate a buffer for the
|
||||
// input using malloc. This extension conflicts with ISO C99, which
|
||||
// defines %a as a standalone format specifier that reads a floating-
|
||||
// point number; moreover, POSIX.1-2008 provides the same feature
|
||||
// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
|
||||
//
|
||||
// We now follow C99 unless GNU extensions are active and the compiler
|
||||
// is specifically in C89 or C++98 mode (strict or not). For
|
||||
// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
|
||||
// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
|
||||
// old extension.
|
||||
|
||||
// Get definitions of __STDC_* predefined macros, if the compiler has
|
||||
// not preincluded this header automatically.
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This macro indicates that the installed library is the GNU C Library.
|
||||
// For historic reasons the value now is 6 and this will stay from now
|
||||
// on. The use of this variable is deprecated. Use __GLIBC__ and
|
||||
// __GLIBC_MINOR__ now (see below) when you want to test for a specific
|
||||
// GNU C library version and use the values in <gnu/lib-names.h> to get
|
||||
// the sonames of the shared libraries.
|
||||
|
||||
// Major and minor version number of the GNU C library package. Use
|
||||
// these macros to test for features in specific releases.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We are almost always included from features.h.
|
||||
|
||||
// The GNU libc does not support any K&R compilers or the traditional mode
|
||||
// of ISO C compilers anymore. Check for some of the combinations not
|
||||
// supported anymore.
|
||||
|
||||
// Some user header file might have defined this before.
|
||||
|
||||
// Compilers that lack __has_attribute may object to
|
||||
// #if defined __has_attribute && __has_attribute (...)
|
||||
// even though they do not need to evaluate the right-hand side of the &&.
|
||||
// Similarly for __has_builtin, etc.
|
||||
|
||||
// All functions, except those with callbacks or those that
|
||||
// synchronize memory, are leaf functions.
|
||||
|
||||
// GCC can always grok prototypes. For C++ programs we add throw()
|
||||
// to help it optimize the function calls. But this only works with
|
||||
// gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions
|
||||
// as non-throwing using a function attribute since programs can use
|
||||
// the -fexceptions options for C code as well.
|
||||
|
||||
// These two macros are not used in glibc anymore. They are kept here
|
||||
// only because some other projects expect the macros to be defined.
|
||||
|
||||
// For these things, GCC behaves the ANSI way normally,
|
||||
// and the non-ANSI way under -traditional.
|
||||
|
||||
// This is not a typedef so `const __ptr_t' does the right thing.
|
||||
|
||||
// C++ needs to know that types and declarations are C, not C++.
|
||||
|
||||
// Fortify support.
|
||||
|
||||
// Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available.
|
||||
|
||||
// Support for flexible arrays.
|
||||
// Headers that should use flexible arrays only if they're "real"
|
||||
// (e.g. only if they won't affect sizeof()) should test
|
||||
// #if __glibc_c99_flexarr_available.
|
||||
|
||||
// __asm__ ("xyz") is used throughout the headers to rename functions
|
||||
// at the assembly language level. This is wrapped by the __REDIRECT
|
||||
// macro, in order to support compilers that can do this some other
|
||||
// way. When compilers don't support asm-names at all, we have to do
|
||||
// preprocessor tricks instead (which don't have exactly the right
|
||||
// semantics, but it's the best we can do).
|
||||
//
|
||||
// Example:
|
||||
// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
|
||||
|
||||
//
|
||||
// #elif __SOME_OTHER_COMPILER__
|
||||
//
|
||||
// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
|
||||
|
||||
// GCC and clang have various useful declarations that can be made with
|
||||
// the '__attribute__' syntax. All of the ways we use this do fine if
|
||||
// they are omitted for compilers that don't understand it.
|
||||
|
||||
// At some point during the gcc 2.96 development the `malloc' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Tell the compiler which arguments to an allocation function
|
||||
// indicate the size of the allocation.
|
||||
|
||||
// At some point during the gcc 2.96 development the `pure' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// This declaration tells the compiler that the value is constant.
|
||||
|
||||
// At some point during the gcc 3.1 development the `used' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Since version 3.2, gcc allows marking deprecated functions.
|
||||
|
||||
// Since version 4.5, gcc also allows one to specify the message printed
|
||||
// when a deprecated function is used. clang claims to be gcc 4.2, but
|
||||
// may also support this feature.
|
||||
|
||||
// At some point during the gcc 2.8 development the `format_arg' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
// If several `format_arg' attributes are given for the same function, in
|
||||
// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
|
||||
// all designated arguments are considered.
|
||||
|
||||
// At some point during the gcc 2.97 development the `strfmon' format
|
||||
// attribute for functions was introduced. We don't want to use it
|
||||
// unconditionally (although this would be possible) since it
|
||||
// generates warnings.
|
||||
|
||||
// The nonnull function attribute marks pointer parameters that
|
||||
// must not be NULL.
|
||||
|
||||
// The returns_nonnull function attribute marks the return type of the function
|
||||
// as always being non-null.
|
||||
|
||||
// If fortification mode, we warn about unused results of certain
|
||||
// function calls which can lead to problems.
|
||||
|
||||
// Forces a function to be always inlined.
|
||||
// The Linux kernel defines __always_inline in stddef.h (283d7573), and
|
||||
// it conflicts with this definition. Therefore undefine it first to
|
||||
// allow either header to be included first.
|
||||
|
||||
// Associate error messages with the source location of the call site rather
|
||||
// than with the source location inside the function.
|
||||
|
||||
// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
|
||||
// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
|
||||
// older than 4.3 may define these macros and still not guarantee GNU inlining
|
||||
// semantics.
|
||||
//
|
||||
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
|
||||
// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
|
||||
// __GNUC_GNU_INLINE__ macro definitions.
|
||||
|
||||
// GCC 4.3 and above allow passing all anonymous arguments of an
|
||||
// __extern_always_inline function to some other vararg function.
|
||||
|
||||
// It is possible to compile containing GCC extensions even if GCC is
|
||||
// run in pedantic mode if the uses are carefully marked using the
|
||||
// `__extension__' keyword. But this is not generally available before
|
||||
// version 2.8.
|
||||
|
||||
// __restrict is known in EGCS 1.2 and above, and in clang.
|
||||
// It works also in C++ mode (outside of arrays), but only when spelled
|
||||
// as '__restrict', not 'restrict'.
|
||||
|
||||
// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
|
||||
// array_name[restrict]
|
||||
// GCC 3.1 and clang support this.
|
||||
// This syntax is not usable in C++ mode.
|
||||
|
||||
// Describes a char array whose address can safely be passed as the first
|
||||
// argument to strncpy and strncat, as the char array is not necessarily
|
||||
// a NUL-terminated string.
|
||||
|
||||
// Undefine (also defined in libc-symbols.h).
|
||||
// Copies attributes from the declaration or type referenced by
|
||||
// the argument.
|
||||
|
||||
// The #ifndef lets Gnulib avoid including these on non-glibc
|
||||
// platforms, where the includes typically do not exist.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Properties of long double type. ldbl-128 version.
|
||||
// Copyright (C) 2016-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// long double is distinct from double, so there is nothing to
|
||||
// define here.
|
||||
|
||||
// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
|
||||
// intended for use in preprocessor macros.
|
||||
//
|
||||
// Note: MESSAGE must be a _single_ string; concatenation of string
|
||||
// literals is not supported.
|
||||
|
||||
// Generic selection (ISO C11) is a C-only feature, available in GCC
|
||||
// since version 4.9. Previous versions do not provide generic
|
||||
// selection, even though they might set __STDC_VERSION__ to 201112L,
|
||||
// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
|
||||
// when testing __STDC_VERSION__ for generic selection support.
|
||||
// On the other hand, Clang also defines __GNUC__, so a clang-specific
|
||||
// check is required to enable the use of generic selection.
|
||||
|
||||
// Designates a 1-based positional argument ref-index of pointer type
|
||||
// that can be used to access size-index elements of the pointed-to
|
||||
// array according to access mode, or at least one element when
|
||||
// size-index is not provided:
|
||||
// access (access-mode, <ref-index> [, <size-index>])
|
||||
|
||||
// Designates dealloc as a function to call to deallocate objects
|
||||
// allocated by the declared function.
|
||||
|
||||
// Specify that a function such as setjmp or vfork may return
|
||||
// twice.
|
||||
|
||||
// If we don't have __REDIRECT, prototypes will be missing if
|
||||
// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
|
||||
|
||||
// Decide whether we can define 'extern inline' functions in headers.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
|
||||
// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
|
||||
// that will always return failure (and set errno to ENOSYS).
|
||||
// This file is automatically generated.
|
||||
// This file selects the right generated file of `__stub_FUNCTION' macros
|
||||
// based on the architecture being compiled for.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This file is automatically generated.
|
||||
// It defines a symbol `__stub_FUNCTION' for each function
|
||||
// in the C library which is a stub, meaning it will fail
|
||||
// every time called, usually setting errno to ENOSYS.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// Convenience types.
|
||||
type X__u_char = uint8 /* types.h:31:23 */
|
||||
type X__u_short = uint16 /* types.h:32:28 */
|
||||
type X__u_int = uint32 /* types.h:33:22 */
|
||||
type X__u_long = uint64 /* types.h:34:27 */
|
||||
|
||||
// Fixed-size types, underlying types depend on word size and compiler.
|
||||
type X__int8_t = int8 /* types.h:37:21 */
|
||||
type X__uint8_t = uint8 /* types.h:38:23 */
|
||||
type X__int16_t = int16 /* types.h:39:26 */
|
||||
type X__uint16_t = uint16 /* types.h:40:28 */
|
||||
type X__int32_t = int32 /* types.h:41:20 */
|
||||
type X__uint32_t = uint32 /* types.h:42:22 */
|
||||
type X__int64_t = int64 /* types.h:44:25 */
|
||||
type X__uint64_t = uint64 /* types.h:45:27 */
|
||||
|
||||
// Smallest types with at least a given width.
|
||||
type X__int_least8_t = X__int8_t /* types.h:52:18 */
|
||||
type X__uint_least8_t = X__uint8_t /* types.h:53:19 */
|
||||
type X__int_least16_t = X__int16_t /* types.h:54:19 */
|
||||
type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
|
||||
type X__int_least32_t = X__int32_t /* types.h:56:19 */
|
||||
type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
|
||||
type X__int_least64_t = X__int64_t /* types.h:58:19 */
|
||||
type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
|
||||
|
||||
// quad_t is also 64 bits.
|
||||
type X__quad_t = int64 /* types.h:63:18 */
|
||||
type X__u_quad_t = uint64 /* types.h:64:27 */
|
||||
|
||||
// Largest integral types.
|
||||
type X__intmax_t = int64 /* types.h:72:18 */
|
||||
type X__uintmax_t = uint64 /* types.h:73:27 */
|
||||
|
||||
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
|
||||
// macros for each of the OS types we define below. The definitions
|
||||
// of those macros must use the following macros for underlying types.
|
||||
// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
||||
// variants of each of the following integer types on this machine.
|
||||
//
|
||||
// 16 -- "natural" 16-bit type (always short)
|
||||
// 32 -- "natural" 32-bit type (always int)
|
||||
// 64 -- "natural" 64-bit type (long or long long)
|
||||
// LONG32 -- 32-bit type, traditionally long
|
||||
// QUAD -- 64-bit type, traditionally long long
|
||||
// WORD -- natural type of __WORDSIZE bits (int or long)
|
||||
// LONGWORD -- type of __WORDSIZE bits, traditionally long
|
||||
//
|
||||
// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
||||
// conventional uses of `long' or `long long' type modifiers match the
|
||||
// types we define, even when a less-adorned type would be the same size.
|
||||
// This matters for (somewhat) portably writing printf/scanf formats for
|
||||
// these types, where using the appropriate l or ll format modifiers can
|
||||
// make the typedefs and the formats match up across all GNU platforms. If
|
||||
// we used `long' when it's 64 bits where `long long' is expected, then the
|
||||
// compiler would warn about the formats not matching the argument types,
|
||||
// and the programmer changing them to shut up the compiler would break the
|
||||
// program's portability.
|
||||
//
|
||||
// Here we assume what is presently the case in all the GCC configurations
|
||||
// we support: long long is always 64 bits, long is always word/address size,
|
||||
// and int is always 32 bits.
|
||||
|
||||
// No need to mark the typedef with __extension__.
|
||||
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
|
||||
// Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// See <bits/types.h> for the meaning of these macros. This file exists so
|
||||
// that <bits/types.h> need not vary across different GNU platforms.
|
||||
|
||||
// Tell the libc code that off_t and off64_t are actually the same type
|
||||
// for all ABI purposes, even if possibly expressed as different base types
|
||||
// for C type-checking purposes.
|
||||
|
||||
// Same for ino_t and ino64_t.
|
||||
|
||||
// And for __rlim_t and __rlim64_t.
|
||||
|
||||
// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
|
||||
|
||||
// And for getitimer, setitimer and rusage
|
||||
|
||||
// Number of descriptors that can fit in an `fd_set'.
|
||||
|
||||
// bits/time64.h -- underlying types for __time64_t. RISC-V version.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Define __TIME64_T_TYPE so that it is always a 64-bit type.
|
||||
|
||||
// If we already have 64-bit time type then use it.
|
||||
|
||||
type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
|
||||
type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
|
||||
type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
|
||||
type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers.
|
||||
type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS).
|
||||
type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks.
|
||||
type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts.
|
||||
type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets.
|
||||
type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
|
||||
type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
|
||||
type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
|
||||
type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
|
||||
type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
|
||||
type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
|
||||
type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
|
||||
type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch.
|
||||
type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
|
||||
type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds.
|
||||
type X__suseconds64_t = int64 /* types.h:163:33 */
|
||||
|
||||
type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address.
|
||||
type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key.
|
||||
|
||||
// Clock ID used in clock and timer functions.
|
||||
type X__clockid_t = int32 /* types.h:169:29 */
|
||||
|
||||
// Timer ID returned by `timer_create'.
|
||||
type X__timer_t = uintptr /* types.h:172:12 */
|
||||
|
||||
// Type to represent block size.
|
||||
type X__blksize_t = int32 /* types.h:175:29 */
|
||||
|
||||
// Types from the Large File Support interface.
|
||||
|
||||
// Type to count number of disk blocks.
|
||||
type X__blkcnt_t = int64 /* types.h:180:28 */
|
||||
type X__blkcnt64_t = int64 /* types.h:181:30 */
|
||||
|
||||
// Type to count file system blocks.
|
||||
type X__fsblkcnt_t = uint64 /* types.h:184:30 */
|
||||
type X__fsblkcnt64_t = uint64 /* types.h:185:32 */
|
||||
|
||||
// Type to count file system nodes.
|
||||
type X__fsfilcnt_t = uint64 /* types.h:188:30 */
|
||||
type X__fsfilcnt64_t = uint64 /* types.h:189:32 */
|
||||
|
||||
// Type of miscellaneous file system fields.
|
||||
type X__fsword_t = int64 /* types.h:192:28 */
|
||||
|
||||
type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error.
|
||||
|
||||
// Signed long type used in system calls.
|
||||
type X__syscall_slong_t = int64 /* types.h:197:33 */
|
||||
// Unsigned long type used in system calls.
|
||||
type X__syscall_ulong_t = uint64 /* types.h:199:33 */
|
||||
|
||||
// These few don't really vary by system, they always correspond
|
||||
// to one of the other defined types.
|
||||
type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS).
|
||||
type X__caddr_t = uintptr /* types.h:204:14 */
|
||||
|
||||
// Duplicates info from stdint.h but this is used in unistd.h.
|
||||
type X__intptr_t = int64 /* types.h:207:25 */
|
||||
|
||||
// Duplicate info from sys/socket.h.
|
||||
type X__socklen_t = uint32 /* types.h:210:23 */
|
||||
|
||||
// C99: An integer type that can be accessed as an atomic entity,
|
||||
// even in the presence of asynchronous interrupts.
|
||||
// It is not currently necessary for this to be machine-specific.
|
||||
type X__sig_atomic_t = int32 /* types.h:215:13 */
|
||||
|
||||
// Wide character type.
|
||||
// Locale-writers should change this as necessary to
|
||||
// be big enough to hold unique values not between 0 and 127,
|
||||
// and not (wchar_t) -1, for each defined multibyte character.
|
||||
|
||||
// Define this type if we are doing the whole job,
|
||||
// or if we want this type in particular.
|
||||
|
||||
// A null pointer constant.
|
||||
|
||||
// The Single Unix specification says that some more types are
|
||||
// available here.
|
||||
type Gid_t = X__gid_t /* pwd.h:38:17 */
|
||||
|
||||
type Uid_t = X__uid_t /* pwd.h:43:17 */
|
||||
|
||||
// A record in the user database.
|
||||
type Passwd = struct {
|
||||
Fpw_name uintptr
|
||||
Fpw_passwd uintptr
|
||||
Fpw_uid X__uid_t
|
||||
Fpw_gid X__gid_t
|
||||
Fpw_gecos uintptr
|
||||
Fpw_dir uintptr
|
||||
Fpw_shell uintptr
|
||||
} /* pwd.h:49:1 */
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo signal/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o signal/signal_linux_riscv64.go -pkgname signal', DO NOT EDIT.
|
||||
|
||||
package signal
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,12 @@
|
||||
// Copyright 2020 The Libc Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package signal
|
||||
|
||||
const (
|
||||
// /usr/include/asm-generic/signal-defs.h:24:#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
|
||||
SIG_DFL = 0
|
||||
// /usr/include/asm-generic/signal-defs.h:25:#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
|
||||
SIG_IGN = 1
|
||||
)
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo stdio/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_linux_riscv64.go -pkgname stdio', DO NOT EDIT.
|
||||
|
||||
package stdio
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,589 @@
|
||||
// Code generated by 'ccgo stdio/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdio/stdio_linux_riscv64.go -pkgname stdio', DO NOT EDIT.
|
||||
|
||||
package stdio
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
BUFSIZ = 8192
|
||||
EOF = -1
|
||||
FILENAME_MAX = 4096
|
||||
FOPEN_MAX = 16
|
||||
L_ctermid = 9
|
||||
L_tmpnam = 20
|
||||
P_tmpdir = "/tmp"
|
||||
SEEK_CUR = 1
|
||||
SEEK_END = 2
|
||||
SEEK_SET = 0
|
||||
TMP_MAX = 238328
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_BITS_FLOATN_COMMON_H = 0
|
||||
X_BITS_FLOATN_H = 0
|
||||
X_BITS_STDIO_LIM_H = 1
|
||||
X_BITS_TIME64_H = 1
|
||||
X_BITS_TYPESIZES_H = 1
|
||||
X_BITS_TYPES_H = 1
|
||||
X_BSD_SIZE_T_ = 0
|
||||
X_BSD_SIZE_T_DEFINED_ = 0
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_GCC_SIZE_T = 0
|
||||
X_IOFBF = 0
|
||||
X_IOLBF = 1
|
||||
X_IONBF = 2
|
||||
X_IO_EOF_SEEN = 0x0010
|
||||
X_IO_ERR_SEEN = 0x0020
|
||||
X_IO_USER_LOCK = 0x8000
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_SIZET_ = 0
|
||||
X_SIZE_T = 0
|
||||
X_SIZE_T_ = 0
|
||||
X_SIZE_T_DECLARED = 0
|
||||
X_SIZE_T_DEFINED = 0
|
||||
X_SIZE_T_DEFINED_ = 0
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_STDIO_H = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
X_SYS_SIZE_T_H = 0
|
||||
X_T_SIZE = 0
|
||||
X_T_SIZE_ = 0
|
||||
X_VA_LIST_DEFINED = 0
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
// Wide character type.
|
||||
// Locale-writers should change this as necessary to
|
||||
// be big enough to hold unique values not between 0 and 127,
|
||||
// and not (wchar_t) -1, for each defined multibyte character.
|
||||
|
||||
// Define this type if we are doing the whole job,
|
||||
// or if we want this type in particular.
|
||||
|
||||
// A null pointer constant.
|
||||
|
||||
// Copyright (C) 1989-2021 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of GCC.
|
||||
//
|
||||
// GCC is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
//
|
||||
// GCC is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// ISO C Standard: 7.15 Variable arguments <stdarg.h>
|
||||
|
||||
// Define __gnuc_va_list.
|
||||
|
||||
type X__gnuc_va_list = X__builtin_va_list /* stdarg.h:40:27 */
|
||||
|
||||
// Define the standard macros for the user,
|
||||
// if this invocation was from the user program.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// Convenience types.
|
||||
type X__u_char = uint8 /* types.h:31:23 */
|
||||
type X__u_short = uint16 /* types.h:32:28 */
|
||||
type X__u_int = uint32 /* types.h:33:22 */
|
||||
type X__u_long = uint64 /* types.h:34:27 */
|
||||
|
||||
// Fixed-size types, underlying types depend on word size and compiler.
|
||||
type X__int8_t = int8 /* types.h:37:21 */
|
||||
type X__uint8_t = uint8 /* types.h:38:23 */
|
||||
type X__int16_t = int16 /* types.h:39:26 */
|
||||
type X__uint16_t = uint16 /* types.h:40:28 */
|
||||
type X__int32_t = int32 /* types.h:41:20 */
|
||||
type X__uint32_t = uint32 /* types.h:42:22 */
|
||||
type X__int64_t = int64 /* types.h:44:25 */
|
||||
type X__uint64_t = uint64 /* types.h:45:27 */
|
||||
|
||||
// Smallest types with at least a given width.
|
||||
type X__int_least8_t = X__int8_t /* types.h:52:18 */
|
||||
type X__uint_least8_t = X__uint8_t /* types.h:53:19 */
|
||||
type X__int_least16_t = X__int16_t /* types.h:54:19 */
|
||||
type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
|
||||
type X__int_least32_t = X__int32_t /* types.h:56:19 */
|
||||
type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
|
||||
type X__int_least64_t = X__int64_t /* types.h:58:19 */
|
||||
type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
|
||||
|
||||
// quad_t is also 64 bits.
|
||||
type X__quad_t = int64 /* types.h:63:18 */
|
||||
type X__u_quad_t = uint64 /* types.h:64:27 */
|
||||
|
||||
// Largest integral types.
|
||||
type X__intmax_t = int64 /* types.h:72:18 */
|
||||
type X__uintmax_t = uint64 /* types.h:73:27 */
|
||||
|
||||
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
|
||||
// macros for each of the OS types we define below. The definitions
|
||||
// of those macros must use the following macros for underlying types.
|
||||
// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
||||
// variants of each of the following integer types on this machine.
|
||||
//
|
||||
// 16 -- "natural" 16-bit type (always short)
|
||||
// 32 -- "natural" 32-bit type (always int)
|
||||
// 64 -- "natural" 64-bit type (long or long long)
|
||||
// LONG32 -- 32-bit type, traditionally long
|
||||
// QUAD -- 64-bit type, traditionally long long
|
||||
// WORD -- natural type of __WORDSIZE bits (int or long)
|
||||
// LONGWORD -- type of __WORDSIZE bits, traditionally long
|
||||
//
|
||||
// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
||||
// conventional uses of `long' or `long long' type modifiers match the
|
||||
// types we define, even when a less-adorned type would be the same size.
|
||||
// This matters for (somewhat) portably writing printf/scanf formats for
|
||||
// these types, where using the appropriate l or ll format modifiers can
|
||||
// make the typedefs and the formats match up across all GNU platforms. If
|
||||
// we used `long' when it's 64 bits where `long long' is expected, then the
|
||||
// compiler would warn about the formats not matching the argument types,
|
||||
// and the programmer changing them to shut up the compiler would break the
|
||||
// program's portability.
|
||||
//
|
||||
// Here we assume what is presently the case in all the GCC configurations
|
||||
// we support: long long is always 64 bits, long is always word/address size,
|
||||
// and int is always 32 bits.
|
||||
|
||||
// No need to mark the typedef with __extension__.
|
||||
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
|
||||
// Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// See <bits/types.h> for the meaning of these macros. This file exists so
|
||||
// that <bits/types.h> need not vary across different GNU platforms.
|
||||
|
||||
// Tell the libc code that off_t and off64_t are actually the same type
|
||||
// for all ABI purposes, even if possibly expressed as different base types
|
||||
// for C type-checking purposes.
|
||||
|
||||
// Same for ino_t and ino64_t.
|
||||
|
||||
// And for __rlim_t and __rlim64_t.
|
||||
|
||||
// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
|
||||
|
||||
// And for getitimer, setitimer and rusage
|
||||
|
||||
// Number of descriptors that can fit in an `fd_set'.
|
||||
|
||||
// bits/time64.h -- underlying types for __time64_t. RISC-V version.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Define __TIME64_T_TYPE so that it is always a 64-bit type.
|
||||
|
||||
// If we already have 64-bit time type then use it.
|
||||
|
||||
type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
|
||||
type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
|
||||
type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
|
||||
type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers.
|
||||
type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS).
|
||||
type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks.
|
||||
type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts.
|
||||
type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets.
|
||||
type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
|
||||
type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
|
||||
type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
|
||||
type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
|
||||
type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
|
||||
type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
|
||||
type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
|
||||
type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch.
|
||||
type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
|
||||
type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds.
|
||||
type X__suseconds64_t = int64 /* types.h:163:33 */
|
||||
|
||||
type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address.
|
||||
type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key.
|
||||
|
||||
// Clock ID used in clock and timer functions.
|
||||
type X__clockid_t = int32 /* types.h:169:29 */
|
||||
|
||||
// Timer ID returned by `timer_create'.
|
||||
type X__timer_t = uintptr /* types.h:172:12 */
|
||||
|
||||
// Type to represent block size.
|
||||
type X__blksize_t = int32 /* types.h:175:29 */
|
||||
|
||||
// Types from the Large File Support interface.
|
||||
|
||||
// Type to count number of disk blocks.
|
||||
type X__blkcnt_t = int64 /* types.h:180:28 */
|
||||
type X__blkcnt64_t = int64 /* types.h:181:30 */
|
||||
|
||||
// Type to count file system blocks.
|
||||
type X__fsblkcnt_t = uint64 /* types.h:184:30 */
|
||||
type X__fsblkcnt64_t = uint64 /* types.h:185:32 */
|
||||
|
||||
// Type to count file system nodes.
|
||||
type X__fsfilcnt_t = uint64 /* types.h:188:30 */
|
||||
type X__fsfilcnt64_t = uint64 /* types.h:189:32 */
|
||||
|
||||
// Type of miscellaneous file system fields.
|
||||
type X__fsword_t = int64 /* types.h:192:28 */
|
||||
|
||||
type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error.
|
||||
|
||||
// Signed long type used in system calls.
|
||||
type X__syscall_slong_t = int64 /* types.h:197:33 */
|
||||
// Unsigned long type used in system calls.
|
||||
type X__syscall_ulong_t = uint64 /* types.h:199:33 */
|
||||
|
||||
// These few don't really vary by system, they always correspond
|
||||
// to one of the other defined types.
|
||||
type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS).
|
||||
type X__caddr_t = uintptr /* types.h:204:14 */
|
||||
|
||||
// Duplicates info from stdint.h but this is used in unistd.h.
|
||||
type X__intptr_t = int64 /* types.h:207:25 */
|
||||
|
||||
// Duplicate info from sys/socket.h.
|
||||
type X__socklen_t = uint32 /* types.h:210:23 */
|
||||
|
||||
// C99: An integer type that can be accessed as an atomic entity,
|
||||
// even in the presence of asynchronous interrupts.
|
||||
// It is not currently necessary for this to be machine-specific.
|
||||
type X__sig_atomic_t = int32 /* types.h:215:13 */
|
||||
|
||||
// Seconds since the Epoch, visible to user code when time_t is too
|
||||
// narrow only for consistency with the old way of widening too-narrow
|
||||
// types. User code should never use __time64_t.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Integral type unchanged by default argument promotions that can
|
||||
// hold any value corresponding to members of the extended character
|
||||
// set, as well as at least one value that does not correspond to any
|
||||
// member of the extended character set.
|
||||
|
||||
// Conversion state information.
|
||||
type X__mbstate_t = struct {
|
||||
F__count int32
|
||||
F__value struct{ F__wch uint32 }
|
||||
} /* __mbstate_t.h:21:3 */
|
||||
|
||||
// The tag name of this struct is _G_fpos_t to preserve historic
|
||||
// C++ mangled names for functions taking fpos_t arguments.
|
||||
// That name should not be used in new code.
|
||||
type X_G_fpos_t = struct {
|
||||
F__pos X__off_t
|
||||
F__state X__mbstate_t
|
||||
} /* __fpos_t.h:10:9 */
|
||||
|
||||
// The tag name of this struct is _G_fpos_t to preserve historic
|
||||
// C++ mangled names for functions taking fpos_t arguments.
|
||||
// That name should not be used in new code.
|
||||
type X__fpos_t = X_G_fpos_t /* __fpos_t.h:14:3 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// The tag name of this struct is _G_fpos64_t to preserve historic
|
||||
// C++ mangled names for functions taking fpos_t and/or fpos64_t
|
||||
// arguments. That name should not be used in new code.
|
||||
type X_G_fpos64_t = struct {
|
||||
F__pos X__off64_t
|
||||
F__state X__mbstate_t
|
||||
} /* __fpos64_t.h:10:9 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// The tag name of this struct is _G_fpos64_t to preserve historic
|
||||
// C++ mangled names for functions taking fpos_t and/or fpos64_t
|
||||
// arguments. That name should not be used in new code.
|
||||
type X__fpos64_t = X_G_fpos64_t /* __fpos64_t.h:14:3 */
|
||||
|
||||
type X_IO_FILE = struct {
|
||||
F_flags int32
|
||||
F__ccgo_pad1 [4]byte
|
||||
F_IO_read_ptr uintptr
|
||||
F_IO_read_end uintptr
|
||||
F_IO_read_base uintptr
|
||||
F_IO_write_base uintptr
|
||||
F_IO_write_ptr uintptr
|
||||
F_IO_write_end uintptr
|
||||
F_IO_buf_base uintptr
|
||||
F_IO_buf_end uintptr
|
||||
F_IO_save_base uintptr
|
||||
F_IO_backup_base uintptr
|
||||
F_IO_save_end uintptr
|
||||
F_markers uintptr
|
||||
F_chain uintptr
|
||||
F_fileno int32
|
||||
F_flags2 int32
|
||||
F_old_offset X__off_t
|
||||
F_cur_column uint16
|
||||
F_vtable_offset int8
|
||||
F_shortbuf [1]uint8
|
||||
F__ccgo_pad2 [4]byte
|
||||
F_lock uintptr
|
||||
F_offset X__off64_t
|
||||
F_codecvt uintptr
|
||||
F_wide_data uintptr
|
||||
F_freeres_list uintptr
|
||||
F_freeres_buf uintptr
|
||||
F__pad5 Size_t
|
||||
F_mode int32
|
||||
F_unused2 [20]uint8
|
||||
} /* __FILE.h:4:1 */
|
||||
|
||||
type X__FILE = X_IO_FILE /* __FILE.h:5:25 */
|
||||
|
||||
// The opaque type of streams. This is the definition used elsewhere.
|
||||
type FILE = X_IO_FILE /* FILE.h:7:25 */
|
||||
|
||||
// These macros are used by bits/stdio.h and internal headers.
|
||||
|
||||
// Many more flag bits are defined internally.
|
||||
|
||||
type Va_list = X__gnuc_va_list /* stdio.h:52:24 */
|
||||
|
||||
type Off_t = X__off64_t /* stdio.h:65:19 */
|
||||
|
||||
type Ssize_t = X__ssize_t /* stdio.h:77:19 */
|
||||
|
||||
// The type of the second argument to `fgetpos' and `fsetpos'.
|
||||
type Fpos_t = X__fpos64_t /* stdio.h:86:20 */
|
||||
|
||||
// If we are compiling with optimizing read this file. It contains
|
||||
// several optimizing inline functions and macros.
|
||||
|
||||
// Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
|
||||
// Copyright (C) 2017-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo stdlib/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o stdlib/stdlib_linux_riscv64.go -pkgname stdlib', DO NOT EDIT.
|
||||
|
||||
package stdlib
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo sys/socket/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/socket/socket_linux_riscv64.go -pkgname socket', DO NOT EDIT.
|
||||
|
||||
package socket
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo sys/stat/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/stat/stat_linux_riscv64.go -pkgname stat', DO NOT EDIT.
|
||||
|
||||
package stat
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo sys/types/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o sys/types/types_linux_riscv64.go -pkgname types', DO NOT EDIT.
|
||||
|
||||
package types
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo termios/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o termios/termios_linux_riscv64.go -pkgname termios', DO NOT EDIT.
|
||||
|
||||
package termios
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo time/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_linux_riscv64.go -pkgname time', DO NOT EDIT.
|
||||
|
||||
package time
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,711 @@
|
||||
// Code generated by 'ccgo time/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o time/time_linux_riscv64.go -pkgname time', DO NOT EDIT.
|
||||
|
||||
package time
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
CLOCK_BOOTTIME = 7
|
||||
CLOCK_BOOTTIME_ALARM = 9
|
||||
CLOCK_MONOTONIC = 1
|
||||
CLOCK_MONOTONIC_COARSE = 6
|
||||
CLOCK_MONOTONIC_RAW = 4
|
||||
CLOCK_PROCESS_CPUTIME_ID = 2
|
||||
CLOCK_REALTIME = 0
|
||||
CLOCK_REALTIME_ALARM = 8
|
||||
CLOCK_REALTIME_COARSE = 5
|
||||
CLOCK_TAI = 11
|
||||
CLOCK_THREAD_CPUTIME_ID = 3
|
||||
TIMER_ABSTIME = 1
|
||||
TIME_UTC = 1
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_BITS_ENDIANNESS_H = 1
|
||||
X_BITS_ENDIAN_H = 1
|
||||
X_BITS_TIME64_H = 1
|
||||
X_BITS_TIME_H = 1
|
||||
X_BITS_TYPESIZES_H = 1
|
||||
X_BITS_TYPES_H = 1
|
||||
X_BITS_TYPES_LOCALE_T_H = 1
|
||||
X_BITS_TYPES___LOCALE_T_H = 1
|
||||
X_BSD_SIZE_T_ = 0
|
||||
X_BSD_SIZE_T_DEFINED_ = 0
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_GCC_SIZE_T = 0
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_SIZET_ = 0
|
||||
X_SIZE_T = 0
|
||||
X_SIZE_T_ = 0
|
||||
X_SIZE_T_DECLARED = 0
|
||||
X_SIZE_T_DEFINED = 0
|
||||
X_SIZE_T_DEFINED_ = 0
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_STRUCT_TIMESPEC = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
X_SYS_SIZE_T_H = 0
|
||||
X_TIME_H = 1
|
||||
X_T_SIZE = 0
|
||||
X_T_SIZE_ = 0
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
// Wide character type.
|
||||
// Locale-writers should change this as necessary to
|
||||
// be big enough to hold unique values not between 0 and 127,
|
||||
// and not (wchar_t) -1, for each defined multibyte character.
|
||||
|
||||
// Define this type if we are doing the whole job,
|
||||
// or if we want this type in particular.
|
||||
|
||||
// A null pointer constant.
|
||||
|
||||
// This defines CLOCKS_PER_SEC, which is the number of processor clock
|
||||
// ticks per second, and possibly a number of other constants.
|
||||
// System-dependent timing definitions. Linux version.
|
||||
// Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <time.h> instead.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// Convenience types.
|
||||
type X__u_char = uint8 /* types.h:31:23 */
|
||||
type X__u_short = uint16 /* types.h:32:28 */
|
||||
type X__u_int = uint32 /* types.h:33:22 */
|
||||
type X__u_long = uint64 /* types.h:34:27 */
|
||||
|
||||
// Fixed-size types, underlying types depend on word size and compiler.
|
||||
type X__int8_t = int8 /* types.h:37:21 */
|
||||
type X__uint8_t = uint8 /* types.h:38:23 */
|
||||
type X__int16_t = int16 /* types.h:39:26 */
|
||||
type X__uint16_t = uint16 /* types.h:40:28 */
|
||||
type X__int32_t = int32 /* types.h:41:20 */
|
||||
type X__uint32_t = uint32 /* types.h:42:22 */
|
||||
type X__int64_t = int64 /* types.h:44:25 */
|
||||
type X__uint64_t = uint64 /* types.h:45:27 */
|
||||
|
||||
// Smallest types with at least a given width.
|
||||
type X__int_least8_t = X__int8_t /* types.h:52:18 */
|
||||
type X__uint_least8_t = X__uint8_t /* types.h:53:19 */
|
||||
type X__int_least16_t = X__int16_t /* types.h:54:19 */
|
||||
type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
|
||||
type X__int_least32_t = X__int32_t /* types.h:56:19 */
|
||||
type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
|
||||
type X__int_least64_t = X__int64_t /* types.h:58:19 */
|
||||
type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
|
||||
|
||||
// quad_t is also 64 bits.
|
||||
type X__quad_t = int64 /* types.h:63:18 */
|
||||
type X__u_quad_t = uint64 /* types.h:64:27 */
|
||||
|
||||
// Largest integral types.
|
||||
type X__intmax_t = int64 /* types.h:72:18 */
|
||||
type X__uintmax_t = uint64 /* types.h:73:27 */
|
||||
|
||||
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
|
||||
// macros for each of the OS types we define below. The definitions
|
||||
// of those macros must use the following macros for underlying types.
|
||||
// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
||||
// variants of each of the following integer types on this machine.
|
||||
//
|
||||
// 16 -- "natural" 16-bit type (always short)
|
||||
// 32 -- "natural" 32-bit type (always int)
|
||||
// 64 -- "natural" 64-bit type (long or long long)
|
||||
// LONG32 -- 32-bit type, traditionally long
|
||||
// QUAD -- 64-bit type, traditionally long long
|
||||
// WORD -- natural type of __WORDSIZE bits (int or long)
|
||||
// LONGWORD -- type of __WORDSIZE bits, traditionally long
|
||||
//
|
||||
// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
||||
// conventional uses of `long' or `long long' type modifiers match the
|
||||
// types we define, even when a less-adorned type would be the same size.
|
||||
// This matters for (somewhat) portably writing printf/scanf formats for
|
||||
// these types, where using the appropriate l or ll format modifiers can
|
||||
// make the typedefs and the formats match up across all GNU platforms. If
|
||||
// we used `long' when it's 64 bits where `long long' is expected, then the
|
||||
// compiler would warn about the formats not matching the argument types,
|
||||
// and the programmer changing them to shut up the compiler would break the
|
||||
// program's portability.
|
||||
//
|
||||
// Here we assume what is presently the case in all the GCC configurations
|
||||
// we support: long long is always 64 bits, long is always word/address size,
|
||||
// and int is always 32 bits.
|
||||
|
||||
// No need to mark the typedef with __extension__.
|
||||
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
|
||||
// Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// See <bits/types.h> for the meaning of these macros. This file exists so
|
||||
// that <bits/types.h> need not vary across different GNU platforms.
|
||||
|
||||
// Tell the libc code that off_t and off64_t are actually the same type
|
||||
// for all ABI purposes, even if possibly expressed as different base types
|
||||
// for C type-checking purposes.
|
||||
|
||||
// Same for ino_t and ino64_t.
|
||||
|
||||
// And for __rlim_t and __rlim64_t.
|
||||
|
||||
// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
|
||||
|
||||
// And for getitimer, setitimer and rusage
|
||||
|
||||
// Number of descriptors that can fit in an `fd_set'.
|
||||
|
||||
// bits/time64.h -- underlying types for __time64_t. RISC-V version.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Define __TIME64_T_TYPE so that it is always a 64-bit type.
|
||||
|
||||
// If we already have 64-bit time type then use it.
|
||||
|
||||
type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
|
||||
type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
|
||||
type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
|
||||
type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers.
|
||||
type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS).
|
||||
type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks.
|
||||
type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts.
|
||||
type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets.
|
||||
type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
|
||||
type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
|
||||
type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
|
||||
type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
|
||||
type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
|
||||
type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
|
||||
type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
|
||||
type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch.
|
||||
type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
|
||||
type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds.
|
||||
type X__suseconds64_t = int64 /* types.h:163:33 */
|
||||
|
||||
type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address.
|
||||
type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key.
|
||||
|
||||
// Clock ID used in clock and timer functions.
|
||||
type X__clockid_t = int32 /* types.h:169:29 */
|
||||
|
||||
// Timer ID returned by `timer_create'.
|
||||
type X__timer_t = uintptr /* types.h:172:12 */
|
||||
|
||||
// Type to represent block size.
|
||||
type X__blksize_t = int32 /* types.h:175:29 */
|
||||
|
||||
// Types from the Large File Support interface.
|
||||
|
||||
// Type to count number of disk blocks.
|
||||
type X__blkcnt_t = int64 /* types.h:180:28 */
|
||||
type X__blkcnt64_t = int64 /* types.h:181:30 */
|
||||
|
||||
// Type to count file system blocks.
|
||||
type X__fsblkcnt_t = uint64 /* types.h:184:30 */
|
||||
type X__fsblkcnt64_t = uint64 /* types.h:185:32 */
|
||||
|
||||
// Type to count file system nodes.
|
||||
type X__fsfilcnt_t = uint64 /* types.h:188:30 */
|
||||
type X__fsfilcnt64_t = uint64 /* types.h:189:32 */
|
||||
|
||||
// Type of miscellaneous file system fields.
|
||||
type X__fsword_t = int64 /* types.h:192:28 */
|
||||
|
||||
type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error.
|
||||
|
||||
// Signed long type used in system calls.
|
||||
type X__syscall_slong_t = int64 /* types.h:197:33 */
|
||||
// Unsigned long type used in system calls.
|
||||
type X__syscall_ulong_t = uint64 /* types.h:199:33 */
|
||||
|
||||
// These few don't really vary by system, they always correspond
|
||||
// to one of the other defined types.
|
||||
type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS).
|
||||
type X__caddr_t = uintptr /* types.h:204:14 */
|
||||
|
||||
// Duplicates info from stdint.h but this is used in unistd.h.
|
||||
type X__intptr_t = int64 /* types.h:207:25 */
|
||||
|
||||
// Duplicate info from sys/socket.h.
|
||||
type X__socklen_t = uint32 /* types.h:210:23 */
|
||||
|
||||
// C99: An integer type that can be accessed as an atomic entity,
|
||||
// even in the presence of asynchronous interrupts.
|
||||
// It is not currently necessary for this to be machine-specific.
|
||||
type X__sig_atomic_t = int32 /* types.h:215:13 */
|
||||
|
||||
// Seconds since the Epoch, visible to user code when time_t is too
|
||||
// narrow only for consistency with the old way of widening too-narrow
|
||||
// types. User code should never use __time64_t.
|
||||
|
||||
// ISO/IEC 9899:1999 7.23.1: Components of time
|
||||
// The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
|
||||
// the number per second of the value returned by the `clock' function.
|
||||
// CAE XSH, Issue 4, Version 2: <time.h>
|
||||
// The value of CLOCKS_PER_SEC is required to be 1 million on all
|
||||
// XSI-conformant systems.
|
||||
|
||||
// Identifier for system-wide realtime clock.
|
||||
// Monotonic system-wide clock.
|
||||
// High-resolution timer from the CPU.
|
||||
// Thread-specific CPU-time clock.
|
||||
// Monotonic system-wide clock, not adjusted for frequency scaling.
|
||||
// Identifier for system-wide realtime clock, updated only on ticks.
|
||||
// Monotonic system-wide clock, updated only on ticks.
|
||||
// Monotonic system-wide clock that includes time spent in suspension.
|
||||
// Like CLOCK_REALTIME but also wakes suspended system.
|
||||
// Like CLOCK_BOOTTIME but also wakes suspended system.
|
||||
// Like CLOCK_REALTIME but in International Atomic Time.
|
||||
|
||||
// Flag to indicate time is absolute.
|
||||
|
||||
// Many of the typedefs and structs whose official home is this header
|
||||
// may also need to be defined by other headers.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Returned by `clock'.
|
||||
type Clock_t = X__clock_t /* clock_t.h:7:19 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Returned by `time'.
|
||||
type Time_t = X__time_t /* time_t.h:10:18 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// ISO C `broken-down time' structure.
|
||||
type Tm = struct {
|
||||
Ftm_sec int32
|
||||
Ftm_min int32
|
||||
Ftm_hour int32
|
||||
Ftm_mday int32
|
||||
Ftm_mon int32
|
||||
Ftm_year int32
|
||||
Ftm_wday int32
|
||||
Ftm_yday int32
|
||||
Ftm_isdst int32
|
||||
F__ccgo_pad1 [4]byte
|
||||
Ftm_gmtoff int64
|
||||
Ftm_zone uintptr
|
||||
} /* struct_tm.h:7:1 */
|
||||
|
||||
// NB: Include guard matches what <linux/time.h> uses.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Endian macros for string.h functions
|
||||
// Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
// Definitions for byte order, according to significance of bytes,
|
||||
// from low addresses to high addresses. The value is what you get by
|
||||
// putting '4' in the most significant byte, '3' in the second most
|
||||
// significant byte, '2' in the second least significant byte, and '1'
|
||||
// in the least significant byte, and then writing down one digit for
|
||||
// each byte, starting with the byte at the lowest address at the left,
|
||||
// and proceeding to the byte with the highest address at the right.
|
||||
|
||||
// This file defines `__BYTE_ORDER' for the particular machine.
|
||||
|
||||
// RISC-V is little-endian.
|
||||
|
||||
// Some machines may need to use a different endianness for floating point
|
||||
// values.
|
||||
|
||||
// POSIX.1b structure for a time value. This is like a `struct timeval' but
|
||||
// has nanoseconds instead of microseconds.
|
||||
type Timespec = struct {
|
||||
Ftv_sec X__time_t
|
||||
Ftv_nsec X__syscall_slong_t
|
||||
} /* struct_timespec.h:11:1 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Clock ID used in clock and timer functions.
|
||||
type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Timer ID returned by `timer_create'.
|
||||
type Timer_t = X__timer_t /* timer_t.h:7:19 */
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// NB: Include guard matches what <linux/time.h> uses.
|
||||
|
||||
// POSIX.1b structure for timer start values and intervals.
|
||||
type Itimerspec = struct {
|
||||
Fit_interval struct {
|
||||
Ftv_sec X__time_t
|
||||
Ftv_nsec X__syscall_slong_t
|
||||
}
|
||||
Fit_value struct {
|
||||
Ftv_sec X__time_t
|
||||
Ftv_nsec X__syscall_slong_t
|
||||
}
|
||||
} /* struct_itimerspec.h:8:1 */
|
||||
|
||||
type Pid_t = X__pid_t /* time.h:54:17 */
|
||||
|
||||
// Definition of locale_t.
|
||||
// Copyright (C) 2017-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Definition of struct __locale_struct and __locale_t.
|
||||
// Copyright (C) 1997-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
// Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// POSIX.1-2008: the locale_t type, representing a locale context
|
||||
// (implementation-namespace version). This type should be treated
|
||||
// as opaque by applications; some details are exposed for the sake of
|
||||
// efficiency in e.g. ctype functions.
|
||||
|
||||
type X__locale_struct = struct {
|
||||
F__locales [13]uintptr
|
||||
F__ctype_b uintptr
|
||||
F__ctype_tolower uintptr
|
||||
F__ctype_toupper uintptr
|
||||
F__names [13]uintptr
|
||||
} /* __locale_t.h:28:1 */
|
||||
|
||||
type X__locale_t = uintptr /* __locale_t.h:42:32 */
|
||||
|
||||
type Locale_t = X__locale_t /* locale_t.h:24:20 */
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo unistd/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o unistd/unistd_linux_riscv64.go -pkgname unistd', DO NOT EDIT.
|
||||
|
||||
package unistd
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo utime/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_linux_riscv64.go -pkgname utime', DO NOT EDIT.
|
||||
|
||||
package utime
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
@ -0,0 +1,951 @@
|
||||
// Code generated by 'ccgo utime/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o utime/utime_linux_riscv64.go -pkgname utime', DO NOT EDIT.
|
||||
|
||||
package utime
|
||||
|
||||
import (
|
||||
"math"
|
||||
"reflect"
|
||||
"sync/atomic"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
var _ = math.Pi
|
||||
var _ reflect.Kind
|
||||
var _ atomic.Value
|
||||
var _ unsafe.Pointer
|
||||
|
||||
const (
|
||||
X_ATFILE_SOURCE = 1
|
||||
X_BITS_TIME64_H = 1
|
||||
X_BITS_TYPESIZES_H = 1
|
||||
X_BITS_TYPES_H = 1
|
||||
X_DEFAULT_SOURCE = 1
|
||||
X_FEATURES_H = 1
|
||||
X_FILE_OFFSET_BITS = 64
|
||||
X_LP64 = 1
|
||||
X_POSIX_C_SOURCE = 200809
|
||||
X_POSIX_SOURCE = 1
|
||||
X_STDC_PREDEF_H = 1
|
||||
X_SYS_CDEFS_H = 1
|
||||
X_UTIME_H = 1
|
||||
Linux = 1
|
||||
Unix = 1
|
||||
)
|
||||
|
||||
type Ptrdiff_t = int64 /* <builtin>:3:26 */
|
||||
|
||||
type Size_t = uint64 /* <builtin>:9:23 */
|
||||
|
||||
type Wchar_t = int32 /* <builtin>:15:24 */
|
||||
|
||||
type X__int128_t = struct {
|
||||
Flo int64
|
||||
Fhi int64
|
||||
} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128
|
||||
type X__uint128_t = struct {
|
||||
Flo uint64
|
||||
Fhi uint64
|
||||
} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128
|
||||
|
||||
type X__builtin_va_list = uintptr /* <builtin>:46:14 */
|
||||
type X__float128 = float64 /* <builtin>:47:21 */
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// These are defined by the user (or the compiler)
|
||||
// to specify the desired environment:
|
||||
//
|
||||
// __STRICT_ANSI__ ISO Standard C.
|
||||
// _ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
|
||||
// _ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
|
||||
// _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X.
|
||||
// __STDC_WANT_LIB_EXT2__
|
||||
// Extensions to ISO C99 from TR 27431-2:2010.
|
||||
// __STDC_WANT_IEC_60559_BFP_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-1:2014.
|
||||
// __STDC_WANT_IEC_60559_FUNCS_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-4:2015.
|
||||
// __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||
// Extensions to ISO C11 from TS 18661-3:2015.
|
||||
// __STDC_WANT_IEC_60559_EXT__
|
||||
// ISO C2X interfaces defined only in Annex F.
|
||||
//
|
||||
// _POSIX_SOURCE IEEE Std 1003.1.
|
||||
// _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
|
||||
// if >=199309L, add IEEE Std 1003.1b-1993;
|
||||
// if >=199506L, add IEEE Std 1003.1c-1995;
|
||||
// if >=200112L, all of IEEE 1003.1-2004
|
||||
// if >=200809L, all of IEEE 1003.1-2008
|
||||
// _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
|
||||
// Single Unix conformance is wanted, to 600 for the
|
||||
// sixth revision, to 700 for the seventh revision.
|
||||
// _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
|
||||
// _LARGEFILE_SOURCE Some more functions for correct standard I/O.
|
||||
// _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
||||
// _FILE_OFFSET_BITS=N Select default filesystem interface.
|
||||
// _ATFILE_SOURCE Additional *at interfaces.
|
||||
// _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// _GNU_SOURCE All of the above, plus GNU extensions.
|
||||
// _DEFAULT_SOURCE The default set of features (taking precedence over
|
||||
// __STRICT_ANSI__).
|
||||
//
|
||||
// _FORTIFY_SOURCE Add security hardening to many library functions.
|
||||
// Set to 1 or 2; 2 performs stricter checks than 1.
|
||||
//
|
||||
// _REENTRANT, _THREAD_SAFE
|
||||
// Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
|
||||
//
|
||||
// The `-ansi' switch to the GNU C compiler, and standards conformance
|
||||
// options such as `-std=c99', define __STRICT_ANSI__. If none of
|
||||
// these are defined, or if _DEFAULT_SOURCE is defined, the default is
|
||||
// to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
|
||||
// 200809L, as well as enabling miscellaneous functions from BSD and
|
||||
// SVID. If more than one of these are defined, they accumulate. For
|
||||
// example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
|
||||
// give you ISO C, 1003.1, and 1003.2, but nothing else.
|
||||
//
|
||||
// These are defined by this file and are used by the
|
||||
// header files to decide what to declare or define:
|
||||
//
|
||||
// __GLIBC_USE (F) Define things from feature set F. This is defined
|
||||
// to 1 or 0; the subsequent macros are either defined
|
||||
// or undefined, and those tests should be moved to
|
||||
// __GLIBC_USE.
|
||||
// __USE_ISOC11 Define ISO C11 things.
|
||||
// __USE_ISOC99 Define ISO C99 things.
|
||||
// __USE_ISOC95 Define ISO C90 AMD1 (C95) things.
|
||||
// __USE_ISOCXX11 Define ISO C++11 things.
|
||||
// __USE_POSIX Define IEEE Std 1003.1 things.
|
||||
// __USE_POSIX2 Define IEEE Std 1003.2 things.
|
||||
// __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
|
||||
// __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
|
||||
// __USE_XOPEN Define XPG things.
|
||||
// __USE_XOPEN_EXTENDED Define X/Open Unix things.
|
||||
// __USE_UNIX98 Define Single Unix V2 things.
|
||||
// __USE_XOPEN2K Define XPG6 things.
|
||||
// __USE_XOPEN2KXSI Define XPG6 XSI things.
|
||||
// __USE_XOPEN2K8 Define XPG7 things.
|
||||
// __USE_XOPEN2K8XSI Define XPG7 XSI things.
|
||||
// __USE_LARGEFILE Define correct standard I/O things.
|
||||
// __USE_LARGEFILE64 Define LFS things with separate names.
|
||||
// __USE_FILE_OFFSET64 Define 64bit interface as default.
|
||||
// __USE_MISC Define things from 4.3BSD or System V Unix.
|
||||
// __USE_ATFILE Define *at interfaces and AT_* constants for them.
|
||||
// __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
|
||||
// MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||
// __USE_GNU Define GNU extensions.
|
||||
// __USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
||||
//
|
||||
// The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
|
||||
// defined by this file unconditionally. `__GNU_LIBRARY__' is provided
|
||||
// only for compatibility. All new code should use the other symbols
|
||||
// to test for features.
|
||||
//
|
||||
// All macros listed above as possibly being defined by this file are
|
||||
// explicitly undefined if they are not explicitly defined.
|
||||
// Feature-test macros that are not defined by the user or compiler
|
||||
// but are implied by the other feature-test macros defined (or by the
|
||||
// lack of any definitions) are defined by the file.
|
||||
//
|
||||
// ISO C feature test macros depend on the definition of the macro
|
||||
// when an affected header is included, not when the first system
|
||||
// header is included, and so they are handled in
|
||||
// <bits/libc-header-start.h>, which does not have a multiple include
|
||||
// guard. Feature test macros that can be handled from the first
|
||||
// system header included are handled here.
|
||||
|
||||
// Undefine everything, so we get a clean slate.
|
||||
|
||||
// Suppress kernel-name space pollution unless user expressedly asks
|
||||
// for it.
|
||||
|
||||
// Convenience macro to test the version of gcc.
|
||||
// Use like this:
|
||||
// #if __GNUC_PREREQ (2,8)
|
||||
// ... code requiring gcc 2.8 or later ...
|
||||
// #endif
|
||||
// Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
|
||||
// added in 2.0.
|
||||
|
||||
// Similarly for clang. Features added to GCC after version 4.2 may
|
||||
// or may not also be available in clang, and clang's definitions of
|
||||
// __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such
|
||||
// features can be queried via __has_extension/__has_feature.
|
||||
|
||||
// Whether to use feature set F.
|
||||
|
||||
// _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
|
||||
// _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
|
||||
// issue a warning; the expectation is that the source is being
|
||||
// transitioned to use the new macro.
|
||||
|
||||
// If _GNU_SOURCE was defined by the user, turn on all the other features.
|
||||
|
||||
// If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
||||
// define _DEFAULT_SOURCE.
|
||||
|
||||
// This is to enable the ISO C2X extension.
|
||||
|
||||
// This is to enable the ISO C11 extension.
|
||||
|
||||
// This is to enable the ISO C99 extension.
|
||||
|
||||
// This is to enable the ISO C90 Amendment 1:1995 extension.
|
||||
|
||||
// If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
|
||||
// is defined, use POSIX.1-2008 (or another version depending on
|
||||
// _XOPEN_SOURCE).
|
||||
|
||||
// Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
|
||||
// defined in all multithreaded code. GNU libc has not required this
|
||||
// for many years. We now treat them as compatibility synonyms for
|
||||
// _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
|
||||
// comprehensive support for multithreaded code. Using them never
|
||||
// lowers the selected level of POSIX conformance, only raises it.
|
||||
|
||||
// Features part to handle 64-bit time_t support.
|
||||
// Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We need to know the word size in order to check the time size.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// The function 'gets' existed in C89, but is impossible to use
|
||||
// safely. It has been removed from ISO C11 and ISO C++14. Note: for
|
||||
// compatibility with various implementations of <cstdio>, this test
|
||||
// must consider only the value of __cplusplus when compiling C++.
|
||||
|
||||
// GNU formerly extended the scanf functions with modified format
|
||||
// specifiers %as, %aS, and %a[...] that allocate a buffer for the
|
||||
// input using malloc. This extension conflicts with ISO C99, which
|
||||
// defines %a as a standalone format specifier that reads a floating-
|
||||
// point number; moreover, POSIX.1-2008 provides the same feature
|
||||
// using the modifier letter 'm' instead (%ms, %mS, %m[...]).
|
||||
//
|
||||
// We now follow C99 unless GNU extensions are active and the compiler
|
||||
// is specifically in C89 or C++98 mode (strict or not). For
|
||||
// instance, with GCC, -std=gnu11 will have C99-compliant scanf with
|
||||
// or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
|
||||
// old extension.
|
||||
|
||||
// Get definitions of __STDC_* predefined macros, if the compiler has
|
||||
// not preincluded this header automatically.
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This macro indicates that the installed library is the GNU C Library.
|
||||
// For historic reasons the value now is 6 and this will stay from now
|
||||
// on. The use of this variable is deprecated. Use __GLIBC__ and
|
||||
// __GLIBC_MINOR__ now (see below) when you want to test for a specific
|
||||
// GNU C library version and use the values in <gnu/lib-names.h> to get
|
||||
// the sonames of the shared libraries.
|
||||
|
||||
// Major and minor version number of the GNU C library package. Use
|
||||
// these macros to test for features in specific releases.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// We are almost always included from features.h.
|
||||
|
||||
// The GNU libc does not support any K&R compilers or the traditional mode
|
||||
// of ISO C compilers anymore. Check for some of the combinations not
|
||||
// supported anymore.
|
||||
|
||||
// Some user header file might have defined this before.
|
||||
|
||||
// Compilers that lack __has_attribute may object to
|
||||
// #if defined __has_attribute && __has_attribute (...)
|
||||
// even though they do not need to evaluate the right-hand side of the &&.
|
||||
// Similarly for __has_builtin, etc.
|
||||
|
||||
// All functions, except those with callbacks or those that
|
||||
// synchronize memory, are leaf functions.
|
||||
|
||||
// GCC can always grok prototypes. For C++ programs we add throw()
|
||||
// to help it optimize the function calls. But this only works with
|
||||
// gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions
|
||||
// as non-throwing using a function attribute since programs can use
|
||||
// the -fexceptions options for C code as well.
|
||||
|
||||
// These two macros are not used in glibc anymore. They are kept here
|
||||
// only because some other projects expect the macros to be defined.
|
||||
|
||||
// For these things, GCC behaves the ANSI way normally,
|
||||
// and the non-ANSI way under -traditional.
|
||||
|
||||
// This is not a typedef so `const __ptr_t' does the right thing.
|
||||
|
||||
// C++ needs to know that types and declarations are C, not C++.
|
||||
|
||||
// Fortify support.
|
||||
|
||||
// Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available.
|
||||
|
||||
// Support for flexible arrays.
|
||||
// Headers that should use flexible arrays only if they're "real"
|
||||
// (e.g. only if they won't affect sizeof()) should test
|
||||
// #if __glibc_c99_flexarr_available.
|
||||
|
||||
// __asm__ ("xyz") is used throughout the headers to rename functions
|
||||
// at the assembly language level. This is wrapped by the __REDIRECT
|
||||
// macro, in order to support compilers that can do this some other
|
||||
// way. When compilers don't support asm-names at all, we have to do
|
||||
// preprocessor tricks instead (which don't have exactly the right
|
||||
// semantics, but it's the best we can do).
|
||||
//
|
||||
// Example:
|
||||
// int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
|
||||
|
||||
//
|
||||
// #elif __SOME_OTHER_COMPILER__
|
||||
//
|
||||
// # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias)
|
||||
|
||||
// GCC and clang have various useful declarations that can be made with
|
||||
// the '__attribute__' syntax. All of the ways we use this do fine if
|
||||
// they are omitted for compilers that don't understand it.
|
||||
|
||||
// At some point during the gcc 2.96 development the `malloc' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Tell the compiler which arguments to an allocation function
|
||||
// indicate the size of the allocation.
|
||||
|
||||
// At some point during the gcc 2.96 development the `pure' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// This declaration tells the compiler that the value is constant.
|
||||
|
||||
// At some point during the gcc 3.1 development the `used' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
|
||||
// Since version 3.2, gcc allows marking deprecated functions.
|
||||
|
||||
// Since version 4.5, gcc also allows one to specify the message printed
|
||||
// when a deprecated function is used. clang claims to be gcc 4.2, but
|
||||
// may also support this feature.
|
||||
|
||||
// At some point during the gcc 2.8 development the `format_arg' attribute
|
||||
// for functions was introduced. We don't want to use it unconditionally
|
||||
// (although this would be possible) since it generates warnings.
|
||||
// If several `format_arg' attributes are given for the same function, in
|
||||
// gcc-3.0 and older, all but the last one are ignored. In newer gccs,
|
||||
// all designated arguments are considered.
|
||||
|
||||
// At some point during the gcc 2.97 development the `strfmon' format
|
||||
// attribute for functions was introduced. We don't want to use it
|
||||
// unconditionally (although this would be possible) since it
|
||||
// generates warnings.
|
||||
|
||||
// The nonnull function attribute marks pointer parameters that
|
||||
// must not be NULL.
|
||||
|
||||
// The returns_nonnull function attribute marks the return type of the function
|
||||
// as always being non-null.
|
||||
|
||||
// If fortification mode, we warn about unused results of certain
|
||||
// function calls which can lead to problems.
|
||||
|
||||
// Forces a function to be always inlined.
|
||||
// The Linux kernel defines __always_inline in stddef.h (283d7573), and
|
||||
// it conflicts with this definition. Therefore undefine it first to
|
||||
// allow either header to be included first.
|
||||
|
||||
// Associate error messages with the source location of the call site rather
|
||||
// than with the source location inside the function.
|
||||
|
||||
// GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
|
||||
// inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
|
||||
// or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
|
||||
// older than 4.3 may define these macros and still not guarantee GNU inlining
|
||||
// semantics.
|
||||
//
|
||||
// clang++ identifies itself as gcc-4.2, but has support for GNU inlining
|
||||
// semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
|
||||
// __GNUC_GNU_INLINE__ macro definitions.
|
||||
|
||||
// GCC 4.3 and above allow passing all anonymous arguments of an
|
||||
// __extern_always_inline function to some other vararg function.
|
||||
|
||||
// It is possible to compile containing GCC extensions even if GCC is
|
||||
// run in pedantic mode if the uses are carefully marked using the
|
||||
// `__extension__' keyword. But this is not generally available before
|
||||
// version 2.8.
|
||||
|
||||
// __restrict is known in EGCS 1.2 and above, and in clang.
|
||||
// It works also in C++ mode (outside of arrays), but only when spelled
|
||||
// as '__restrict', not 'restrict'.
|
||||
|
||||
// ISO C99 also allows to declare arrays as non-overlapping. The syntax is
|
||||
// array_name[restrict]
|
||||
// GCC 3.1 and clang support this.
|
||||
// This syntax is not usable in C++ mode.
|
||||
|
||||
// Describes a char array whose address can safely be passed as the first
|
||||
// argument to strncpy and strncat, as the char array is not necessarily
|
||||
// a NUL-terminated string.
|
||||
|
||||
// Undefine (also defined in libc-symbols.h).
|
||||
// Copies attributes from the declaration or type referenced by
|
||||
// the argument.
|
||||
|
||||
// The #ifndef lets Gnulib avoid including these on non-glibc
|
||||
// platforms, where the includes typically do not exist.
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Properties of long double type. ldbl-128 version.
|
||||
// Copyright (C) 2016-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// long double is distinct from double, so there is nothing to
|
||||
// define here.
|
||||
|
||||
// __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is
|
||||
// intended for use in preprocessor macros.
|
||||
//
|
||||
// Note: MESSAGE must be a _single_ string; concatenation of string
|
||||
// literals is not supported.
|
||||
|
||||
// Generic selection (ISO C11) is a C-only feature, available in GCC
|
||||
// since version 4.9. Previous versions do not provide generic
|
||||
// selection, even though they might set __STDC_VERSION__ to 201112L,
|
||||
// when in -std=c11 mode. Thus, we must check for !defined __GNUC__
|
||||
// when testing __STDC_VERSION__ for generic selection support.
|
||||
// On the other hand, Clang also defines __GNUC__, so a clang-specific
|
||||
// check is required to enable the use of generic selection.
|
||||
|
||||
// Designates a 1-based positional argument ref-index of pointer type
|
||||
// that can be used to access size-index elements of the pointed-to
|
||||
// array according to access mode, or at least one element when
|
||||
// size-index is not provided:
|
||||
// access (access-mode, <ref-index> [, <size-index>])
|
||||
|
||||
// Designates dealloc as a function to call to deallocate objects
|
||||
// allocated by the declared function.
|
||||
|
||||
// Specify that a function such as setjmp or vfork may return
|
||||
// twice.
|
||||
|
||||
// If we don't have __REDIRECT, prototypes will be missing if
|
||||
// __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
|
||||
|
||||
// Decide whether we can define 'extern inline' functions in headers.
|
||||
|
||||
// This is here only because every header file already includes this one.
|
||||
// Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
|
||||
// <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
|
||||
// that will always return failure (and set errno to ENOSYS).
|
||||
// This file is automatically generated.
|
||||
// This file selects the right generated file of `__stub_FUNCTION' macros
|
||||
// based on the architecture being compiled for.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// This file is automatically generated.
|
||||
// It defines a symbol `__stub_FUNCTION' for each function
|
||||
// in the C library which is a stub, meaning it will fail
|
||||
// every time called, usually setting errno to ENOSYS.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Bit size of the time_t type at glibc build time, RISC-V case.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Determine the wordsize from the preprocessor defines. RISC-V version.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// RV32 and RV64 both use 64-bit time_t
|
||||
|
||||
// Convenience types.
|
||||
type X__u_char = uint8 /* types.h:31:23 */
|
||||
type X__u_short = uint16 /* types.h:32:28 */
|
||||
type X__u_int = uint32 /* types.h:33:22 */
|
||||
type X__u_long = uint64 /* types.h:34:27 */
|
||||
|
||||
// Fixed-size types, underlying types depend on word size and compiler.
|
||||
type X__int8_t = int8 /* types.h:37:21 */
|
||||
type X__uint8_t = uint8 /* types.h:38:23 */
|
||||
type X__int16_t = int16 /* types.h:39:26 */
|
||||
type X__uint16_t = uint16 /* types.h:40:28 */
|
||||
type X__int32_t = int32 /* types.h:41:20 */
|
||||
type X__uint32_t = uint32 /* types.h:42:22 */
|
||||
type X__int64_t = int64 /* types.h:44:25 */
|
||||
type X__uint64_t = uint64 /* types.h:45:27 */
|
||||
|
||||
// Smallest types with at least a given width.
|
||||
type X__int_least8_t = X__int8_t /* types.h:52:18 */
|
||||
type X__uint_least8_t = X__uint8_t /* types.h:53:19 */
|
||||
type X__int_least16_t = X__int16_t /* types.h:54:19 */
|
||||
type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
|
||||
type X__int_least32_t = X__int32_t /* types.h:56:19 */
|
||||
type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
|
||||
type X__int_least64_t = X__int64_t /* types.h:58:19 */
|
||||
type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
|
||||
|
||||
// quad_t is also 64 bits.
|
||||
type X__quad_t = int64 /* types.h:63:18 */
|
||||
type X__u_quad_t = uint64 /* types.h:64:27 */
|
||||
|
||||
// Largest integral types.
|
||||
type X__intmax_t = int64 /* types.h:72:18 */
|
||||
type X__uintmax_t = uint64 /* types.h:73:27 */
|
||||
|
||||
// The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
|
||||
// macros for each of the OS types we define below. The definitions
|
||||
// of those macros must use the following macros for underlying types.
|
||||
// We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
|
||||
// variants of each of the following integer types on this machine.
|
||||
//
|
||||
// 16 -- "natural" 16-bit type (always short)
|
||||
// 32 -- "natural" 32-bit type (always int)
|
||||
// 64 -- "natural" 64-bit type (long or long long)
|
||||
// LONG32 -- 32-bit type, traditionally long
|
||||
// QUAD -- 64-bit type, traditionally long long
|
||||
// WORD -- natural type of __WORDSIZE bits (int or long)
|
||||
// LONGWORD -- type of __WORDSIZE bits, traditionally long
|
||||
//
|
||||
// We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
|
||||
// conventional uses of `long' or `long long' type modifiers match the
|
||||
// types we define, even when a less-adorned type would be the same size.
|
||||
// This matters for (somewhat) portably writing printf/scanf formats for
|
||||
// these types, where using the appropriate l or ll format modifiers can
|
||||
// make the typedefs and the formats match up across all GNU platforms. If
|
||||
// we used `long' when it's 64 bits where `long long' is expected, then the
|
||||
// compiler would warn about the formats not matching the argument types,
|
||||
// and the programmer changing them to shut up the compiler would break the
|
||||
// program's portability.
|
||||
//
|
||||
// Here we assume what is presently the case in all the GCC configurations
|
||||
// we support: long long is always 64 bits, long is always word/address size,
|
||||
// and int is always 32 bits.
|
||||
|
||||
// No need to mark the typedef with __extension__.
|
||||
// bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
|
||||
// Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
// Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library. If not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// See <bits/types.h> for the meaning of these macros. This file exists so
|
||||
// that <bits/types.h> need not vary across different GNU platforms.
|
||||
|
||||
// Tell the libc code that off_t and off64_t are actually the same type
|
||||
// for all ABI purposes, even if possibly expressed as different base types
|
||||
// for C type-checking purposes.
|
||||
|
||||
// Same for ino_t and ino64_t.
|
||||
|
||||
// And for __rlim_t and __rlim64_t.
|
||||
|
||||
// And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t.
|
||||
|
||||
// And for getitimer, setitimer and rusage
|
||||
|
||||
// Number of descriptors that can fit in an `fd_set'.
|
||||
|
||||
// bits/time64.h -- underlying types for __time64_t. RISC-V version.
|
||||
// Copyright (C) 2020-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Define __TIME64_T_TYPE so that it is always a 64-bit type.
|
||||
|
||||
// If we already have 64-bit time type then use it.
|
||||
|
||||
type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.
|
||||
type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.
|
||||
type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.
|
||||
type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers.
|
||||
type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS).
|
||||
type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks.
|
||||
type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts.
|
||||
type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets.
|
||||
type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
|
||||
type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.
|
||||
type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
|
||||
type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.
|
||||
type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.
|
||||
type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).
|
||||
type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.
|
||||
type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch.
|
||||
type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.
|
||||
type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds.
|
||||
type X__suseconds64_t = int64 /* types.h:163:33 */
|
||||
|
||||
type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address.
|
||||
type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key.
|
||||
|
||||
// Clock ID used in clock and timer functions.
|
||||
type X__clockid_t = int32 /* types.h:169:29 */
|
||||
|
||||
// Timer ID returned by `timer_create'.
|
||||
type X__timer_t = uintptr /* types.h:172:12 */
|
||||
|
||||
// Type to represent block size.
|
||||
type X__blksize_t = int32 /* types.h:175:29 */
|
||||
|
||||
// Types from the Large File Support interface.
|
||||
|
||||
// Type to count number of disk blocks.
|
||||
type X__blkcnt_t = int64 /* types.h:180:28 */
|
||||
type X__blkcnt64_t = int64 /* types.h:181:30 */
|
||||
|
||||
// Type to count file system blocks.
|
||||
type X__fsblkcnt_t = uint64 /* types.h:184:30 */
|
||||
type X__fsblkcnt64_t = uint64 /* types.h:185:32 */
|
||||
|
||||
// Type to count file system nodes.
|
||||
type X__fsfilcnt_t = uint64 /* types.h:188:30 */
|
||||
type X__fsfilcnt64_t = uint64 /* types.h:189:32 */
|
||||
|
||||
// Type of miscellaneous file system fields.
|
||||
type X__fsword_t = int64 /* types.h:192:28 */
|
||||
|
||||
type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error.
|
||||
|
||||
// Signed long type used in system calls.
|
||||
type X__syscall_slong_t = int64 /* types.h:197:33 */
|
||||
// Unsigned long type used in system calls.
|
||||
type X__syscall_ulong_t = uint64 /* types.h:199:33 */
|
||||
|
||||
// These few don't really vary by system, they always correspond
|
||||
// to one of the other defined types.
|
||||
type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS).
|
||||
type X__caddr_t = uintptr /* types.h:204:14 */
|
||||
|
||||
// Duplicates info from stdint.h but this is used in unistd.h.
|
||||
type X__intptr_t = int64 /* types.h:207:25 */
|
||||
|
||||
// Duplicate info from sys/socket.h.
|
||||
type X__socklen_t = uint32 /* types.h:210:23 */
|
||||
|
||||
// C99: An integer type that can be accessed as an atomic entity,
|
||||
// even in the presence of asynchronous interrupts.
|
||||
// It is not currently necessary for this to be machine-specific.
|
||||
type X__sig_atomic_t = int32 /* types.h:215:13 */
|
||||
|
||||
// Seconds since the Epoch, visible to user code when time_t is too
|
||||
// narrow only for consistency with the old way of widening too-narrow
|
||||
// types. User code should never use __time64_t.
|
||||
|
||||
// bits/types.h -- definitions of __*_t types underlying *_t types.
|
||||
// Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
// This file is part of the GNU C Library.
|
||||
//
|
||||
// The GNU C Library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License, or (at your option) any later version.
|
||||
//
|
||||
// The GNU C Library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with the GNU C Library; if not, see
|
||||
// <https://www.gnu.org/licenses/>.
|
||||
|
||||
// Never include this file directly; use <sys/types.h> instead.
|
||||
|
||||
// Returned by `time'.
|
||||
type Time_t = X__time_t /* time_t.h:10:18 */
|
||||
|
||||
// Structure describing file times.
|
||||
type Utimbuf = struct {
|
||||
Factime X__time_t
|
||||
Fmodtime X__time_t
|
||||
} /* utime.h:36:1 */
|
||||
|
||||
var _ uint8 /* gen.c:2:13: */
|
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo uuid/uuid/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o uuid/uuid/uuid_linux_amd64.go -pkgname uuid', DO NOT EDIT.
|
||||
|
||||
package uuid
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
// Code generated by 'ccgo wctype/gen.c -crt-import-path -export-defines -export-enums -export-externs X -export-fields F -export-structs -export-typedefs -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o wctype/wctype_linux_riscv64.go -pkgname wctype', DO NOT EDIT.
|
||||
|
||||
package wctype
|
||||
|
||||
var CAPI = map[string]struct{}{}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,27 @@
|
||||
Copyright (c) 2009 The Go Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@ -0,0 +1,17 @@
|
||||
// Copyright 2017 The Memory Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
//go:build (darwin && (amd64 || arm64)) || (openbsd && (386 || amd64))
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
_ "unsafe"
|
||||
)
|
||||
|
||||
// Function syscall.mmap for darwin and openbsd calls internal/abi.FuncPCABI0,
|
||||
// which is implemented as a compile intrinsic so the code cannot be reused.
|
||||
// Using go:linkname directive to link mmapSyscall to syscall.mmap
|
||||
|
||||
//go:linkname mmapSyscall syscall.mmap
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
|
@ -0,0 +1,21 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
//go:build freebsd && 386
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_386.go
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
|
||||
ret = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
//go:build freebsd && amd64
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_amd64.go;l=1337-1346
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
|
||||
ret = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
//go:build linux && (386 || arm || mips || mipsle)
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Function syscall.mmap and syscall.mmap2 are same for linux/386, linux/arm,
|
||||
// linux/mips and linux/mipsle
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/syscall_linux_386.go;l=99-105
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
|
||||
page := uintptr(offset / 4096)
|
||||
if offset != int64(page)*4096 {
|
||||
return 0, syscall.EINVAL
|
||||
}
|
||||
return mmap2Syscall(addr, length, prot, flags, fd, page)
|
||||
}
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_386.go;l=1361-1370
|
||||
func mmap2Syscall(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))
|
||||
xaddr = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
//go:build linux && (amd64 || arm64 || mips64 || mips64le || riscv64)
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// Function syscall.mmap is same for linux/amd64, linux/arm64, linux/mips64,
|
||||
// linux/mips64le and linux/riscv64.
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_amd64.go;l=1575-1584
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
|
||||
xaddr = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/syscall_linux_s390x.go;l=105-115
|
||||
// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.
|
||||
// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
|
||||
mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}
|
||||
r0, _, e1 := syscall.Syscall(syscall.SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)
|
||||
xaddr = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
//go:build netbsd && 386
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_386.go
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)
|
||||
ret = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE-GO file.
|
||||
|
||||
//go:build netbsd && amd64
|
||||
|
||||
package memory
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
)
|
||||
|
||||
// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_netbsd_amd64.go;l=1190
|
||||
func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
|
||||
r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)
|
||||
ret = uintptr(r0)
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
}
|
||||
return
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue