1 /* 2 Copyright (c) 1990-1999 Info-ZIP. All rights reserved. 3 4 See the accompanying file LICENSE, version 1999-Oct-05 or later 5 (the contents of which are also included in zip.h) for terms of use. 6 If, for some reason, both of these files are missing, the Info-ZIP license 7 also may be found at: ftp://ftp.cdrom.com/pub/infozip/license.html 8 */ 9 /* Include file for VM/CMS and MVS */ 10 11 /* This is normally named osdep.h on most systems. Since CMS */ 12 /* generally doesn't support directories, it's been given a unique */ 13 /* name to avoid confusion. */ 14 15 16 #ifndef __cmsmvs_h /* prevent multiple inclusions */ 17 #define __cmsmvs_h 18 19 #ifdef MVS 20 # define _POSIX_SOURCE /* tell MVS we want full definitions */ 21 # include <features.h> 22 #endif /* MVS */ 23 24 #include <time.h> /* the usual non-BSD time functions */ 25 /* cstat.h is not required for MVS and actually gets in the way. Is it 26 * needed for CMS? 27 */ 28 #ifdef MVS 29 # include <sys/stat.h> 30 # include <sys/modes.h> 31 #else /* !MVS */ 32 # include "cstat.h" 33 #endif 34 35 36 /* Newer compiler version defines something for us */ 37 #if defined(__VM__) && !defined(VM_CMS) 38 # define VM_CMS 39 #endif 40 41 #define CMS_MVS 42 #define EBCDIC 43 44 #ifndef MVS /* MVS has perfectly good definitions for the following */ 45 # define NO_UNISTD_H 46 # define NO_FCNTL_H 47 #endif /*MVS */ 48 49 /* If we're generating a stand-alone CMS module, patch in */ 50 /* a new main() function before the real main() for arg parsing. */ 51 #ifdef CMS_STAND_ALONE 52 # define USE_ZIPMAIN 53 #endif 54 55 #ifndef NULL 56 # define NULL 0 57 #endif 58 59 #define PASSWD_FROM_STDIN 60 /* Kludge until we know how to open a non-echo tty channel */ 61 62 /* definition for ZIP */ 63 #define getch() getc(stdin) 64 #define MAXPATHLEN 128 65 #define NO_RMDIR 66 #define NO_MKTEMP 67 #define USE_CASE_MAP 68 #define isatty(t) 1 69 70 #ifndef MVS /* MVS has perfectly good definitions for the following */ 71 # define fileno(x) (char *)(x) 72 # define fdopen fopen 73 # define unlink remove 74 # define link rename 75 # define utime(f,t) 76 #endif /*MVS */ 77 #ifdef ZCRYPT_INTERNAL 78 # define ZCR_SEED2 (unsigned)3141592654L /* use PI as seed pattern */ 79 #endif 80 81 #ifdef MVS 82 # if defined(__CRC32_C) 83 # pragma csect(STATIC,"crc32_s") 84 # elif defined(__DEFLATE_C) 85 # pragma csect(STATIC,"deflat_s") 86 # elif defined(__ZIPFILE_C) 87 # pragma csect(STATIC,"zipfil_s") 88 # elif defined(__ZIPUP_C) 89 # pragma csect(STATIC,"zipup_s") 90 # endif 91 #endif /* MVS */ 92 93 /* end defines for ZIP */ 94 95 96 97 #if 0 /*$RGH$*/ 98 /* RECFM=F, LRECL=1 works for sure */ 99 #define FOPR "rb,recfm=fb" 100 #define FOPM "r+" 101 #define FOPW "wb,recfm=fb,lrecl=1" 102 #define FOPWT "w" 103 #endif 104 105 /* Try allowing ZIP files to be RECFM=V with "byteseek" for CMS, recfm=U for MVS */ 106 #define FOPR "rb,byteseek" 107 #define FOPM "r+,byteseek" 108 #ifdef MVS 109 #define FOPW "wb,recfm=u,byteseek" 110 #else /* !MVS */ 111 #define FOPW "wb,recfm=v,lrecl=32760,byteseek" 112 #endif /* MVS */ 113 114 #if 0 115 #define FOPW_TMP "w,byteseek" 116 #else 117 #define FOPW_TMP "w,type=memory(hiperspace)" 118 #endif 119 120 #define CBSZ 0x40000 121 #define ZBSZ 0x40000 122 123 #endif /* !__cmsmvs_h */ 124