1 /* 2 * Copyright (C) 2012 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 17 #ifndef _BIONIC_NETBSD_COMPAT_H_included 18 #define _BIONIC_NETBSD_COMPAT_H_included 19 20 #define _BSD_SOURCE 21 #define _GNU_SOURCE 22 23 // NetBSD uses _DIAGASSERT to null-check arguments and the like, 24 // but it's clear from the number of mistakes in their assertions 25 // that they don't actually test or ship with this. 26 #define _DIAGASSERT(e) /* nothing */ 27 28 /* 29 * The following macro is used to remove const cast-away warnings 30 * from gcc -Wcast-qual; it should be used with caution because it 31 * can hide valid errors; in particular most valid uses are in 32 * situations where the API requires it, not to cast away string 33 * constants. We don't use *intptr_t on purpose here and we are 34 * explicit about unsigned long so that we don't have additional 35 * dependencies. 36 */ 37 #define __UNCONST(a) ((void *)(unsigned long)(const void *)(a)) 38 39 // TODO: we don't yet have thread-safe environment variables. 40 #define __readlockenv() 0 41 #define __unlockenv() 0 42 43 #include <sys/cdefs.h> 44 #include <stddef.h> 45 int reallocarr(void*, size_t, size_t); 46 47 /* Use appropriate shell depending on process's executable. */ 48 __LIBC_HIDDEN__ extern const char* __bionic_get_shell_path(); 49 #define _PATH_BSHELL __bionic_get_shell_path() 50 51 #endif 52