home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / ip / nfs / amd / amd-5.2 / config / os-aix3.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-23  |  4.2 KB  |  167 lines

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