summaryrefslogblamecommitdiffstats
path: root/private/utils/ntbackup/inc/afpdblk.h
blob: 8e5b5a6307ef6e39df798c04ecca7d512a70c608 (plain) (tree)




















































































































































                                                                                 
/**   :IH1:    Copyright (C) Maynard Electronics, Inc 1984-89

:Name:        afpcblk.h

:Description: This file contains the definition of the Novell
     file and directory control blocks.

:Units:       Novell < 2.15 File System


	$Log:   N:/LOGFILES/AFPDBLK.H_V  $
 * 
 *    Rev 1.2   05 Jan 1993 17:41:44   CHUCKB
 * Added some defines per code review.
 *
 *    Rev 1.1   28 Aug 1992 16:10:28   BARRY
 * No longer need nov386.h.
 *
 *    Rev 1.0   09 May 1991 13:31:00   HUNTER
 * Initial revision.



**/

#ifndef afpdblk_h
#define afpdblk_h

/* miximum Novell string lengths */
#define AFP_MAX_FSIZE         33
#define AFP_MAX_FLENGTH       32

#define AFP_MAX_SHORT_NAME    16
#define AFP_MAX_SHORT_PATH    255

#define AFP_NET_HAND_SIZE     6

#define AFP_READ_ONLY    1
#define AFP_HIDDEN       2
#define AFP_SYSTEM       4
#define AFP_EXECUTE      8
#define AFP_SUBDIR       0x10
#define AFP_ARCHIVE      0x20
#define AFP_SHARE        0x80
#define AFP_TRANS        0x10
#define AFP_INDEX        0x20
#define AFP_IN_USE       0x8000
#define AFP_EMPTY_DIR    0x8000

/* Bit values for the AFP set info bit map */
#define AFP_SET_ATTRIBUTES    0x0001         /* Set DOS and extended attrs */
#define AFP_SET_CREATE_DATE   0x0002         /* Set creation date          */
#define AFP_SET_ACCESS_DATE   0x0004         /* Set last access date       */
#define AFP_SET_MODIFY_DATE   0x0008         /* Set modify date and time   */
#define AFP_SET_BACKUP_DATE   0x0010         /* Set archive date and time  */
#define AFP_SET_ALL_INFO      0xffff         /* Set all fields             */

#define CONVERT_DOS_ATTRIB( atrib )  ((UINT32)(attrib) << 16 )

/* defines used for FSYS_HAND reserved space */
#define BIND_CLOSED   0x80
#define BIND_FILE1    0x01   /* NET$BIND or NET$OBJ */
#define BIND_FILE2    0x02   /* NET$BVAL or NET$VAL */
#define BIND_FILE3    0x04   /* NET$PROP            */
#define BIND_ALL_286  0x03
#define BIND_ALL_386  0x07


typedef struct AFPNOV_COMMON {
     UINT32    search_id ;              /*                    */
     UINT32    entry_id ;               /*       request      */
     CHAR      filespec[AFP_MAX_FSIZE];


     UINT16    attrib ;
     UINT16    create_date ;
     UINT16    access_date ;       /* empty for directories */
     UINT16    modify_date ;
     UINT16    modify_time ;
     UINT16    backup_date ;
     UINT16    backup_time ;
     UINT8     finder_info[32] ;
     UINT8     long_name[AFP_MAX_FSIZE - 1] ;
     UINT32    owner_id ;
     CHAR      short_name[15] ;

     BOOLEAN   os_info_complete ;
     UINT16    tape_attribs ;

} AFPNOV_COMMON ;

typedef struct AFP_FDB {
     UINT8    blk_type ;          /* block id = FDB_ID                */
     COM_DBLK fs_reserved ;

     AFPNOV_COMMON  com ;

     UINT32 data_fork_size ;
     UINT32 data_fork_offset;
     UINT32 res_fork_size ;
     UINT32 res_fork_offset ;

     UINT16 os_name ;                     /* for backup will be short name */

     NOVELL_386_FILE info_386 ;

} AFP_FDB, *AFP_FDB_PTR ;


typedef struct AFP_DDB         {
     UINT8    blk_type ;          /* block id = DDB_ID                */
     COM_DBLK fs_reserved ;

     AFPNOV_COMMON  com ;

     UINT16     data_size ;
     UINT32     creat_date ;
     UINT8      max_rights ;
     UINT32     trust_fork_size ;
     UINT32     trust_fork_offset;

     INT16      path_leng ;
     UINT16     path ;             /* short path names   \FRED\SUE */

     UINT16     long_path;         /* long name for backup    :FRED:SUE */
     INT16      long_path_leng ;

     UINT16     os_path;           /* short name for backup */
     INT16      os_path_leng ;

     UINT8      trust_fork_format ;
     NOVELL_386_DIR info_386 ;

} AFP_DDB, *AFP_DDB_PTR;

/*
    Minimal DDB
*/
typedef struct AFP_MIN_DDB {
     Q_ELEM   q ;
     UINT32   search_id ;
     UINT32   entry_id ;
     CHAR     filespec[ AFP_MAX_FSIZE ] ; /* search path                       */
     CHAR_PTR path;                       /* path made of short names          */
     CHAR_PTR long_path;                  /* path made from long names         */
} AFP_MIN_DDB, *AFP_MIN_DDB_PTR;

#endif