1/*
2  Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.
3
4  See the accompanying file LICENSE, version 2000-Apr-09 or later
5  (the contents of which are also included in unzip.h) for terms of use.
6  If, for some reason, all these files are missing, the Info-ZIP license
7  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html
8*/
9/*---------------------------------------------------------------------------
10
11  aosvs.h
12
13  AOS/VS-specific header file for use with Info-ZIP's UnZip 5.2 and later.
14
15  ---------------------------------------------------------------------------*/
16
17
18/* stuff to set up for system calls (?FSTAT & ?SACL) and the extra field */
19
20#include <paru.h>                   /* parameter definitions */
21#include <packets/filestatus.h>     /* AOS/VS ?FSTAT packet defs */
22#include <packets/create.h>         /* AOS/VS ?CREATE packet defs */
23#include <sys_calls.h>              /* AOS/VS system call interface */
24
25#define ZEXTRA_HEADID   "VS"
26#define ZEXTRA_SENTINEL "FCI"
27#define ZEXTRA_REV      ((uch)10)   /* change/use this in later revs */
28
29
30/* functions defined in zvs_create.c */
31
32extern int   zvs_create(ZCONST char *fname, long cretim, long modtim,
33                        long acctim, char *pacl, int ftyp, int eltsize,
34                        int maxindlev);
35extern int   zvs_credir(ZCONST char *dname, long cretim, long modtim,
36                        long acctim, char *pacl, int ftyp, long maxblocks,
37                        int hashfsize, int maxindlev);
38extern long  dgdate(short mm, short dd, short yy);
39extern char  *ux_to_vs_name(char *outname, ZCONST char *inname);
40
41
42/* could probably avoid the unions - all elements in each one are the same
43 * size, and we're going to assume this */
44
45typedef union zvsfstat_stru {
46    P_FSTAT       norm_fstat_packet;      /* normal fstat packet */
47    P_FSTAT_DIR   dir_fstat_packet;       /* DIR/CPD fstat packet */
48    P_FSTAT_UNIT  unit_fstat_packet;      /* unit (device) fstat packet */
49    P_FSTAT_IPC   ipc_fstat_packet;       /* IPC file fstat packet */
50} ZVSFSTAT_STRU;
51
52typedef union zvscreate_stru {
53    P_CREATE      norm_create_packet;     /* normal create packet */
54    P_CREATE_DIR  dir_create_packet;      /* DIR/CPD create packet */
55    P_CREATE_IPC  ipc_create_packet;      /* IPC file create packet */
56} ZVSCREATE_STRU;
57
58
59typedef struct zextrafld {
60    char            extra_header_id[2];   /* set to VS - in theory, an int */
61    char            extra_data_size[2];   /* size of rest (little-endian) */
62    char            extra_sentinel[4];    /* set to FCI w/ trailing null */
63    uch             extra_rev;            /* set to 10 for rev 1.0 */
64    ZVSFSTAT_STRU   fstat_packet;         /* the fstat packet */
65    char            aclbuf[$MXACL];       /* the raw ACL */
66} ZEXTRAFLD;
67