// =================================================================== // // Copyright (c) 2005, Intel Corp. // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // * Neither the name of Intel Corporation nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED // OF THE POSSIBILITY OF SUCH DAMAGE. // =================================================================== #ifndef __VTPM_LOG_H__ #define __VTPM_LOG_H__ #include // for uint32_t #include // for pointer NULL // =========================== LOGGING ============================== // the logging module numbers #define VTPM_LOG_CRYPTO 1 #define VTPM_LOG_BSG 2 #define VTPM_LOG_TXDATA 3 #define VTPM_LOG_TCS 4 #define VTPM_LOG_TCS_DEEP 5 #define VTPM_LOG_VTSP 6 #define VTPM_LOG_VTPM 7 #define VTPM_LOG_VTPM_DEEP 8 #define VTPM_LOG_VTSP_DEEP 9 static char *module_names[] = { "", "CRYPTO", "BSG", "TXDATA", "TCS", "TCS", "VTSP", "VTPM", "VTPM", "VTSP" }; // Default to standard logging #ifndef LOGGING_MODULES #define LOGGING_MODULES (BITMASK(VTPM_LOG_VTPM)) #endif // bit-access macros #define BITMASK(idx) ( 1U << (idx) ) #define GETBIT(num,idx) ( ((num) & BITMASK(idx)) >> idx ) #define SETBIT(num,idx) (num) |= BITMASK(idx) #define CLEARBIT(num,idx) (num) &= ( ~ BITMASK(idx) ) #define vtpmloginfo(module, fmt, args...) \ if (GETBIT (LOGGING_MODULES, module) == 1) { \ fprintf (stdout, "INFO[%s]: " fmt, module_names[module], ##args); \ } #define vtpmloginfomore(module, fmt, args...) \ if (GETBIT (LOGGING_MODULES, module) == 1) { \ fprintf (stdout, fmt,##args); \ } #define vtpmlogerror(module, fmt, args...) \ fprintf (stderr, "ERROR[%s]: " fmt, module_names[module], ##args); //typedef UINT32 tpm_size_t; // helper function for the error codes: const char* tpm_get_error_name (TPM_RESULT code); #endif // _VTPM_LOG_H_