1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #ifndef ESE_SYSDEPS_H__ 17 #define ESE_SYSDEPS_H__ 1 18 19 #include <stdbool.h> /* bool */ 20 #include <stdint.h> /* uint*_t */ 21 22 #define ESE_UINT32_MAX (UINT32_MAX) 23 24 #ifndef NULL 25 #define NULL ((void *)(0)) 26 #endif 27 28 /* Set visibility for exported functions. */ 29 #ifndef ESE_API 30 #define ESE_API __attribute__ ((visibility("default"))) 31 #endif /* ESE_API */ 32 33 /* Mimic C11 _Static_assert behavior for a C99 world. */ 34 #ifndef _static_assert 35 #define _static_assert(what, why) { while (!(1 / (!!(what)))); } 36 #endif 37 38 extern void *ese_memcpy(void *__dest, const void *__src, uint64_t __n); 39 extern void *ese_memset(void *__s, int __c, uint64_t __n); 40 41 extern uint32_t ese_be32toh(uint32_t big_endian_32bits); 42 extern uint32_t ese_htobe32(uint32_t host_32bits); 43 extern uint32_t ese_le32toh(uint32_t little_endian_32bits); 44 extern uint32_t ese_htole32(uint32_t host_32bits); 45 46 #endif /* ESE_SYSDEPS_H__ */ 47