mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
281 lines
9.3 KiB
281 lines
9.3 KiB
/**
|
|
Copyright(c) Maynard Electronics, Inc. 1984-89
|
|
|
|
|
|
Name: dblks.h
|
|
|
|
Date Updated: $./FDT$ $./FTM$
|
|
|
|
Description: This file defines the DBLK structure and contains
|
|
the definition of the BLOCK IDs
|
|
|
|
Location: BE_PUBLIC
|
|
|
|
|
|
$Log: T:/LOGFILES/DBLKS.H_V $
|
|
*
|
|
* Rev 1.22 13 Oct 1993 20:31:24 GREGG
|
|
* Redefined attribute bit values to match the MTF spec.
|
|
*
|
|
* Rev 1.21 03 Sep 1993 10:48:12 GREGG
|
|
* Set DBLK data size to 1024 and added comment about how to alloc a DBLK struct.
|
|
*
|
|
* Rev 1.20 06 Aug 1993 16:33:14 DON
|
|
* Added VOLB attribute defines for no_redirect_restore and non_volume
|
|
*
|
|
* Rev 1.19 15 Jul 1993 19:17:10 GREGG
|
|
* Added VCB attrib bits for FUTURE_VER, COMPRESSED and ENCRYPTED sets.
|
|
*
|
|
* Rev 1.18 15 Jul 1993 13:49:00 DON
|
|
* Added a field to the common dblk for 'name space'
|
|
*
|
|
* Rev 1.17 13 Jul 1993 19:15:12 GREGG
|
|
* Added 'compressed_obj' element to common DBLK.
|
|
*
|
|
* Rev 1.16 09 Jun 1993 15:37:06 MIKEP
|
|
* enable c++
|
|
*
|
|
* Rev 1.15 26 Apr 1993 02:43:38 GREGG
|
|
* Sixth in a series of incremental changes to bring the translator in line
|
|
* with the MTF spec:
|
|
*
|
|
* - Redefined attribute bits to match the spec.
|
|
* - Eliminated unused/undocumented bits.
|
|
* - Added code to translate bits on tapes that were written wrong.
|
|
*
|
|
* Matches MAYN40RD.C 1.59, DBLKS.H 1.15, MAYN40.H 1.34, OTC40RD.C 1.26,
|
|
* SYPL10RD.C 1.8, BACK_VCB.C 1.17, MAYN31RD.C 1.44, SYPL10.H 1.2
|
|
*
|
|
* Rev 1.14 11 Nov 1992 22:49:28 STEVEN
|
|
* This is Gregg checking files in for Steve. I don't know what he did!
|
|
*
|
|
* Rev 1.13 10 Nov 1992 08:12:30 STEVEN
|
|
* move os path to common part of dblk
|
|
*
|
|
* Rev 1.12 20 Oct 1992 15:00:54 STEVEN
|
|
* added otc stuff for qtc/otc communication
|
|
*
|
|
* Rev 1.11 09 Oct 1992 15:57:58 STEVEN
|
|
* added Daily backup set support
|
|
*
|
|
* Rev 1.10 23 Sep 1992 09:31:02 BARRY
|
|
* Removed remain_size from DBLK.
|
|
*
|
|
* Rev 1.9 21 Sep 1992 16:13:40 BARRY
|
|
* Added FILE_NAME_IN_STREAM attribute definition.
|
|
*
|
|
* Rev 1.8 23 Jul 1992 09:05:52 STEVEN
|
|
* fix warnings
|
|
*
|
|
* Rev 1.7 09 Jun 1992 16:59:32 BURT
|
|
* removed LBA VALID BIT per GH
|
|
*
|
|
* Rev 1.6 09 Jun 1992 14:18:40 BURT
|
|
* Moved some attribute bit defines
|
|
*
|
|
*
|
|
* Rev 1.5 22 May 1992 11:32:42 STEVEN
|
|
* miss-pell-ed Special
|
|
*
|
|
* Rev 1.4 21 May 1992 13:46:32 STEVEN
|
|
* more long path support
|
|
*
|
|
* Rev 1.3 13 May 1992 12:02:14 STEVEN
|
|
* 40 format changes
|
|
*
|
|
* Rev 1.2 05 May 1992 17:20:52 STEVEN
|
|
* added special bit
|
|
*
|
|
* Rev 1.1 12 Mar 1992 15:53:12 STEVEN
|
|
* 64 bit changes
|
|
*
|
|
* Rev 1.0 09 May 1991 13:30:52 HUNTER
|
|
* Initial revision.
|
|
|
|
**/
|
|
/* begin include list */
|
|
|
|
/* $end$ include list */
|
|
#ifndef DBLKS_H
|
|
#define DBLKS_H
|
|
|
|
/* block types */
|
|
#define UDB_ID ((UINT8)0)
|
|
#define VCB_ID ((UINT8)1)
|
|
#define DDB_ID ((UINT8)8)
|
|
#define FDB_ID ((UINT8)9)
|
|
#define IDB_ID ((UINT8)10)
|
|
#define CFDB_ID ((UINT8)11)
|
|
|
|
/* SSET (VCB) Attributes */
|
|
|
|
#define VCB_ARCHIVE_BIT BIT0 /* This is an Transfer set */
|
|
#define VCB_COPY_SET BIT1 /* backup all do not reset modified flag */
|
|
#define VCB_NORMAL_SET BIT2 /* backup all and reset modified flag */
|
|
#define VCB_DIFFERENTIAL_SET BIT3 /* backup modified files and do NOT reset */
|
|
#define VCB_INCREMENTAL_SET BIT4 /* backup modified files and reset modified flag */
|
|
#define VCB_DAILY_SET BIT5 /* backup file modified today */
|
|
#define VCB_OUT_OF_SEQUENCE_BIT BIT6
|
|
#define VCB_IMAGE_BIT BIT7
|
|
|
|
/* The following three bits are in the vendor specific portion the SSET
|
|
attribute bit field. They are used internally, and not specified in
|
|
the MTF document.
|
|
*/
|
|
|
|
#define VCB_FUTURE_VER_BIT BIT24
|
|
#define VCB_COMPRESSED_BIT BIT25
|
|
#define VCB_ENCRYPTED_BIT BIT26
|
|
|
|
/* VOLB Attributes (currently only used in the MTF translator) */
|
|
|
|
#define VOLB_NO_REDIRECT_RESTORE BIT0
|
|
#define VOLB_NON_VOLUME BIT1
|
|
|
|
/* DIRB (DDB) attribute defines (common to all OS's) */
|
|
|
|
#define DIR_EMPTY_BIT BIT16
|
|
#define DIR_PATH_IN_STREAM_BIT BIT17
|
|
#define DIR_CORRUPT_BIT BIT18
|
|
|
|
/* The following bit is in the vendor specific portion the DIRB attribute
|
|
bit field. It is used internally to indicate that the true type for the
|
|
DBLK is DBDB (Database DBLK), and is not specified in the MTF document.
|
|
*/
|
|
#define DIR_IS_REALLY_DB BIT24
|
|
|
|
/* FILE (FDB) attribute defines (common to all OS's) */
|
|
|
|
#define FILE_IN_USE_BIT BIT16
|
|
#define FILE_NAME_IN_STREAM_BIT BIT17
|
|
#define FILE_CORRUPT_BIT BIT18
|
|
|
|
/* The following define is used in OUR APP ONLY instead of FILE_CORRUPT_BIT
|
|
and DIR_CORRUPT_BIT.
|
|
*/
|
|
#define OBJ_CORRUPT_BIT BIT18
|
|
|
|
/* The following defines are for attribute bits in the "OS Specific"
|
|
portion of the DBLK attribute field. They are common to NT, SMS, UNIX
|
|
and Macintosh.
|
|
|
|
DO NOT USE THESE FOR DOS OS/2 or non-SMS Novell!!!
|
|
*/
|
|
#define OBJ_READONLY_BIT BIT8
|
|
#define OBJ_HIDDEN_BIT BIT9
|
|
#define OBJ_SYSTEM_BIT BIT10
|
|
#define OBJ_MODIFIED_BIT BIT11
|
|
|
|
/* DIRB (DDB) attribute bits for DOS */
|
|
|
|
#define DOS_DIRB_READONLY_BIT BIT8
|
|
#define DOS_DIRB_HIDDEN_BIT BIT9
|
|
#define DOS_DIRB_SYSTEM_BIT BIT10
|
|
#define DOS_DIRB_MODIFIED_BIT BIT11
|
|
|
|
/* FILE (FDB) attribute bits for DOS */
|
|
|
|
#define DOS_FILE_READONLY_BIT BIT0
|
|
#define DOS_FILE_HIDDEN_BIT BIT1
|
|
#define DOS_FILE_SYSTEM_BIT BIT2
|
|
#define DOS_FILE_MODIFIED_BIT BIT5
|
|
|
|
/* DIRB (DDB) attribute bits for OS/2 */
|
|
|
|
#define OS2_DIRB_READONLY_BIT BIT8
|
|
#define OS2_DIRB_HIDDEN_BIT BIT9
|
|
#define OS2_DIRB_SYSTEM_BIT BIT10
|
|
#define OS2_DIRB_MODIFIED_BIT BIT11
|
|
|
|
/* FILE (FDB) attribute bits for OS/2 */
|
|
|
|
#define OS2_FILE_READONLY_BIT BIT0
|
|
#define OS2_FILE_HIDDEN_BIT BIT1
|
|
#define OS2_FILE_SYSTEM_BIT BIT2
|
|
#define OS2_FILE_MODIFIED_BIT BIT5
|
|
|
|
/* DIRB (DDB) attribute bits for non-SMS Novell */
|
|
|
|
#define NOV_DIRB_READ_ACCESS_BIT BIT0
|
|
#define NOV_DIRB_WRITE_ACCESS_BIT BIT1
|
|
#define NOV_DIRB_OPEN_FILE_RIGHTS_BIT BIT2
|
|
#define NOV_DIRB_CREATE_FILE_RIGHTS_BIT BIT3
|
|
#define NOV_DIRB_DELETE_FILE_RIGHTS_BIT BIT4
|
|
#define NOV_DIRB_PARENTAL_RIGHTS_BIT BIT5
|
|
#define NOV_DIRB_SEARCH_RIGHTS_BIT BIT6
|
|
#define NOV_DIRB_MOD_FILE_ATTRIBS_BIT BIT7
|
|
#define NOV_DIRB_READONLY_BIT BIT8
|
|
#define NOV_DIRB_HIDEN_BIT BIT9
|
|
#define NOV_DIRB_SYSTEM_BIT BIT10
|
|
#define NOV_DIRB_MODIFIED_BIT BIT11
|
|
|
|
/* FILE (FDB) attribute bits for non-SMS Novell */
|
|
|
|
#define NOV_FILE_READONLY_BIT BIT0
|
|
#define NOV_FILE_HIDDEN_BIT BIT1
|
|
#define NOV_FILE_SYSTEM_BIT BIT2
|
|
#define NOV_FILE_EXECUTE_ONLY_BIT BIT3
|
|
#define NOV_FILE_MODIFIED_BIT BIT5
|
|
#define NOV_FILE_SHAREABLE_BIT BIT7
|
|
#define NOV_FILE_TRANSACTIONAL_BIT BIT12
|
|
#define NOV_FILE_INDEXING_BIT BIT13
|
|
|
|
/* CFIL (CFDB) attribute defines (common to all OS's) */
|
|
|
|
#define CFDB_LENGTH_CHANGE_BIT BIT16
|
|
#define CFDB_UNREADABLE_BLK_BIT BIT17
|
|
#define CFDB_DEADLOCK_BIT BIT18
|
|
|
|
|
|
typedef struct FS_NAME_Q_ELEM *FS_NAME_Q_ELEM_PTR ;
|
|
typedef struct FS_NAME_Q_ELEM {
|
|
Q_ELEM q ; /* queue element structure for q-ing */
|
|
UINT16 alloc_size ; /* size of allocated buf -> to by path */
|
|
CHAR_PTR name ; /* allocated buffer and FS_Path */
|
|
INT16 name_size; /* length of of FS_Path in bytes */
|
|
} FS_NAME_Q_ELEM ;
|
|
|
|
typedef struct COMMON_DBLK_DATA {
|
|
UINT32 blkid ;
|
|
BOOLEAN continue_obj ;
|
|
BOOLEAN compressed_obj ;
|
|
VOID_PTR stream_ptr ; /* pointer to path stream read in */
|
|
UINT16 stream_offset ; /* current pointer into stream */
|
|
UINT16 tape_seq_num ;
|
|
UINT16 string_type ;
|
|
FS_NAME_Q_ELEM_PTR os_name ;
|
|
union {
|
|
UINT32 did ;
|
|
UINT32 f_mark ;
|
|
} f_d;
|
|
struct {
|
|
UINT32 pba ;
|
|
UINT32 lba ;
|
|
}ba;
|
|
UINT8 os_id ;
|
|
UINT8 os_ver ;
|
|
/* SMS is the only FS using this now */
|
|
UINT32 name_space; /* current name space */
|
|
}COM_DBLK ;
|
|
|
|
|
|
/* Note that the number of elements in the data array used to be hard coded
|
|
to make the structure size exactly 1024. With various compilers doing
|
|
different structure packing this is no longer possible, and we can't
|
|
make this a packed structure since a) this would cause alignment faults
|
|
on some machines and b) we rely on the first two elements in this
|
|
structure matching up with the first two elements in other structures!!!
|
|
As a result, I've changed the array size to a flat 1024 to avoid
|
|
any confusion that there is a known size for this structure. Any
|
|
allocation of a structure of this type or of a data space to hold this
|
|
structure should use "sizeof" to allocate the memory.
|
|
*/
|
|
typedef struct DBLK *DBLK_PTR;
|
|
typedef struct DBLK {
|
|
UINT8 blk_type ;
|
|
COM_DBLK com ;
|
|
UINT8 data[1024] ;
|
|
} DBLK;
|
|
|
|
#endif
|
|
|