1 /*=========================================================================== 2 * 3 * PUBLIC DOMAIN NOTICE 4 * National Center for Biotechnology Information 5 * 6 * This software/database is a "United States Government Work" under the 7 * terms of the United States Copyright Act. It was written as part of 8 * the author's official duties as a United States Government employee and 9 * thus cannot be copyrighted. This software/database is freely available 10 * to the public for use. The National Library of Medicine and the U.S. 11 * Government have not placed any restriction on its use or reproduction. 12 * 13 * Although all reasonable efforts have been taken to ensure the accuracy 14 * and reliability of the software and data, the NLM and the U.S. 15 * Government do not and cannot warrant the performance or results that 16 * may be obtained by using this software or data. The NLM and the U.S. 17 * Government disclaim all warranties, express or implied, including 18 * warranties of performance, merchantability or fitness for any particular 19 * purpose. 20 * 21 * Please cite the author in any work or product based on this material. 22 * 23 * =========================================================================== 24 * 25 */ 26 27 #ifndef _h_kdbfmt_priv_ 28 #define _h_kdbfmt_priv_ 29 30 #ifndef _h_klib_defs_ 31 #include <klib/defs.h> 32 #endif 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 39 /*-------------------------------------------------------------------------- 40 * KDBHdr 41 * the various file types used: 42 * 43 * a) metadata 44 * b) key => id 45 * c) id => key 46 * 47 * will begin with a standard header to tag format 48 */ 49 #define eByteOrderTag 0x05031988 50 #define eByteOrderReverse 0x88190305 51 52 typedef struct KDBHdr KDBHdr; 53 struct KDBHdr 54 { 55 uint32_t endian; 56 uint32_t version; 57 }; 58 59 /* KDBHdrInit 60 * simple initialization 61 */ 62 #define KDBHdrInit( hdr, vers ) \ 63 ( void ) ( ( hdr ) -> endian = eByteOrderTag, ( hdr ) -> version = vers ) 64 65 /* KDBHdrValidate 66 * validates that a header sports a supported byte order 67 * and that the version is within range 68 */ 69 rc_t KDBHdrValidate ( const KDBHdr *hdr, size_t size, 70 uint32_t min_vers, uint32_t max_vers ); 71 72 #ifdef __cplusplus 73 } 74 #endif 75 76 #endif /* _h_kdbfmt_priv_ */ 77