1 /** 2 * @file lv_types.h 3 * 4 */ 5 6 #ifndef LV_TYPES_H 7 #define LV_TYPES_H 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 /********************* 14 * INCLUDES 15 *********************/ 16 #include <stdint.h> 17 18 /********************* 19 * DEFINES 20 *********************/ 21 22 // If __UINTPTR_MAX__ or UINTPTR_MAX are available, use them to determine arch size 23 #if defined(__UINTPTR_MAX__) && __UINTPTR_MAX__ > 0xFFFFFFFF 24 #define LV_ARCH_64 25 26 #elif defined(UINTPTR_MAX) && UINTPTR_MAX > 0xFFFFFFFF 27 #define LV_ARCH_64 28 29 // Otherwise use compiler-dependent means to determine arch size 30 #elif defined(_WIN64) || defined(__x86_64__) || defined(__ppc64__) || defined (__aarch64__) 31 #define LV_ARCH_64 32 33 #endif 34 35 /********************** 36 * TYPEDEFS 37 **********************/ 38 39 /** 40 * LVGL error codes. 41 */ 42 enum { 43 LV_RES_INV = 0, /*Typically indicates that the object is deleted (become invalid) in the action 44 function or an operation was failed*/ 45 LV_RES_OK, /*The object is valid (no deleted) after the action*/ 46 }; 47 typedef uint8_t lv_res_t; 48 49 #if defined(__cplusplus) || __STDC_VERSION__ >= 199901L 50 // If c99 or newer, use the definition of uintptr_t directly from <stdint.h> 51 typedef uintptr_t lv_uintptr_t; 52 53 #else 54 55 // Otherwise, use the arch size determination 56 #ifdef LV_ARCH_64 57 typedef uint64_t lv_uintptr_t; 58 #else 59 typedef uint32_t lv_uintptr_t; 60 #endif 61 62 #endif 63 64 /********************** 65 * GLOBAL PROTOTYPES 66 **********************/ 67 68 /********************** 69 * MACROS 70 **********************/ 71 72 #define LV_UNUSED(x) ((void)x) 73 74 #define _LV_CONCAT(x, y) x ## y 75 #define LV_CONCAT(x, y) _LV_CONCAT(x, y) 76 77 #define _LV_CONCAT3(x, y, z) x ## y ## z 78 #define LV_CONCAT3(x, y, z) _LV_CONCAT3(x, y, z) 79 80 #if defined(PYCPARSER) 81 #define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) 82 #elif defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 4) || __GNUC__ > 4) 83 #define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) __attribute__((format(gnu_printf, fmtstr, vararg))) 84 #elif (defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)) 85 #define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) __attribute__((format(printf, fmtstr, vararg))) 86 #else 87 #define LV_FORMAT_ATTRIBUTE(fmtstr, vararg) 88 #endif 89 90 #ifdef __cplusplus 91 } /*extern "C"*/ 92 #endif 93 94 #endif /*LV_TYPES_H*/ 95