1*b077aed3SPierre Pronchery=pod 2*b077aed3SPierre Pronchery 3*b077aed3SPierre Pronchery=head1 NAME 4*b077aed3SPierre Pronchery 5*b077aed3SPierre ProncheryOPENSSL_FILE, OPENSSL_LINE, OPENSSL_FUNC, 6*b077aed3SPierre ProncheryOPENSSL_MSTR, OPENSSL_MSTR_HELPER 7*b077aed3SPierre Pronchery- generic C programming utility macros 8*b077aed3SPierre Pronchery 9*b077aed3SPierre Pronchery=head1 SYNOPSIS 10*b077aed3SPierre Pronchery 11*b077aed3SPierre Pronchery #include <openssl/macros.h> 12*b077aed3SPierre Pronchery 13*b077aed3SPierre Pronchery #define OPENSSL_FILE /* typically: __FILE__ */ 14*b077aed3SPierre Pronchery #define OPENSSL_LINE /* typically: __LINE__ */ 15*b077aed3SPierre Pronchery #define OPENSSL_FUNC /* typically: __func__ */ 16*b077aed3SPierre Pronchery 17*b077aed3SPierre Pronchery #define OPENSSL_MSTR_HELPER(x) #x 18*b077aed3SPierre Pronchery #define OPENSSL_MSTR(x) OPENSSL_MSTR_HELPER(x) 19*b077aed3SPierre Pronchery 20*b077aed3SPierre Pronchery=head1 DESCRIPTION 21*b077aed3SPierre Pronchery 22*b077aed3SPierre ProncheryThe macros B<OPENSSL_FILE> and B<OPENSSL_LINE> 23*b077aed3SPierre Proncherytypically yield the current filename and line number during C compilation. 24*b077aed3SPierre ProncheryWhen B<OPENSSL_NO_FILENAMES> is defined they yield B<""> and B<0>, respectively. 25*b077aed3SPierre Pronchery 26*b077aed3SPierre ProncheryThe macro B<OPENSSL_FUNC> attempts to yield the name of the C function 27*b077aed3SPierre Proncherycurrently being compiled, as far as language and compiler versions allow. 28*b077aed3SPierre ProncheryOtherwise, it yields "(unknown function)". 29*b077aed3SPierre Pronchery 30*b077aed3SPierre ProncheryThe macro B<OPENSSL_MSTR> yields the expansion of the macro given as argument, 31*b077aed3SPierre Proncherywhich is useful for concatenation with string constants. 32*b077aed3SPierre ProncheryThe macro B<OPENSSL_MSTR_HELPER> is an auxiliary macro for this purpose. 33*b077aed3SPierre Pronchery 34*b077aed3SPierre Pronchery=head1 RETURN VALUES 35*b077aed3SPierre Pronchery 36*b077aed3SPierre Proncherysee above 37*b077aed3SPierre Pronchery 38*b077aed3SPierre Pronchery=head1 SEE ALSO 39*b077aed3SPierre Pronchery 40*b077aed3SPierre ProncheryL<crypto(7)> 41*b077aed3SPierre Pronchery 42*b077aed3SPierre Pronchery=head1 HISTORY 43*b077aed3SPierre Pronchery 44*b077aed3SPierre ProncheryB<OPENSSL_FUNC>, B<OPENSSL_MSTR>, and B<OPENSSL_MSTR_HELPER> 45*b077aed3SPierre Proncherywere added in OpenSSL 3.0. 46*b077aed3SPierre Pronchery 47*b077aed3SPierre Pronchery=head1 COPYRIGHT 48*b077aed3SPierre Pronchery 49*b077aed3SPierre ProncheryCopyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved. 50*b077aed3SPierre Pronchery 51*b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License"). You may not use 52*b077aed3SPierre Proncherythis file except in compliance with the License. You can obtain a copy 53*b077aed3SPierre Proncheryin the file LICENSE in the source distribution or at 54*b077aed3SPierre ProncheryL<https://www.openssl.org/source/license.html>. 55*b077aed3SPierre Pronchery 56*b077aed3SPierre Pronchery=cut 57