arch+riscv64.ha (3367B)
1 // SPDX-License-Identifier: MPL-2.0 2 // (c) Hare authors <https://harelang.org> 3 4 use types; 5 6 // Integer type compatible with `char`, as specified by ISO/IEC 9899. 7 export type char = uchar; 8 9 // Minimum value which can be stored in a [[char]] type. 10 export def CHAR_MIN: char = UCHAR_MIN; 11 12 // Maximum value which can be stored in a [[char]] type. 13 export def CHAR_MAX: char = UCHAR_MAX; 14 15 // Integer type compatible with `signed short`, as specified by ISO/IEC 9899. 16 export type short = i16; 17 18 // Minimum value which can be stored in a [[short]] type. 19 export def SHORT_MIN: short = types::I16_MIN; 20 21 // Maximum value which can be stored in a [[short]] type. 22 export def SHORT_MAX: short = types::I16_MAX; 23 24 // Integer type compatible with `unsigned short`, as specified by ISO/IEC 9899. 25 export type ushort = u16; 26 27 // Minimum value which can be stored in a [[ushort]] type. 28 export def USHRT_MIN: ushort = types::U16_MIN; 29 30 // Maximum value which can be stored in a [[ushort]] type. 31 export def USHRT_MAX: ushort = types::U16_MAX; 32 33 // Integer type compatible with `signed long`, as specified by ISO/IEC 9899. 34 export type long = i64; 35 36 // Minimum value which can be stored in a [[long]] type. 37 export def LONG_MIN: long = types::I64_MIN; 38 39 // Maximum value which can be stored in a [[long]] type. 40 export def LONG_MAX: long = types::I64_MAX; 41 42 // Integer type compatible with `unsigned long`, as specified by ISO/IEC 9899. 43 export type ulong = u64; 44 45 // Minimum value which can be stored in a [[ulong]] type. 46 export def ULONG_MIN: ulong = types::U64_MIN; 47 48 // Maximum value which can be stored in a [[ulong]] type. 49 export def ULONG_MAX: ulong = types::U64_MAX; 50 51 // Integer type compatible with `signed long long`, as specified by ISO/IEC 52 // 9899:1999. 53 export type longlong = i64; 54 55 // Minimum value which can be stored in a [[longlong]] type. 56 export def LLONG_MIN: longlong = types::I64_MIN; 57 58 // Maximum value which can be stored in a [[longlong]] type. 59 export def LLONG_MAX: longlong = types::I64_MAX; 60 61 // Integer type compatible with `unsigned long long`, as specified by ISO/IEC 62 // 9899:1999. 63 export type ulonglong = u64; 64 65 // Minimum value which can be stored in a [[ulonglong]] type. 66 export def ULLONG_MIN: ulonglong = types::U64_MIN; 67 68 // Maximum value which can be stored in a [[ulonglong]] type. 69 export def ULLONG_MAX: ulonglong = types::U64_MAX; 70 71 // Integer type compatible with `intptr_t`, as defined in <stdint.h> and 72 // specified by ISO/IEC 9899. 73 export type intptr = i64; 74 75 // Minimum value which can be stored in an [[intptr]] type. 76 export def INTPTR_MIN: intptr = types::I64_MIN; 77 78 // Maximum value which can be stored in an [[intptr]] type. 79 export def INTPTR_MAX: intptr = types::I64_MAX; 80 81 // Integer type compatible with `ptrdiff_t`, as defined in <stddef.h> and 82 // specified by ISO/IEC 9899. 83 export type ptrdiff = i64; 84 85 // Minimum value which can be stored in a [[ptrdiff]] type. 86 export def PTRDIFF_MIN: ptrdiff = types::I64_MIN; 87 88 // Maximum value which can be stored in a [[ptrdiff]] type. 89 export def PTRDIFF_MAX: ptrdiff = types::I64_MAX; 90 91 // Integer type compatible with `ssize_t`, as defined in <sys/types.h> and 92 // specified by POSIX. 93 export type ssize = i64; 94 95 // Minimum value which can be stored in an [[ssize]] type. 96 export def SSIZE_MIN: ssize = types::I64_MIN; 97 98 // Maximum value which can be stored in an [[ssize]] type. 99 export def SSIZE_MAX: ssize = types::I64_MAX;