summaryrefslogtreecommitdiff
path: root/tandem/tandem.h
diff options
context:
space:
mode:
Diffstat (limited to 'tandem/tandem.h')
-rw-r--r--tandem/tandem.h248
1 files changed, 248 insertions, 0 deletions
diff --git a/tandem/tandem.h b/tandem/tandem.h
new file mode 100644
index 0000000..7868fdd
--- /dev/null
+++ b/tandem/tandem.h
@@ -0,0 +1,248 @@
+/*
+ Copyright (c) 1990-1999 Info-ZIP. All rights reserved.
+
+ See the accompanying file LICENSE, version 1999-Oct-05 or later
+ (the contents of which are also included in zip.h) for terms of use.
+ If, for some reason, both of these files are missing, the Info-ZIP license
+ also may be found at: ftp://ftp.cdrom.com/pub/infozip/license.html
+*/
+#ifndef __tandem_h /* prevent multiple inclusions */
+#define __tandem_h
+
+#define TANDEM /* better than __TANDEM */
+
+/* LICENSED define now supplied by compile time option (MAKE) */
+
+#define NO_UNISTD_H
+#define NO_RMDIR
+#define NO_MKTEMP
+#ifdef ZIP
+# define USE_CASE_MAP
+# define USE_EF_UT_TIME
+#endif /* ZIP */
+
+/* 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>
+
+#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 fopen zipopen /* To allow us to set extent sizes */
+#define putc zputc /* To allow us to auto flush */
+
+
+/* Prototype function declarations */
+
+void zexit (int);
+
+FILE *zipopen(
+const char *,
+const char *
+);
+
+int zputc(
+int,
+FILE *
+);
+
+int zgetch (void);
+
+short parsename(
+ const char *,
+ char *,
+ char *
+);
+
+int islicensed (void);
+
+time_t gmt_to_time_t (long long *);
+
+/* End of prototype function declarations */
+
+
+#define FOPR "rb"
+#define FOPM "r+"
+#define FOPW "wb"
+#define FOPWT "w"
+
+#define CBSZ 0x10000 /* Was used for both fcopy and file_read. */
+ /* Created separate define (SBSZ) for file_read */
+ /* fcopy param is type size_t (unsigned long) */
+ /* For Guardian we choose a multiple of 4K */
+
+#define ZBSZ 0x10000 /* This is used in call to setvbuf, 64K seems to work */
+ /* in all memory models. Again it is an unsigned long */
+ /* For Guardian we choose a multiple of 4K */
+
+#ifndef __INT32
+#define SBSZ 0x0e000 /* Maximum of size unsigned (int). Only used in STORE */
+ /* method. We can use up to 56K bytes thanks to large */
+ /* transfer mode. Note WSIZE is limited to 32K, which */
+ /* limits the DEFLATE read size to same value. */
+#else
+#define SBSZ 0x10000 /* WIDE model so we can use 64K */
+#endif /* __INT32 */
+
+#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_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];
+};
+
+typedef struct
+{
+ unsigned group : 8;
+ unsigned user : 8;
+} nsk_owner;
+
+typedef struct
+{
+ 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;
+} nsk_file_flags;
+
+typedef struct
+{
+ unsigned short filecode; /* 16 */
+ unsigned short block; /* 16 */ /* Allow of block > 4096 one day ! */
+ nsk_file_flags flags; /* 16 */
+ nsk_owner owner; /* 16 */
+ unsigned short primext; /* 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;
+} nsk_file_attrs;
+
+struct nsk_stat_overlay
+{
+ time_t creation_time; /* 32 */
+ char nsk_ef_start; /* Start of ef region */
+};
+
+typedef union
+{
+ struct nsk_stat_reserved reserved;
+ struct nsk_stat_overlay ov;
+} nsk_stat_ov;
+
+#endif /* !__tandem_h */