home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.2 (Developer) / NS_dev_3.2.iso / NextDeveloper / Headers / kernserv / loadable_fs.h < prev    next >
Text File  |  1993-10-19  |  4KB  |  127 lines

  1. /*    @(#)loadable_fs.h    2.0    26/06/90    (c) 1990 NeXT    */
  2.  
  3. /* 
  4.  * loadable_fs.h - message struct for loading and initializing loadable
  5.  *           file systems.
  6.  *
  7.  * HISTORY
  8.  * 26-Jun-90    Doug Mitchell at NeXT
  9.  *    Created.
  10.  * 5-Nov-91    Lee Boynton at NeXT
  11.  *    Added support for initialization, labels, and WSM options
  12.  */
  13.  
  14. #ifndef    _LOADABLE_FS_
  15. #define _LOADABLE_FS_
  16.  
  17. #import <mach/message.h>
  18.  
  19. /*
  20.  * This message is used in an RPC between a lightweight app and a loaded
  21.  * kernel server. 
  22.  */
  23. struct load_fs_msg {
  24.     msg_header_t    lfm_header;
  25.     msg_type_t    lfm_status_t;
  26.     unsigned int    lfm_status;    /* status returned by server */
  27. };
  28.  
  29. /*
  30.  * msg_id values for load_fs_msg
  31.  */
  32. #define LFM_ID            0x123456    /* base */
  33. #define LFM_DUMP_MOUNT        (LFM_ID+1)    /* dump active FS and VNODE 
  34.                          * list */
  35. #define LFM_TERMINATE        (LFM_ID+2)    /* terminate */
  36. #define LFM_PURGE        (LFM_ID+3)    /* purge all vnodes except 
  37.                          * root */
  38. #define LFM_DUMP_LOCAL        (LFM_ID+4)    /* dump local FS info */
  39. #define LFM_ENABLE_TRACE    (LFM_ID+5)    /* enable debug trace */
  40. #define LFM_DISABLE_TRACE    (LFM_ID+6)    /* disable debug trace */
  41.                      
  42. /*
  43.  * lfm_stat values 
  44.  */
  45. #define LFM_STAT_GOOD        0    /* file system loaded OK */
  46. #define LFM_STAT_NOSPACE    1    /* no space in vfssw */
  47. #define LFM_STAT_BADMSG        2    /* bad message received */
  48. #define LFM_STAT_UNDEFINED    3
  49.  
  50. /*
  51.  * Constants for Loadabls FS Utilities (in "/usr/FileSystems")
  52.  *
  53.  * Example of a /usr/filesystems directory
  54.  *
  55.  * /usr/filesystems/dos.fs/dos.util        utility with which WSM 
  56.  *                            communicates
  57.  * /usr/filesystems/dos.fs/dos.name         "DOS Floppy" 
  58.  * /usr/filesystems/dos.fs/dos_reloc        actual loadable filesystem
  59.  * /usr/filesystems/dos.fs/dos.openfs.tiff    "open folder" icon 
  60.  * /usr/filesystems/dos.fs/dos.fs.tiff        "closed folder" icon 
  61.  */
  62. #define FS_DIR_LOCATION        "/usr/filesystems"    
  63. #define FS_DIR_SUFFIX        ".fs"
  64. #define FS_UTIL_SUFFIX        ".util"
  65. #define FS_OPEN_SUFFIX        ".openfs.tiff"
  66. #define FS_CLOSED_SUFFIX    ".fs.tiff"
  67. #define FS_NAME_SUFFIX        ".name"
  68. #define FS_LABEL_SUFFIX        ".label"
  69.  
  70. /*
  71.  * .util program commands - all sent in the form "-p" or "-m" ... as argv[1].
  72.  */
  73. #define FSUC_PROBE        'p'    /* probe FS for mount or init */
  74.     /* example usage: foo.util -p fd0 removable writable */ 
  75.  
  76. #define FSUC_PROBEFORINIT    'P'    /* probe FS for init only */
  77.     /* example usage: foo.util -P fd0 removable */ 
  78.  
  79. #define FSUC_MOUNT        'm'    /* mount FS */
  80.     /* example usage: foo.util -m fd0 /bar removable writable */ 
  81.  
  82. #define FSUC_REPAIR        'r'    /* repair ('fsck') FS */ 
  83.     /* example usage: foo.util -r fd0 removable */
  84.  
  85. #define    FSUC_INITIALIZE        'i'    /* initialize FS */
  86.     /* example usage: foo.util -i fd0 removable */ 
  87.  
  88. #define FSUC_UNMOUNT        'u'    /* unmount FS */
  89.     /* example usage: foo.util -u fd0 /bar */ 
  90.  
  91. /* The following is not used by Workspace Manager */
  92. #define FSUC_MOUNT_FORCE    'M'    /* like FSUC_MOUNT, but proceed even on
  93.                      * error. */
  94. /*
  95.  * Return codes from .util program
  96.  */
  97. #define FSUR_RECOGNIZED        (-1)    /* response to FSUC_PROBE; implies that
  98.                      * a mount is possible */
  99. #define FSUR_UNRECOGNIZED    (-2)    /* negative response to FSUC_PROBE */
  100. #define FSUR_IO_SUCCESS        (-3)    /* mount, unmount, repair succeeded */
  101. #define FSUR_IO_FAIL        (-4)    /* unrecoverable I/O error */
  102. #define FSUR_IO_UNCLEAN        (-5)    /* mount failed, file system not clean 
  103.                      */
  104. #define FSUR_INVAL        (-6)    /* invalid argument */
  105. #define FSUR_LOADERR        (-7)    /* kern_loader error */
  106. #define FSUR_INITRECOGNIZED    (-8)    /* response to FSUC_PROBE or 
  107.                      * FSUC_PROBEFORINIT, implies that
  108.                      * initialization is possible */
  109.  
  110. /*
  111.  *    mount parameters passed from WSM to the .util program.
  112.  */
  113. #define    DEVICE_READONLY        "readonly"
  114. #define    DEVICE_WRITABLE        "writable"
  115.  
  116. #define    DEVICE_REMOVABLE    "removable"
  117. #define    DEVICE_FIXED        "fixed"
  118.  
  119. /*
  120.  *    Additional parameters to the mount command - used by WSM when they
  121.  *    appear in the /etc/mtab file.
  122.  */
  123. #define    MNTOPT_FS        "filesystem=" /* e.g. "filesystem=DOS" */
  124. #define    MNTOPT_REMOVABLE    "removable"
  125.  
  126. #endif    _LOADABLE_FS_
  127.