summaryrefslogtreecommitdiff
path: root/tandem/tandem.h
diff options
context:
space:
mode:
Diffstat (limited to 'tandem/tandem.h')
-rw-r--r--tandem/tandem.h236
1 files changed, 236 insertions, 0 deletions
diff --git a/tandem/tandem.h b/tandem/tandem.h
new file mode 100644
index 0000000..7296d26
--- /dev/null
+++ b/tandem/tandem.h
@@ -0,0 +1,236 @@
+/*
+ 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 */