unitypes.h (2319B)
1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ 2 /* Elementary types and macros for the GNU UniString library. 3 Copyright (C) 2002, 2005-2006, 2009-2024 Free Software Foundation, Inc. 4 5 This file is free software: you can redistribute it and/or modify 6 it under the terms of the GNU Lesser General Public License as 7 published by the Free Software Foundation; either version 2.1 of the 8 License, or (at your option) any later version. 9 10 This file is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public License 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 17 18 #ifndef _UNITYPES_H 19 #define _UNITYPES_H 20 21 /* Get uint8_t, uint16_t, uint32_t. */ 22 #include <unistring/stdint.h> 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 29 /* Type representing a Unicode character. */ 30 typedef uint32_t ucs4_t; 31 32 /* Attribute of a function whose result depends only on the arguments 33 (not pointers!) and which has no side effects. */ 34 #ifndef _UC_ATTRIBUTE_CONST 35 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ 36 # define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) 37 # else 38 # define _UC_ATTRIBUTE_CONST 39 # endif 40 #endif 41 42 /* Attribute of a function whose result depends only on the arguments 43 (possibly pointers) and global memory, and which has no side effects. */ 44 #ifndef _UC_ATTRIBUTE_PURE 45 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ 46 # define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) 47 # else 48 # define _UC_ATTRIBUTE_PURE 49 # endif 50 #endif 51 52 /* Qualifier in a function declaration, that asserts that the caller must 53 pass a pointer to a different object in the specified pointer argument 54 than in the other pointer arguments. */ 55 #ifndef _UC_RESTRICT 56 # if defined __restrict \ 57 || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ 58 || __clang_major__ >= 3 59 # define _UC_RESTRICT __restrict 60 # elif 199901L <= __STDC_VERSION__ || defined restrict 61 # define _UC_RESTRICT restrict 62 # else 63 # define _UC_RESTRICT 64 # endif 65 #endif 66 67 68 #ifdef __cplusplus 69 } 70 #endif 71 72 #endif /* _UNITYPES_H */