os2data.h
资源名称:unzip540.zip [点击查看]
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:3k
源码类别:
压缩解压
开发平台:
MultiPlatform
- /*---------------------------------------------------------------------------
- os2data.h
- OS/2-specific structures and data to be included in the global data struc-
- ture.
- ---------------------------------------------------------------------------*/
- #define MAXNAMLEN 256
- #define MAXPATHLEN 256
- #define MAXLEN 256 /* temporary buffer length */
- #define IBUF_LEN 4096 /* input buffer length */
- #define INCL_NOPM
- #define INCL_DOSNLS
- #define INCL_DOSPROCESS
- #define INCL_DOSDEVICES
- #define INCL_DOSDEVIOCTL
- #define INCL_DOSERRORS
- #define INCL_DOSMISC
- #if (defined(OS2DLL) && !defined(DLL))
- # undef OS2DLL
- #endif
- #ifdef OS2DLL
- # define INCL_REXXSAA
- # include <rexxsaa.h>
- #endif
- #include <os2.h>
- struct direct
- {
- ino_t d_ino; /* a bit of a farce */
- int d_reclen; /* more farce */
- int d_namlen; /* length of d_name */
- char d_name[MAXNAMLEN + 1]; /* null terminated */
- /* nonstandard fields */
- long d_size; /* size in bytes */
- unsigned d_mode; /* MS-DOS or OS/2 file attributes */
- unsigned d_time;
- unsigned d_date;
- };
- /* The fields d_size and d_mode are extensions by me (Kai Uwe Rommel). The
- * find_first and find_next calls deliver these data without any extra cost.
- * If these data are needed, the fields save a lot of extra calls to stat()
- * (each stat() again performs a find_first call !).
- */
- struct _dircontents
- {
- char *_d_entry;
- long _d_size;
- unsigned _d_mode, _d_time, _d_date;
- struct _dircontents *_d_next;
- };
- typedef struct _dirdesc
- {
- int dd_id; /* uniquely identify each open directory */
- long dd_loc; /* where we are in directory entry is this */
- struct _dircontents *dd_contents; /* pointer to contents of dir */
- struct _dircontents *dd_cp; /* pointer to current position */
- }
- DIR;
- struct os2Global {
- #ifndef SFX
- HDIR hdir;
- #ifdef __32BIT__
- ULONG count;
- FILEFINDBUF3 find;
- #else
- USHORT count;
- FILEFINDBUF find;
- #endif
- #endif /* !SFX */
- int created_dir; /* used by mapname(), checkdir() */
- int renamed_fullpath; /* ditto */
- int fnlen; /* ditto */
- #ifdef __32BIT__
- ULONG nLabelDrive; /* ditto */
- #else
- USHORT nLabelDrive;
- #endif
- int longnameEA; /* checkdir(), close_outfile() */
- char *lastpathcomp; /* ditto */
- struct direct dp;
- int lower;
- USHORT nLastDrive, nResult;
- DIR *dir;
- char *dirname, *wildname, matchname[FILNAMSIZ];
- int firstcall, have_dirname, dirnamelen;
- int rootlen; /* length of rootpath */
- char *rootpath; /* user's "extract-to" directory */
- char *buildpathHPFS; /* full path (so far) to extracted file, */
- char *buildpathFAT; /* both HPFS/EA (main) and FAT versions */
- char *endHPFS; /* corresponding pointers to end of */
- char *endFAT; /* buildpath (' ') */
- #ifdef OS2DLL
- char buffer[IBUF_LEN];
- char output_var[MAXLEN];
- char getvar_buf[MAXLEN];
- int getvar_len;
- int output_idx;
- int stem_len;
- int putchar_idx;
- int rexx_error;
- char *rexx_mes;
- SHVBLOCK request;
- #endif
- };
- #define SYSTEM_SPECIFIC_GLOBALS struct os2Global os2;
- #define SYSTEM_SPECIFIC_CTOR os2GlobalsCtor
- #ifdef OS2DLL
- # ifdef API_DOC
- # define SYSTEM_API_BRIEF REXXBrief
- # define SYSTEM_API_DETAILS REXXDetails
- extern char *REXXBrief;
- extern APIDocStruct REXXDetails[];
- # endif
- #endif