home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / oslib / oslib_1 / OSLib / Computer / h / sharefs < prev    next >
Encoding:
Text File  |  1995-08-22  |  6.6 KB  |  199 lines

  1. #ifndef sharefs_H
  2. #define sharefs_H
  3.  
  4. /* C header file for ShareFS
  5.  * written by DefMod (Jul 24 1995) on Tue Aug 22 16:31:56 1995
  6.  * Jonathan Coxhead, Acorn Computers Ltd
  7.  */
  8.  
  9. #ifndef types_H
  10. #include "types.h"
  11. #endif
  12.  
  13. #ifndef os_H
  14. #include "os.h"
  15. #endif
  16.  
  17. #ifndef freeway_H
  18. #include "freeway.h"
  19. #endif
  20.  
  21. /**********************************
  22.  * SWI names and SWI reason codes *
  23.  **********************************/
  24. #undef  ShareFS_CreateShare
  25. #define ShareFS_CreateShare                     0x47AC0
  26. #undef  XShareFS_CreateShare
  27. #define XShareFS_CreateShare                    0x67AC0
  28. #undef  ShareFS_StopShare
  29. #define ShareFS_StopShare                       0x47AC1
  30. #undef  XShareFS_StopShare
  31. #define XShareFS_StopShare                      0x67AC1
  32. #undef  ShareFS_EnumerateShares
  33. #define ShareFS_EnumerateShares                 0x47AC2
  34. #undef  XShareFS_EnumerateShares
  35. #define XShareFS_EnumerateShares                0x67AC2
  36. #undef  Service_ShareFSStarting
  37. #define Service_ShareFSStarting                 0x97
  38. #undef  Service_ShareFSTerminating
  39. #define Service_ShareFSTerminating              0x98
  40.  
  41. /********************
  42.  * Type definitions *
  43.  ********************/
  44. typedef bits sharefs_attr;
  45.  
  46. typedef bits sharefs_share_flags;
  47.  
  48. typedef bits sharefs_stop_flags;
  49.  
  50. typedef bits sharefs_enumerate_flags;
  51.  
  52. typedef bits sharefs_starting_flags;
  53.  
  54. typedef bits sharefs_terminating_flags;
  55.  
  56. /************************
  57.  * Constant definitions *
  58.  ************************/
  59. #define sharefs_ATTR_DISC                       ((sharefs_attr) 0x1u)
  60. #define sharefs_ATTR_DISCP                      ((sharefs_attr) 0x2u)
  61. #define sharefs_ATTR_DISC_RO                    ((sharefs_attr) 0x4u)
  62. #define sharefs_ATTR_HIDDEN                     ((sharefs_attr) 0x8u)
  63. #define sharefs_ATTR_SUBDIR_AUTH                ((sharefs_attr) 0x10u)
  64. #define sharefs_ATTR_CDROM                      ((sharefs_attr) 0x20u)
  65. #define sharefs_ATTR_CDROM_AUTH                 ((sharefs_attr) 0x40u)
  66. #define sharefs_FILE_TYPE_DISCP                 0xBD9u
  67. #define sharefs_FILE_TYPE_DISC                  0xBDAu
  68. #define sharefs_FILE_TYPE_SUBDIR                0xFAFu
  69. #define sharefs_FILE_TYPE_CDROM                 0xFADu
  70. #define sharefs_FILE_TYPE_DISCR                 0xFB4u
  71. #define sharefs_FILE_TYPE_NO_DISC               0xFB5u
  72. #define sharefs_SHARE_DISC                      ((sharefs_share_flags) 0x0u)
  73. #define sharefs_SHARE_DISCP                     ((sharefs_share_flags) 0x1u)
  74. #define sharefs_SHARE_DISC_RO                   ((sharefs_share_flags) 0x2u)
  75. #define sharefs_SHARE_HIDDEN                    ((sharefs_share_flags) 0x4u)
  76. #define sharefs_SHARE_SUBDIR_AUTH               ((sharefs_share_flags) 0x8u)
  77. #define sharefs_SHARE_CDROM                     ((sharefs_share_flags) 0x10u)
  78. #define sharefs_SHARE_CDROM_AUTH                ((sharefs_share_flags) 0x20u)
  79. #define sharefs_NO_MORE                         (-1)
  80. #define sharefs_ENUMERATE_PROTECTED             ((sharefs_enumerate_flags) 0x1u)
  81. #define sharefs_ENUMERATE_READ_ONLY             ((sharefs_enumerate_flags) 0x2u)
  82. #define sharefs_ENUMERATE_HIDDEN                ((sharefs_enumerate_flags) 0x4u)
  83. #define sharefs_ENUMERATE_SUBDIR                ((sharefs_enumerate_flags) 0x8u)
  84. #define sharefs_ENUMERATE_CDROM                 ((sharefs_enumerate_flags) 0x10u)
  85. #define sharefs_ENUMERATE_AUTHENTICATED         ((sharefs_enumerate_flags) 0x80000000u)
  86.  
  87. /*************************
  88.  * Function declarations *
  89.  *************************/
  90.  
  91. #ifdef __cplusplus
  92.    extern "C" {
  93. #endif
  94.  
  95. /* ------------------------------------------------------------------------
  96.  * Function:      sharefs_create_share()
  97.  *
  98.  * Description:   Start sharing a local disc or subdirectory, or change the
  99.  *                mode of an existing share
  100.  *
  101.  * Input:         flags - value of R0 on entry
  102.  *                obj_name - value of R1 on entry
  103.  *                dir_path - value of R2 on entry
  104.  *                authentication - value of R3 on entry
  105.  *
  106.  * Other notes:   Calls SWI 0x47AC0.
  107.  */
  108.  
  109. extern os_error *xsharefs_create_share (sharefs_share_flags flags,
  110.       char const *obj_name,
  111.       char const *dir_path,
  112.       int authentication);
  113. __swi (0x47AC0) void sharefs_create_share (sharefs_share_flags flags,
  114.       char const *obj_name,
  115.       char const *dir_path,
  116.       int authentication);
  117.  
  118. /* ------------------------------------------------------------------------
  119.  * Function:      sharefs_stop_share()
  120.  *
  121.  * Description:   Stop sharing a local directory
  122.  *
  123.  * Input:         flags - value of R0 on entry
  124.  *                obj_name - value of R1 on entry
  125.  *
  126.  * Other notes:   Calls SWI 0x47AC1.
  127.  */
  128.  
  129. extern os_error *xsharefs_stop_share (sharefs_stop_flags flags,
  130.       char const *obj_name);
  131. __swi (0x47AC1) void sharefs_stop_share (sharefs_stop_flags flags,
  132.       char const *obj_name);
  133.  
  134. /* ------------------------------------------------------------------------
  135.  * Function:      sharefs_enumerate_shares()
  136.  *
  137.  * Description:   Enumerates authenticated or unauthenticated shares
  138.  *                currently active on this machine
  139.  *
  140.  * Input:         flags - value of R0 on entry
  141.  *                context - value of R4 on entry
  142.  *
  143.  * Output:        obj_name - value of R1 on exit
  144.  *                dir_path - value of R2 on exit
  145.  *                attr - value of R3 on exit
  146.  *                context_out - value of R4 on exit (X version only)
  147.  *                authentication - value of R5 on exit
  148.  *
  149.  * Returns:       R4 (non-X version only)
  150.  *
  151.  * Other notes:   Calls SWI 0x47AC2.
  152.  */
  153.  
  154. extern os_error *xsharefs_enumerate_shares (sharefs_enumerate_flags flags,
  155.       int context,
  156.       char **obj_name,
  157.       char **dir_path,
  158.       sharefs_attr *attr,
  159.       int *context_out,
  160.       int *authentication);
  161. extern int sharefs_enumerate_shares (sharefs_enumerate_flags flags,
  162.       int context,
  163.       char **obj_name,
  164.       char **dir_path,
  165.       sharefs_attr *attr,
  166.       int *authentication);
  167.  
  168. /* ------------------------------------------------------------------------
  169.  * Function:      service_share_fs_starting()
  170.  *
  171.  * Description:   ShareFS has started up
  172.  *
  173.  * Input:         flags - value of R2 on entry
  174.  *
  175.  * Other notes:   Calls SWI 0x30 with R1 = 0x97.
  176.  */
  177.  
  178. extern os_error *xservice_share_fs_starting (sharefs_starting_flags flags);
  179. extern void service_share_fs_starting (sharefs_starting_flags flags);
  180.  
  181. /* ------------------------------------------------------------------------
  182.  * Function:      service_share_fs_terminating()
  183.  *
  184.  * Description:   ShareFS is terminating
  185.  *
  186.  * Input:         flags - value of R2 on entry
  187.  *
  188.  * Other notes:   Calls SWI 0x30 with R1 = 0x98.
  189.  */
  190.  
  191. extern os_error *xservice_share_fs_terminating (sharefs_terminating_flags flags);
  192. extern void service_share_fs_terminating (sharefs_terminating_flags flags);
  193.  
  194. #ifdef __cplusplus
  195.    }
  196. #endif
  197.  
  198. #endif
  199.