diff options
Diffstat (limited to 'private/utils/ntbackup/inc/nw386.h')
-rw-r--r-- | private/utils/ntbackup/inc/nw386.h | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/private/utils/ntbackup/inc/nw386.h b/private/utils/ntbackup/inc/nw386.h new file mode 100644 index 000000000..073cbd479 --- /dev/null +++ b/private/utils/ntbackup/inc/nw386.h @@ -0,0 +1,257 @@ +/** +Copyright(c) Maynard Electronics, Inc. 1984-89 + + + Name: nw386.h + + Date Updated: $./FDT$ $./FTM$ + + Description: This file contains prototypes and defines for the NetWare + 386 specific functions. Most of the information in this file + was obtained by examining the source to the preliminary + NetWare 386 C interface functions. Each of these functions was + designed to impliment only one API. The Novell library tries to + releive the developer of some of the complexity of these functions + by combining APIs into a single function. However, this is not + desirable when trying to maximize performance. + + + Location: + + + $Log: G:/LOGFILES/NW386.H_V $ + * + * Rev 1.0 09 May 1991 13:31:56 HUNTER + * Initial revision. + +**/ +/* $end$ */ + +#ifndef _nw386_h_ +#define _nw386_h_ + + +#define DOS_NAME_SPACE 0 +#define MAC_NAME_SPACE 1 + +#define NW_MAX_NAME_SPACE_ENTRY_SIZE 127 /* @@@ ??? */ +#define NW_MAX_NCP_PATH 255 +#define NW_MAX_DIR_RESTRICTIONS 33 +#define NW_MAX_VOL_NAME 48 + + +#define NW_CHANGE_DOS_NAME 0x0001 +#define NW_CHANGE_DOS_ATTRIBUTES 0x0002 +#define NW_CHANGE_DOS_CREATE_DATE 0x0004 +#define NW_CHANGE_DOS_CREATE_TIME 0x0008 +#define NW_CHANGE_DOS_OWNER 0x0010 +#define NW_CHANGE_DOS_ARCHIVE_DATE 0x0020 +#define NW_CHANGE_DOS_ARCHIVE_TIME 0x0040 +#define NW_CHANGE_DOS_ARCHIVER_ID 0x0080 +#define NW_CHANGE_DOS_MODIFY_DATE 0x0100 +#define NW_CHANGE_DOS_MODIFY_TIME 0x0200 +#define NW_CHANGE_DOS_MODIFIER_ID 0x0400 /* for files only */ +#define NW_CHANGE_DOS_NEXT_TRUSTEE 0x0400 /* for directories only */ +#define NW_CHANGE_DOS_ACCESS_DATE 0x0800 /* for files only */ +#define NW_CHANGE_DOS_INHERITED_RIGHTS 0x1000 +#define NW_CHANGE_DOS_MAXIMUM_SPACE 0x2000 /* for dirs only */ + +#define NW_CHANGE_MAC_NAME 0x0001 +#define NW_CHANGE_MAC_FINDER_INFO 0x0002 +#define NW_CHANGE_MAC_PRODOS_INFO 0x0004 + +#define NW_CHANGE_EVERYTHING 0xFFFFFFFF + +#define NW_NORMAL_ATTR 0x00000000L +#define NW_READ_ONLY_ATTR 0x00000001L +#define NW_HIDDEN_ATTR 0x00000002L +#define NW_SYSTEM_ATTR 0x00000004L +#define NW_EXECUTE_ONLY_ATTR 0x00000008L +#define NW_DIRECTORY_ATTR 0x00000010L +#define NW_NEEDS_ARCHIVED_ATTR 0x00000020L +#define NW_EXECUTE_CONFIRM_ATTR 0X00000040L +#define NW_SHAREABLE_ATTR 0x00000080L + +#define NW_LOW_SEARCH_ATTR 0x00000100L +#define NW_MID_SEARCH_ATTR 0x00000200L +#define NW_HI_SEARCH_ATTR 0x00000400L +#define NW_PRIVATE_ATTR 0x00000800L +#define NW_TRANSACTIONAL_ATTR 0x00001000L +#define NW_INDEXED_ATTR 0x00002000L +#define NW_READ_AUDIT_ATTR 0x00004000L +#define NW_WRITE_AUDIT_ATTR 0x00008000L + +#define NW_PURGE_ATTR 0x000010000L +#define NW_RENAME_INHIBIT_ATTR 0x000020000L +#define NW_DELETE_INHIBIT_ATTR 0x000040000L +#define NW_COPY_INHIBIT_ATTR 0x000080000L + + +typedef struct DOS_NAME_SPACE_FILE_INFO { + UINT32 last_modifier_id ; /* 57 */ + UINT32 data_fork_size ; /* 61 */ + UINT8 reserved1[44]; /* 65 */ + UINT16 inherited_rights_mask; /* 109 */ + UINT16 last_access_date ; /* 111 */ + UINT8 reserved2[20]; /* 113 */ + UINT32 primary_entry; /* 133 */ + UINT32 name_list ; /* 137 */ + } DOS_NAME_SPACE_FILE_INFO ; + + +typedef struct DOS_NAME_SPACE_DIR_INFO { + UINT32 next_trustee_entry; /* 57 */ + UINT8 reserved1[48]; /* 61 */ + UINT32 maximum_space; /* 109 */ + UINT16 inherited_rights_mask; /* 113 */ + } DOS_NAME_SPACE_DIR_INFO ; + + + +typedef struct DOS_NAME_SPACE_INFO { + UINT8 name_length; + CHAR name[12]; /* no '\0' */ + UINT16 creation_time; + UINT16 creation_date; + UINT32 owner_id; + UINT16 archive_time; + UINT16 archive_date; + UINT32 archiver_id; + UINT16 modify_time; + UINT16 modify_date; + union { + DOS_NAME_SPACE_DIR_INFO dir ; + DOS_NAME_SPACE_FILE_INFO file ; + } info ; + } DOS_NAME_SPACE_INFO ; + +typedef struct MAC_NAME_SPACE_INFO { + UINT8 name_length; + CHAR name[32]; + UINT32 resource_fork; + UINT32 resource_fork_size; + UINT8 finder_info[32]; + UINT8 pro_dos_info[6]; + } MAC_NAME_SPACE_INFO ; + + +typedef struct UNKNOWN_NAME_SPACE_INFO { + UINT8 unknown[ NW_MAX_NAME_SPACE_ENTRY_SIZE ]; + } UNKNOWN_NAME_SPACE_INFO ; + + +typedef struct NAME_SPACE_ENTRY * NAME_SPACE_ENTRY_PTR ; + +typedef struct NAME_SPACE_ENTRY { + UINT8 unknown1[1]; + UINT32 sub_directory; + UINT32 attributes; + INT32 entry_id; /* This field is dynamically created each time the file */ + /* server is brought up. Do NOT back up this field. */ + UINT8 flags; + UINT8 name_space_type; + union { + DOS_NAME_SPACE_INFO dos; + MAC_NAME_SPACE_INFO mac; + UNKNOWN_NAME_SPACE_INFO unknown; + } info; + } NAME_SPACE_ENTRY ; + + +typedef struct TRUSTEE_REPLY * TRUSTEE_REPLY_PTR ; + +typedef struct TRUSTEE_REPLY { + UINT8 num_trustees_returned ; + UINT32 trustee_id[ 20 ]; + UINT16 trustee_rights[ 20 ]; + } TRUSTEE_REPLY ; + +typedef struct DIR_RESTRICTION { + UINT8 level; + UINT32 max; + UINT32 current; + } DIR_RESTRICTION ; + + +typedef struct DIR_RESTRICTION_LIST * DIR_RESTRICTION_LIST_PTR ; + +typedef struct DIR_RESTRICTION_LIST { + UINT8 num_restrictions; + DIR_RESTRICTION restriction[ NW_MAX_DIR_RESTRICTIONS ] ; /* array of restrictions */ + } DIR_RESTRICTION_LIST ; + + +typedef struct DIR_INFO_REPLY * DIR_INFO_REPLY_PTR ; + +typedef struct DIR_INFO_REPLY { + UINT32 total_blocks; + UINT32 avail_blocks; + UINT32 total_dir_entries; + UINT32 avail_dir_entries; + UINT32 flags; + UINT8 sectors_per_block; + UINT8 vol_name_length; + CHAR vol_name[ NW_MAX_VOL_NAME ]; + } DIR_INFO_REPLY; + + +typedef struct DIR_ENTRY * DIR_ENTRY_PTR ; + +typedef struct DIR_ENTRY { + UINT32 sub_directory; + UINT32 attributes; + UINT8 unique_id; + UINT8 flags; + UINT8 name_space_type; + DOS_NAME_SPACE_INFO dinfo ; + } DIR_ENTRY ; + + +typedef struct DIR_ENTRY_SCAN * DIR_ENTRY_SCAN_PTR ; + +typedef struct DIR_ENTRY_SCAN { + INT32 entry_id; /* This field is dynamically created each time the file */ + /* server is brought up. Do NOT back up this field. */ + DIR_ENTRY entry; + } DIR_ENTRY_SCAN ; + + + +INT16 GetNameSpaceEntry( UINT8 volume_number, INT32 sequence, UINT8 name_space_type, + NAME_SPACE_ENTRY_PTR entry_info_ptr ) ; + +INT16 FillNameSpaceBuffer( UINT8 volumeNum, NAME_SPACE_ENTRY_PTR ns_buf_ptr ) ; + + + +INT16 ScanEntryForTrustees386( UINT8 directory_handle, CHAR_PTR directory_path, + UINT8 seq_number, TRUSTEE_REPLY_PTR trustee_reply_buf ) ; + +INT16 GetDirRestrictions386( UINT8 dir_handle, DIR_RESTRICTION_LIST_PTR res_list ) ; + + +INT16 GetDirInfo386( UINT8 dir_handle, DIR_INFO_REPLY_PTR dir_info_buf ) ; + + +INT16 SetTrustee386( UINT8 directory_handle, CHAR_PTR directory_path, + UINT32 trustee_object_id, UINT16 trustee_rights_mask ) ; + + +INT16 SetDirRestriction386( UINT8 dir_handle, INT32 restriction ) ; + + +UINT16 ScanDirEntry386( UINT8 directory_handle, CHAR_PTR search_path, + UINT8 search_attributes, UINT32 prev_entry_id, + DIR_ENTRY_SCAN_PTR dir_entry_buf ) ; + + +INT16 GetDirEntry386( UINT8 dir_handle, DIR_ENTRY_PTR dir_entry_ptr ) ; + + +INT16 SetDirEntry386( UINT8 dir_handle, UINT8 search_attribute, + UINT32 entry_id, UINT32 change_bits, + DIR_ENTRY_PTR dir_entry_ptr ) ; + + +#endif + |