1*44630Smckusick /* $Id: os-aix3.h,v 5.2 90/06/23 22:20:33 jsp Rel $ */ 2*44630Smckusick 3*44630Smckusick /* 4*44630Smckusick * AIX 3.1 definitions for Amd (automounter) 5*44630Smckusick * 6*44630Smckusick * Copyright (c) 1990 Jan-Simon Pendry 7*44630Smckusick * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 8*44630Smckusick * Copyright (c) 1990 The Regents of the University of California. 9*44630Smckusick * All rights reserved. 10*44630Smckusick * 11*44630Smckusick * This code is derived from software contributed to Berkeley by 12*44630Smckusick * Jan-Simon Pendry at Imperial College, London. 13*44630Smckusick * 14*44630Smckusick * %sccs.include.redist.c% 15*44630Smckusick * 16*44630Smckusick * @(#)os-aix3.h 5.1 (Berkeley) 06/29/90 17*44630Smckusick */ 18*44630Smckusick 19*44630Smckusick /* 20*44630Smckusick * Does the compiler grok void * 21*44630Smckusick */ 22*44630Smckusick #define VOIDP 23*44630Smckusick 24*44630Smckusick /* 25*44630Smckusick * Which version of the Sun RPC library we are using 26*44630Smckusick * This is the implementation release number, not 27*44630Smckusick * the protocol revision number. 28*44630Smckusick */ 29*44630Smckusick #define RPC_4 30*44630Smckusick 31*44630Smckusick /* 32*44630Smckusick * Which version of the NFS interface are we using. 33*44630Smckusick * This is the implementation release number, not 34*44630Smckusick * the protocol revision number. 35*44630Smckusick */ 36*44630Smckusick #define NFS_AIX3 37*44630Smckusick 38*44630Smckusick /* 39*44630Smckusick * Does this OS have NDBM support? 40*44630Smckusick */ 41*44630Smckusick #define OS_HAS_NDBM 42*44630Smckusick 43*44630Smckusick /* 44*44630Smckusick * The mount table is obtained from the kernel 45*44630Smckusick */ 46*44630Smckusick #undef UPDATE_MTAB 47*44630Smckusick 48*44630Smckusick /* 49*44630Smckusick * Pick up BSD bits from include files 50*44630Smckusick */ 51*44630Smckusick #define _BSD 52*44630Smckusick 53*44630Smckusick /* 54*44630Smckusick * No mntent info on AIX 3 55*44630Smckusick */ 56*44630Smckusick #undef MNTENT_HDR 57*44630Smckusick #define MNTENT_HDR <sys/mntctl.h> 58*44630Smckusick 59*44630Smckusick /* 60*44630Smckusick * Name of filesystem types 61*44630Smckusick */ 62*44630Smckusick #define MOUNT_TYPE_NFS MNT_NFS 63*44630Smckusick #define MOUNT_TYPE_UFS MNT_JFS 64*44630Smckusick #undef MTAB_TYPE_UFS 65*44630Smckusick #define MTAB_TYPE_UFS "jfs" 66*44630Smckusick 67*44630Smckusick /* 68*44630Smckusick * How to unmount filesystems 69*44630Smckusick */ 70*44630Smckusick #undef MOUNT_TRAP 71*44630Smckusick #define MOUNT_TRAP(type, mnt, flag, mnt_data) \ 72*44630Smckusick aix3_mount(mnt->mnt_fsname, mnt->mnt_dir, flag, type, mnt_data, mnt->mnt_opts) 73*44630Smckusick #undef UNMOUNT_TRAP 74*44630Smckusick #define UNMOUNT_TRAP(mnt) uvmount(mnt->mnt_passno, 0) 75*44630Smckusick 76*44630Smckusick 77*44630Smckusick /* 78*44630Smckusick * Byte ordering 79*44630Smckusick */ 80*44630Smckusick #ifndef BYTE_ORDER 81*44630Smckusick #include <sys/machine.h> 82*44630Smckusick #endif /* BYTE_ORDER */ 83*44630Smckusick 84*44630Smckusick #undef ARCH_ENDIAN 85*44630Smckusick #if BYTE_ORDER == LITTLE_ENDIAN 86*44630Smckusick #define ARCH_ENDIAN "little" 87*44630Smckusick #else 88*44630Smckusick #if BYTE_ORDER == BIG_ENDIAN 89*44630Smckusick #define ARCH_ENDIAN "big" 90*44630Smckusick #else 91*44630Smckusick XXX - Probably no hope of running Amd on this machine! 92*44630Smckusick #endif /* BIG */ 93*44630Smckusick #endif /* LITTLE */ 94*44630Smckusick 95*44630Smckusick /* 96*44630Smckusick * Miscellaneous AIX 3 bits 97*44630Smckusick */ 98*44630Smckusick #define NEED_MNTOPT_PARSER 99*44630Smckusick #define SHORT_MOUNT_NAME 100*44630Smckusick 101*44630Smckusick #define MNTMAXSTR 128 102*44630Smckusick 103*44630Smckusick #define MNTTYPE_UFS "jfs" /* Un*x file system */ 104*44630Smckusick #define MNTTYPE_NFS "nfs" /* network file system */ 105*44630Smckusick #define MNTTYPE_IGNORE "ignore" /* No type specified, ignore this entry */ 106*44630Smckusick 107*44630Smckusick struct mntent { 108*44630Smckusick char *mnt_fsname; /* name of mounted file system */ 109*44630Smckusick char *mnt_dir; /* file system path prefix */ 110*44630Smckusick char *mnt_type; /* MNTTYPE_* */ 111*44630Smckusick char *mnt_opts; /* MNTOPT* */ 112*44630Smckusick int mnt_freq; /* dump frequency, in days */ 113*44630Smckusick int mnt_passno; /* pass number on parallel fsck */ 114*44630Smckusick }; 115*44630Smckusick 116*44630Smckusick #define NFS_HDR "misc-aix3.h" 117*44630Smckusick #define UFS_HDR "misc-aix3.h" 118*44630Smckusick #undef NFS_FH_DREF 119*44630Smckusick #define NFS_FH_DREF(dst, src) { (dst).addr = *(src); } 120*44630Smckusick #undef NFS_SA_DREF 121*44630Smckusick #define NFS_SA_DREF(dst, src) { (dst).addr = *(src); } 122*44630Smckusick #define M_RDONLY MNT_READONLY 123*44630Smckusick 124*44630Smckusick /* 125*44630Smckusick * How to get a mount list 126*44630Smckusick */ 127*44630Smckusick #undef READ_MTAB_FROM_FILE 128*44630Smckusick #define READ_MTAB_AIX3_STYLE 129*44630Smckusick 130*44630Smckusick /* 131*44630Smckusick * The data for the mount syscall needs the path in addition to the 132*44630Smckusick * host name since that is the only source of information about the 133*44630Smckusick * mounted filesystem. 134*44630Smckusick #define NFS_ARGS_NEEDS_PATH 135*44630Smckusick */ 136*44630Smckusick 137*44630Smckusick #define NFS_LOMAP 34 138*44630Smckusick #define NFS_HIMAP 99 139*44630Smckusick #define NFS_ERROR_MAPPING \ 140*44630Smckusick static nfs_errormap[] = { 0,75,77,99,99,99, \ 141*44630Smckusick 99,99,99,99,99,78,99,99,99,79, \ 142*44630Smckusick 99,99,70,99,35,36,37,38,39,40, \ 143*44630Smckusick 41,42,43,44,45,46,47,48,49,50, \ 144*44630Smckusick 51,52,53,54,55,56,57,58,60,61, \ 145*44630Smckusick 64,65,99,67,68,62,63,66,69,68, \ 146*44630Smckusick 99,99,99,71,99,99,99,99,99,99 \ 147*44630Smckusick }; 148*44630Smckusick 149*44630Smckusick #define MOUNT_AIX3 150*44630Smckusick 151*44630Smckusick /* 152*44630Smckusick * Need this too 153*44630Smckusick */ 154*44630Smckusick #include <time.h> 155