123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- /*
- Copyright (c) 1990-2006 Info-ZIP. All rights reserved.
- See the accompanying file LICENSE, version 2000-Apr-09 or later
- (the contents of which are also included in zip.h) for terms of use.
- If, for some reason, all these files are missing, the Info-ZIP license
- also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
- */
- #ifndef __tandem_h /* prevent multiple inclusions */
- #define __tandem_h
- #ifndef TANDEM
- # define TANDEM /* better than __TANDEM */
- #endif
- /* LICENSED define now supplied by compile time option (MAKE) */
- #define NO_UNISTD_H
- #define NO_RMDIR
- #define NO_MKTEMP
- /* TANDEM supplies proper UTC vs. local time conversion, so enable Info-ZIP's
- UT e.f. support unless explicitly suppressed by a compilation option. */
- #if (!defined(USE_EF_UT_TIME) && !defined(NO_EF_UT_TIME))
- # define USE_EF_UT_TIME
- #endif
- #if (defined(NO_EF_UT_TIME) && defined(USE_EF_UT_TIME))
- # undef USE_EF_UT_TIME
- #endif
- /* Include file for TANDEM */
- #ifndef NULL
- # define NULL 0
- #endif
- #include <time.h> /* the usual non-BSD time functions */
- #include <stdio.h>
- #include <sysstat.h>
- #include <unistd.h>
- #include <errno.h>
- #include <ctype.h>
- #define PASSWD_FROM_STDIN
- /* Kludge until we know how to open a non-echo tty channel */
- #define NSK_UNSTRUCTURED 0
- #define NSK_RELATIVE 1
- #define NSK_ENTRYSEQUENCED 2
- #define NSK_KEYSEQUENCED 3
- #define NSK_OBJECTFILECODE 100
- #define NSK_EDITFILECODE 101
- #define NSK_ZIPFILECODE 1001
- #define TANDEM_BLOCKSIZE 4096
- #define MAX_NORMAL_READ 4096
- #define MAX_EDIT_READ 255
- #define MAX_LARGE_READ 57344
- #define MAX_LARGE_READ_EXPAND 30720
- #define MAXFILEPARTLEN 8
- #define MAXPATHLEN 128
- #define EXTENSION_MAX 3
- /* FILENAME_MAX is defined in stdio.h */
- #define EXIT zexit /* To stop creation of Abend files */
- #define RETURN zexit /* To stop creation of Abend files */
- #define putc zputc /* To allow us to auto flush */
- #define FOPR "rb"
- #define FOPM "r+"
- #define FOPW "wb"
- #define FOPWT "w"
- #define NAMELEN FILENAME_MAX+1+EXTENSION_MAX /* allow for space extension */
- struct dirent {
- struct dirent *d_next;
- char d_name[NAMELEN+1];
- };
- typedef struct _DIR {
- struct dirent *D_list;
- struct dirent *D_curpos;
- char D_path[NAMELEN+1];
- } DIR;
- DIR * opendir(const char *dirname);
- struct dirent *readdir(DIR *dirp);
- void rewinddir(DIR *dirp);
- int closedir(DIR *dirp);
- char * readd(DIR *dirp);
- #define DISK_DEVICE 3
- /* SETMODE Literals */
- #define SET_FILE_SECURITY 1
- #define SET_FILE_OWNER 2
- #define SET_FILE_BUFFERED 90
- #define SET_FILE_MAXEXTENTS 92
- #define SET_FILE_BUFFERSIZE 93
- #define SET_LARGE_TRANSFERS 141
- /* FILE_OPEN_ Literals */
- #define NSK_RDWR 0
- #define NSK_RDONLY 1
- #define NSK_WRONLY 2
- #define NSK_APPEND 3
- #define NSK_SHARED 0
- #define NSK_EXCLUSIVE 1
- #define NSK_PROCESSEXCLUSIVE 2
- #define NSK_PROTECTED 3
- #define NSK_UNSTRUCTUREDACCESS 0x8000
- #define NSK_NOUPDATEOPENTIME 0x2000
- #define NSK_NO_DELIMITER 0x0001
- #define NSK_USE_FF_DELIMITER 0x0002
- #define NSK_SPACE_FILL 0x0004
- #define NSK_TRIM_TRAILING_SPACE 0x0008
- #define NSK_LARGE_READ_EXPAND 0x0100 /* use smaller value for Expand */
- #define DOS_EXTENSION '.'
- #define TANDEM_EXTENSION ' '
- #define TANDEM_DELIMITER '.'
- #define TANDEM_NODE '\\'
- #define INTERNAL_DELIMITER '/'
- #define INTERNAL_NODE '//'
- #define TANDEM_WILD_1 '*'
- #define TANDEM_WILD_2 '?'
- #define DOS_EXTENSION_STR "."
- #define TANDEM_EXTENSION_STR " "
- #define TANDEM_DELIMITER_STR "."
- #define TANDEM_NODE_STR "\\"
- #define INTERNAL_DELIMITER_STR "/"
- #define INTERNAL_NODE_STR "//"
- /* Use 'spare' area at end of stat structure to hold additional Tandem/NSK
- file details. Initially used to hold Creation time, now also holds most
- Enscribe details */
- struct nsk_stat_reserved
- {
- int64_t spare[3];
- };
- #pragma FIELDALIGN SHARED8 nsk_owner
- struct nsk_owner
- {
- unsigned group : 8;
- unsigned user : 8;
- };
- #pragma FIELDALIGN SHARED8 nsk_file_flags
- struct nsk_file_flags
- {
- unsigned buffered : 1;
- unsigned audited : 1;
- unsigned acompress : 1;
- unsigned icompress : 1;
- unsigned dcompress : 1;
- unsigned oddunstr : 1;
- unsigned verified : 1;
- unsigned serial : 1;
- unsigned refresheof : 1;
- unsigned broken : 1;
- unsigned corrupt : 1;
- unsigned primpart : 1;
- unsigned secpart : 1;
- unsigned crashopen : 1;
- unsigned rollforward : 1;
- unsigned clearonpurge: 1;
- };
- #pragma FIELDALIGN SHARED8 nsk_file_attrs_def
- struct nsk_file_attrs_def
- {
- unsigned short filecode; /* 16 */
- unsigned short block; /* 16 */ /* Allow of block > 4096 one day ! */
- struct nsk_file_flags flags; /* 16 */
- struct nsk_owner owner; /* 16 */
- unsigned short priext; /* 16 */
- unsigned short secext; /* 16 */
- unsigned maxext : 10;
- unsigned read : 3;
- unsigned write : 3;
- unsigned execute : 3;
- unsigned delete : 3;
- unsigned licensed : 1;
- unsigned progid : 1;
- unsigned keylen : 8;
- unsigned : 5;
- unsigned keyoff : 11;
- unsigned : 1;
- unsigned filetype : 2;
- unsigned fileopen : 1;
- unsigned reclen : 12;
- };
- typedef struct nsk_file_attrs_def nsk_file_attrs;
- #pragma FIELDALIGN SHARED8 nsk_stat_overlay
- struct nsk_stat_overlay
- {
- time_t creation_time; /* 32 bits */
- nsk_file_attrs nsk_ef_region;
- /* char nsk_ef_region[20]; *//* EF region */
- };
- typedef union
- {
- struct nsk_stat_reserved reserved;
- struct nsk_stat_overlay ov;
- } nsk_stat_ov;
- /* Prototype function declarations */
- void zexit (int);
- int zputc(
- int,
- FILE *
- );
- int zgetch (void);
- short parsename(
- const char *,
- char *,
- char *
- );
- int islicensed (void);
- /* End of prototype function declarations */
- #endif /* !__tandem_h */
|