1*a8d65a3fSmiod /* $OpenBSD: ssl_namespace.h,v 1.3 2024/07/12 05:26:34 miod Exp $ */ 2ec6848bcSbeck /* 3ec6848bcSbeck * Copyright (c) 2016 Philip Guenther <guenther@openbsd.org> 4ec6848bcSbeck * 5ec6848bcSbeck * Permission to use, copy, modify, and distribute this software for any 6ec6848bcSbeck * purpose with or without fee is hereby granted, provided that the above 7ec6848bcSbeck * copyright notice and this permission notice appear in all copies. 8ec6848bcSbeck * 9ec6848bcSbeck * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10ec6848bcSbeck * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11ec6848bcSbeck * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12ec6848bcSbeck * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13ec6848bcSbeck * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14ec6848bcSbeck * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15ec6848bcSbeck * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16ec6848bcSbeck */ 17ec6848bcSbeck 18ec6848bcSbeck #ifndef _LIBSSL_SSL_NAMESPACE_H_ 19ec6848bcSbeck #define _LIBSSL_SSL_NAMESPACE_H_ 20ec6848bcSbeck 21ec6848bcSbeck /* 22ec6848bcSbeck * If marked as 'used', then internal calls use the name with prefix "_lssl_" 23ec6848bcSbeck * and we alias that to the normal name. 24ec6848bcSbeck */ 25ec6848bcSbeck 26ec6848bcSbeck #ifdef LIBRESSL_NAMESPACE 27ec6848bcSbeck #define LSSL_UNUSED(x) typeof(x) x __attribute__((deprecated)) 28ec6848bcSbeck #define LSSL_USED(x) __attribute__((visibility("hidden"))) \ 29ec6848bcSbeck typeof(x) x asm("_lssl_"#x) 30*a8d65a3fSmiod #if defined(__hppa__) 31*a8d65a3fSmiod #define LSSL_ALIAS(x) asm("! .global "#x" ! .set "#x", _lssl_"#x) 32*a8d65a3fSmiod #else 33cedac418Stb #define LSSL_ALIAS(x) asm(".global "#x"; "#x" = _lssl_"#x) 34*a8d65a3fSmiod #endif 35ec6848bcSbeck #else 36ec6848bcSbeck #define LSSL_UNUSED(x) 37ec6848bcSbeck #define LSSL_USED(x) 38cedac418Stb #define LSSL_ALIAS(x) asm("") 39ec6848bcSbeck #endif 40ec6848bcSbeck 41ec6848bcSbeck #endif /* _LIBSSL_SSL_NAMESPACE_H_ */ 42