250 lines
9.4 KiB
C
250 lines
9.4 KiB
C
|
#ifndef h_filehdr
|
||
|
#define h_filehdr
|
||
|
/******************************************************************************
|
||
|
*
|
||
|
* Declarations for UniVerse hashed file header
|
||
|
*
|
||
|
* Module %M% Version %I% Date %H%
|
||
|
*
|
||
|
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
|
||
|
* This is unpublished proprietary source code of Ardent Software Inc.
|
||
|
* The copyright notice above does not evidence any actual or intented
|
||
|
* publication of such source code.
|
||
|
*
|
||
|
*******************************************************************************
|
||
|
*
|
||
|
* Maintenence log - insert most recent change descriptions at top
|
||
|
*
|
||
|
* Date.... GTAR# WHO Description.........................................
|
||
|
* 08/10/99 25046 JBG New Rev 4 SICA for longer NLS schema,table names
|
||
|
* 04/23/99 24749 GMH Add comments
|
||
|
* 04/20/99 24729 RGA re-fix DBHMASK for 8-byte platforms.
|
||
|
* 04/13/99 24729 RGA Fix DBFMASH for 4-byte platforms.
|
||
|
* 04/09/99 24480 GMH Renumber FH_UVREADONLY, BAKFLGS, BAKCNT
|
||
|
* 04/07/99 24729 RGA Use an 8-byte DBHMASK on 64bit platforms.
|
||
|
* 03/19/99 24480 RGA Change DBFMASK to 0c instead of 0b.
|
||
|
* 02/26/99 24480 GMH Add FH_STATALL and FH_T30INFOALL
|
||
|
* 10/14/98 23801 SAP Change copyrights.
|
||
|
* 10/07/98 23673 GMH Lower revision level
|
||
|
* 10/02/98 22647 GMH Fix leading zeroes
|
||
|
* 10/02/98 23673 GMH Up revision level
|
||
|
* 09/28/98 23672 GMH Add file type
|
||
|
* 09/17/98 23673 GMH Add support for new file header
|
||
|
* 09/09/98 22467 GMH Fix ovlink macros, move dbitem macros to DBFILE.h
|
||
|
* 09/08/98 22647 GMH Remove EXTERN, add EXTERNs
|
||
|
* 09/07/98 22647 GMH Add subscript
|
||
|
* 09/07/98 22647 GMH Move FH_OFFSETS table to start_com.c
|
||
|
* 09/07/98 22647 GMH Fix compilation errors
|
||
|
* 09/01/98 22647 GMH Add definitions for new header routines
|
||
|
* 07/02/98 16692 GMH Remove old stuff, comment, add Clrfiltime offset
|
||
|
* 05/12/98 22647 LPC Reconfigure header for 64-bit file support.
|
||
|
*
|
||
|
*****************************************************************************/
|
||
|
|
||
|
/* UniVerse file revision levels */
|
||
|
/* NOTE: The actual revision level is the last two digits. */
|
||
|
/* For example: 0x0000010b is file revision level 0b. The */
|
||
|
/* 01 in front denotes a 32-bit file, a 02 will denote a */
|
||
|
/* 64-bit file (which will be changed by a mask when the */
|
||
|
/* file is created or resized. */
|
||
|
|
||
|
#define DBF0100 0x00000100 /* original file format */
|
||
|
#define DBF0101 0x00000101 /* fixed header size */
|
||
|
#define DBF0102 0x00000102 /* fix hash type 7 bug */
|
||
|
#define DBF0103 0x00000103 /* reduce header more */
|
||
|
#define DBF0104 0x00000104 /* change type 30 largerec */
|
||
|
#define DBF0105 0x00000105 /* change header size - min 1K */
|
||
|
#define DBF0106 0x00000106 /* even sep, header = sep */
|
||
|
#define DBF0107 0x00000107 /* newstyle item padding */
|
||
|
#define DBF0108 0x00000108 /* gnustyle item padding */
|
||
|
#define DBF0109 0x00000109 /* PI/open cnvtd files, separations 2&6 */
|
||
|
#define DBF010a 0x0000010a /* freechain's freeflag check */
|
||
|
#define DBF010b 0x0000010b /* NLS sort local info - last of old style header */
|
||
|
#define DBF010c 0x0000010c /* new style header with long addr support */
|
||
|
|
||
|
#define DBFMASK 0xacef010c /* this is current tag */
|
||
|
#define DBFLOGV 0xaccc0001 /* Revision number of Transaction logs */
|
||
|
#define DBFSICA 0xacef0004 /* Revision number of sica 25046 */
|
||
|
/* Rev 4, 95C: longer NLS schema,table names */
|
||
|
|
||
|
/* Various masks */
|
||
|
#define DBFMOK 0xacef0000
|
||
|
#define DBFREV 0x0000ffff
|
||
|
#define DBUMASK 0x3fff0000
|
||
|
#if IS_64BIT_ADDR == 1
|
||
|
#define DBHMASK 0x000000007fffffff
|
||
|
#else
|
||
|
#define DBHMASK 0x7fffffff
|
||
|
#endif
|
||
|
#define DBWMASK 0x80000000
|
||
|
#define DBLMASK 0x00008000
|
||
|
#define DBRMASK 0x00007fff
|
||
|
#define DBSMASK 0x80007fff
|
||
|
#define DBUPLUS 0x00010000
|
||
|
#define DBCMASK 0xc000ffff
|
||
|
#define DBXMASK 0x0fffffff
|
||
|
#define DXEMASK 0x0000000f /* mask to check index enable disable status */
|
||
|
#define DSEMASK 0x000000f0 /* mask to check stats enable disable status */
|
||
|
#define DBCLRFS 0xacef00ff /* mask to clear file system bits */
|
||
|
#define DBFIL64 0x00000200 /* mask to make file 64-bit */
|
||
|
|
||
|
/* Distributed File masks */
|
||
|
#define DF001 0x00000001 /* original Distributed File format */
|
||
|
#define DFmask 0xacedf001 /* current Distributed File tag */
|
||
|
#define DFmok 0xacedf000
|
||
|
#define DFrev 0x00000fff
|
||
|
|
||
|
/* Header size minimum */
|
||
|
#define MIN_HEADER_SIZE 1024 /* Smallest header size supported */
|
||
|
|
||
|
/* 32-bit file header offsets */
|
||
|
#define Idxoff 20 /* offset to index flags */
|
||
|
#define rszname 24 /* concurrent resize path */
|
||
|
#define T30data 92 /* offset to t30 data area */
|
||
|
#define Dstatoff 128 /* offset to FILE.USAGE stats */
|
||
|
#define Tstmpoff (Dstatoff + 14*sizeof(int)) /* offset to FILE.USAGE timestamp */
|
||
|
#define Clrfiltime 364 /* Time of last clearfile operation */
|
||
|
#define Bakoffset 368 /* offset to uvbackup elements */
|
||
|
#define UVreadonly 380 /* offset of readonly flag */
|
||
|
#define Idxname 384 /* offset of AK directory path */
|
||
|
#define Idxnln 128 /* max length of AK directory path */
|
||
|
#define TLfilnum 276 /* Active transaction file number */
|
||
|
#define pTLfilnum 280 /* Permanent Transaction logging file number */
|
||
|
#define TLflags 284 /* Inconsistent */
|
||
|
#define Chkpoint 288 /* Checkpoint value */
|
||
|
#define TXwarmLSN 292 /* Eight bytes long */
|
||
|
#define NLSmapcsum 300 /* Checksum of NLS map name */
|
||
|
#define NLSmapname 304 /* NLS map name: 32 bytes long */
|
||
|
#define NLSsortcsum 200 /* 4 bytes for checksum of the NLSsort locale maps */
|
||
|
#define NLSsortmap 204 /* 32 bytes for the name of the NLSsort locale */
|
||
|
#define UVSicadata 512 /* Pointer to sicablock */
|
||
|
#define MKDBSTAMP 516 /* time stamp from mkdbfile */
|
||
|
#define Partblock 520 /* Pointer to partblock */
|
||
|
#define UVSchema 524 /* UVSchema is the name of the schema.VOC only - 20 chars */
|
||
|
#define SQLidxmap 544 /* 8 bytes long */
|
||
|
#define UDRflags 552 /* UDR flags 4 bytes long */
|
||
|
#define UDRunique 556 /* UDR unique ID 4 bytes long */
|
||
|
|
||
|
/* 64-bit file header offsets */
|
||
|
#define FileModulus 4
|
||
|
#define FileSeparation 12
|
||
|
#define FileType 16
|
||
|
#define FreeChain 24
|
||
|
#define T30data64 32
|
||
|
#define UVSicadata64 84
|
||
|
#define Partblock64 92
|
||
|
#define rszname64 560
|
||
|
/* These are the current bits that are used within the idxoff word
|
||
|
** within a file header. Also, 0x4 thru 0x40 are used exclusively
|
||
|
** within Type25 files.
|
||
|
*/
|
||
|
#define Idx_disabled 0x01 /* Indices are NOT updated */
|
||
|
#define Idx_outadate 0x02 /* Indices out of sync with data file */
|
||
|
#define Idx_ritejust 0x04 /* Index is right justified */
|
||
|
#define Idx_knowjust 0x08 /* Index was created by CREATE.INDEX */
|
||
|
#define Idx_unique 0x10 /* Index is UNIQUE */
|
||
|
#define Idx_numeric 0x20 /* DBfindt25() to use compare() function */
|
||
|
#define Idx_sqlitype 0x40 /* DBfindt25() to use sqlcmp() function */
|
||
|
#define Idx_multpart 0x80 /* Use all parts of a mulit-part index */
|
||
|
|
||
|
/* file read-only flag */
|
||
|
#define SQLCatalog 1
|
||
|
/* DEFAULT value of Incremental Backup Bits */
|
||
|
#define RRbackup 0x0003
|
||
|
/* Macros */
|
||
|
#define SET_FILE64( x ) { x = ( x & DBCLRFS ) | DBFIL64; }
|
||
|
|
||
|
/* These are the values of the DBFILE structure member 'addr_support'
|
||
|
** that is set by the DBopen function. This structure member defines
|
||
|
** the size of addresses, either 32- or 64-bit, that are used within
|
||
|
** both the DBITEM structure and the uniVerse file header.
|
||
|
**
|
||
|
** The values are also used as indexes into the global FH_OFFSETS table,
|
||
|
** which defines the offset locations of uniVerse file header elements.
|
||
|
**
|
||
|
** These values should NOT be changed without modifying the FH_OFFSETS
|
||
|
** table.
|
||
|
*/
|
||
|
#define OLD32 1
|
||
|
#define NEW32 3
|
||
|
#define NEW64 5
|
||
|
|
||
|
/* The following define the mnemonic names to be used as row offsets
|
||
|
** into the FH_OFFSETS table (in hdroffsets.h). Gaps are left within
|
||
|
** the sequence to allow for future use of unused header area.
|
||
|
**
|
||
|
** NOTE: if you add or change these #define's, you must also modify
|
||
|
** the corresponding entry in FILEINFO.H, so that the BASIC
|
||
|
** run machine utilizes the same values.
|
||
|
*/
|
||
|
#define FH_REVISION 0
|
||
|
#define FH_MODULUS 1
|
||
|
#define FH_SEPARATION 2
|
||
|
#define FH_FILETYPE 3
|
||
|
#define FH_INDEXFLAGS 4
|
||
|
#define FH_FREECHAIN 5
|
||
|
#define FH_T30INFOALL 6
|
||
|
#define FH_T30TYPE 7
|
||
|
#define FH_T30SPLIT 8
|
||
|
#define FH_T30MERGE 9
|
||
|
#define FH_T30CURMOD 10
|
||
|
#define FH_T30BASEMOD 11
|
||
|
#define FH_T30LARGEREC 12
|
||
|
#define FH_T30CURRLOAD 13
|
||
|
#define FH_T30SELECTCNT 14
|
||
|
#define FH_T30NEXTSPLIT 15
|
||
|
#define FH_SICADATA 16
|
||
|
#define FH_PARTBLOCK 17
|
||
|
|
||
|
#define FH_STATALL 29
|
||
|
#define FH_STAT01 30
|
||
|
#define FH_STAT02 31
|
||
|
#define FH_STAT03 32
|
||
|
#define FH_STAT04 33
|
||
|
#define FH_STAT05 34
|
||
|
#define FH_STAT06 35
|
||
|
#define FH_STAT07 36
|
||
|
#define FH_STAT08 37
|
||
|
#define FH_STAT09 38
|
||
|
#define FH_STAT10 39
|
||
|
#define FH_STAT11 40
|
||
|
#define FH_STAT12 41
|
||
|
#define FH_STAT13 42
|
||
|
#define FH_STAT14 43
|
||
|
#define FH_STAT15 44
|
||
|
#define FH_STAT16 45
|
||
|
#define FH_STAT17 46
|
||
|
#define FH_STAT18 47
|
||
|
#define FH_NLSSORTCUM 48
|
||
|
#define FH_NLSSORTMAP 49
|
||
|
|
||
|
#define FH_TLFILNUM 60
|
||
|
#define FH_pTLFILNUM 61
|
||
|
#define FH_TLFLAGS 62
|
||
|
#define FH_CHKPOINT 63
|
||
|
#define FH_TXWARMLSN 64
|
||
|
#define FH_NLSMAPCSUM 65
|
||
|
#define FH_NLSMAPNAME 66
|
||
|
|
||
|
#define FH_CLEARTIME 80
|
||
|
#define FH_BAKTIME 81
|
||
|
#define FH_BAKFLGS 82
|
||
|
#define FH_BAKCNT 83
|
||
|
#define FH_INDEXPATH 85
|
||
|
#define FH_MKDBSTAMP 87
|
||
|
#define FH_UVREADONLY 88
|
||
|
#define FH_UVSCHEMA 89
|
||
|
#define FH_IDXCOLCNT 90
|
||
|
#define FH_IDXCOLMAP 91
|
||
|
#define FH_UDRFLAGS 92
|
||
|
#define FH_UDRUNIQUE 93
|
||
|
#define FH_RESIZEPATH 94
|
||
|
|
||
|
#define TYPE1_FILE 1
|
||
|
#define TYPE19_FILE 19
|
||
|
#define BTREE_FILE 25
|
||
|
#define DISTRIBUTED_FILE 27
|
||
|
#define DYNAMIC_FILE 30
|
||
|
#define VIEW_FILE 41
|
||
|
#endif
|