home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-26 | 46.3 KB | 1,513 lines |
- #ifndef netfs_H
- #define netfs_H
-
- /* C header file for NetFS
- * written by DefMod (Sep 16 1994) on Mon Sep 26 16:38:10 1994
- * Copyright © Acorn Computers Ltd, 1994
- */
-
- /*************************************************************************
- * This source file was written by Acorn Computers Limited. It is part *
- * of the OSLib library for writing applications for RISC OS. It may be *
- * used freely in the creation of programs for RISC OS. *
- *************************************************************************/
-
- #ifndef types_H
- #include "types.h"
- #endif
-
- #ifndef os_H
- #include "os.h"
- #endif
-
- /**********************************
- * SWI names and SWI reason codes *
- **********************************/
- #undef NetFS_ReadFSNumber
- #define NetFS_ReadFSNumber 0x40040
- #undef XNetFS_ReadFSNumber
- #define XNetFS_ReadFSNumber 0x60040
- #undef NetFS_SetFSNumber
- #define NetFS_SetFSNumber 0x40041
- #undef XNetFS_SetFSNumber
- #define XNetFS_SetFSNumber 0x60041
- #undef NetFS_ReadFSName
- #define NetFS_ReadFSName 0x40042
- #undef XNetFS_ReadFSName
- #define XNetFS_ReadFSName 0x60042
- #undef NetFS_SetFSName
- #define NetFS_SetFSName 0x40043
- #undef XNetFS_SetFSName
- #define XNetFS_SetFSName 0x60043
- #undef NetFS_ReadFSTimeouts
- #define NetFS_ReadFSTimeouts 0x40046
- #undef XNetFS_ReadFSTimeouts
- #define XNetFS_ReadFSTimeouts 0x60046
- #undef NetFS_SetFSTimeouts
- #define NetFS_SetFSTimeouts 0x40047
- #undef XNetFS_SetFSTimeouts
- #define XNetFS_SetFSTimeouts 0x60047
- #undef NetFS_DoFSOp
- #define NetFS_DoFSOp 0x40048
- #undef XNetFS_DoFSOp
- #define XNetFS_DoFSOp 0x60048
- #undef NetFS_EnumerateFSList
- #define NetFS_EnumerateFSList 0x40049
- #undef XNetFS_EnumerateFSList
- #define XNetFS_EnumerateFSList 0x60049
- #undef NetFS_EnumerateFS
- #define NetFS_EnumerateFS 0x4004A
- #undef XNetFS_EnumerateFS
- #define XNetFS_EnumerateFS 0x6004A
- #undef NetFS_ConvertDate
- #define NetFS_ConvertDate 0x4004B
- #undef XNetFS_ConvertDate
- #define XNetFS_ConvertDate 0x6004B
- #undef NetFS_DoFSOpToGivenFS
- #define NetFS_DoFSOpToGivenFS 0x4004C
- #undef XNetFS_DoFSOpToGivenFS
- #define XNetFS_DoFSOpToGivenFS 0x6004C
- #undef NetFS_UpdateFSList
- #define NetFS_UpdateFSList 0x4004D
- #undef XNetFS_UpdateFSList
- #define XNetFS_UpdateFSList 0x6004D
- #undef NetFS_EnumerateFSContexts
- #define NetFS_EnumerateFSContexts 0x4004E
- #undef XNetFS_EnumerateFSContexts
- #define XNetFS_EnumerateFSContexts 0x6004E
- #undef NetFS_ReadUserId
- #define NetFS_ReadUserId 0x4004F
- #undef XNetFS_ReadUserId
- #define XNetFS_ReadUserId 0x6004F
- #undef NetFS_GetObjectUID
- #define NetFS_GetObjectUID 0x40050
- #undef XNetFS_GetObjectUID
- #define XNetFS_GetObjectUID 0x60050
- #undef NetFS_EnableCache
- #define NetFS_EnableCache 0x40051
- #undef XNetFS_EnableCache
- #define XNetFS_EnableCache 0x60051
- #undef Service_NetFS
- #define Service_NetFS 0x55
- #undef Service_NetFSDying
- #define Service_NetFSDying 0x5F
-
- /************************************
- * Structure and union declarations *
- ************************************/
- typedef struct netfs_cli_request netfs_cli_request;
- typedef struct netfs_save_request netfs_save_request;
- typedef struct netfs_save_reply netfs_save_reply;
- typedef struct netfs_save_final_reply netfs_save_final_reply;
- typedef struct netfs_load_request netfs_load_request;
- typedef struct netfs_load_reply netfs_load_reply;
- typedef struct netfs_ex_request netfs_ex_request;
- typedef struct netfs_cat_request netfs_cat_request;
- typedef struct netfs_cat_reply netfs_cat_reply;
- typedef struct netfs_open_request netfs_open_request;
- typedef struct netfs_open_reply netfs_open_reply;
- typedef struct netfs_close_request netfs_close_request;
- typedef struct netfs_bget_request netfs_bget_request;
- typedef struct netfs_bget_reply netfs_bget_reply;
- typedef struct netfs_bput_request netfs_bput_request;
- typedef struct netfs_gbpb_request netfs_gbpb_request;
- typedef struct netfs_gbpb_reply netfs_gbpb_reply;
- typedef struct netfs_read_args_request netfs_read_args_request;
- typedef struct netfs_read_args_reply netfs_read_args_reply;
- typedef struct netfs_set_args_request netfs_set_args_request;
- typedef struct netfs_read_disc_info_request netfs_read_disc_info_request;
- typedef struct netfs_disc_info netfs_disc_info;
- typedef struct netfs_read_disc_info_reply netfs_read_disc_info_reply;
- typedef struct netfs_read_logon_info_request netfs_read_logon_info_request;
- typedef struct netfs_logon_info netfs_logon_info;
- typedef struct netfs_read_logon_info_reply netfs_read_logon_info_reply;
- typedef struct netfs_read_date_and_time_reply netfs_read_date_and_time_reply;
- typedef struct netfs_read_eof_status_request netfs_read_eof_status_request;
- typedef struct netfs_read_eof_status_reply netfs_read_eof_status_reply;
- typedef struct netfs_read_object_request netfs_read_object_request;
- typedef struct netfs_delete_object_request netfs_delete_object_request;
- typedef struct netfs_delete_object_reply netfs_delete_object_reply;
- typedef struct netfs_read_env_reply netfs_read_env_reply;
- typedef struct netfs_opt_request netfs_opt_request;
- typedef struct netfs_read_user_info_request netfs_read_user_info_request;
- typedef struct netfs_read_user_info_reply netfs_read_user_info_reply;
- typedef struct netfs_read_version_reply netfs_read_version_reply;
- typedef struct netfs_read_free_request netfs_read_free_request;
- typedef struct netfs_read_free_reply netfs_read_free_reply;
- typedef struct netfs_create_dir_request netfs_create_dir_request;
- typedef struct netfs_set_date_and_time_request netfs_set_date_and_time_request;
- typedef struct netfs_create_request netfs_create_request;
- typedef struct netfs_create_reply netfs_create_reply;
- typedef struct netfs_read_user_free_request netfs_read_user_free_request;
- typedef struct netfs_read_user_free_reply netfs_read_user_free_reply;
- typedef struct netfs_set_user_free_request netfs_set_user_free_request;
- typedef struct netfs_read_user_name_reply netfs_read_user_name_reply;
- typedef struct netfs_logon_info_extended netfs_logon_info_extended;
- typedef struct netfs_read_logon_info_extended_request netfs_read_logon_info_extended_request;
- typedef struct netfs_read_logon_info_extended_reply netfs_read_logon_info_extended_reply;
- typedef struct netfs_read_user_info_extended_request netfs_read_user_info_extended_request;
- typedef struct netfs_read_user_info_extended_reply netfs_read_user_info_extended_reply;
- typedef struct netfs_cli_info_reply netfs_cli_info_reply;
- typedef struct netfs_clii_am_reply netfs_clii_am_reply;
- typedef struct netfs_clis_disc_reply netfs_clis_disc_reply;
- typedef struct netfs_cli_dir_reply netfs_cli_dir_reply;
- typedef struct netfs_cli_unknown_reply netfs_cli_unknown_reply;
- typedef struct netfs_cli_lib_reply netfs_cli_lib_reply;
- typedef struct netfs_ex_reply netfs_ex_reply;
- typedef struct netfs_ex_text_reply netfs_ex_text_reply;
- typedef struct netfs_ex_title_reply netfs_ex_title_reply;
- typedef struct netfs_ex_title_text_reply netfs_ex_title_text_reply;
- typedef struct netfs_read_object_stamp_reply netfs_read_object_stamp_reply;
- typedef struct netfs_read_object_load_and_exec_addr_reply netfs_read_object_load_and_exec_addr_reply;
- typedef struct netfs_read_object_size_reply netfs_read_object_size_reply;
- typedef struct netfs_read_object_attr_reply netfs_read_object_attr_reply;
- typedef struct netfs_read_object_all_info_reply netfs_read_object_all_info_reply;
- typedef struct netfs_read_object_attr_and_cycle_no_reply netfs_read_object_attr_and_cycle_no_reply;
- typedef struct netfs_read_object_sin_reply netfs_read_object_sin_reply;
- typedef struct netfs_set_object_load_exec_and_attr_request netfs_set_object_load_exec_and_attr_request;
- typedef struct netfs_set_object_load_addr_request netfs_set_object_load_addr_request;
- typedef struct netfs_set_object_exec_addr_request netfs_set_object_exec_addr_request;
- typedef struct netfs_set_object_attr_request netfs_set_object_attr_request;
- typedef struct netfs_set_object_stamp_request netfs_set_object_stamp_request;
- typedef struct netfs_manager_op_read_password_count_request netfs_manager_op_read_password_count_request;
- typedef struct netfs_manager_op_read_password_count_reply netfs_manager_op_read_password_count_reply;
- typedef struct netfs_manager_op_read_password_request netfs_manager_op_read_password_request;
- typedef struct netfs_manager_op_read_password_reply netfs_manager_op_read_password_reply;
- typedef struct netfs_manager_op_write_password_request netfs_manager_op_write_password_request;
- typedef struct netfs_manager_op_add_user_request netfs_manager_op_add_user_request;
- typedef struct netfs_manager_op_remove_user_request netfs_manager_op_remove_user_request;
- typedef struct netfs_manager_op_set_privilege_request netfs_manager_op_set_privilege_request;
- typedef struct netfs_manager_op_logoff_user_request netfs_manager_op_logoff_user_request;
- typedef union netfs_cli netfs_cli;
- typedef union netfs_save netfs_save;
- typedef union netfs_load netfs_load;
- typedef union netfs_ex netfs_ex;
- typedef union netfs_cat netfs_cat;
- typedef union netfs_open netfs_open;
- typedef union netfs_close netfs_close;
- typedef union netfs_bget netfs_bget;
- typedef union netfs_bput netfs_bput;
- typedef union netfs_gbpb netfs_gbpb;
- typedef union netfs_read_args netfs_read_args;
- typedef union netfs_set_args netfs_set_args;
- typedef union netfs_read_disc_info netfs_read_disc_info;
- typedef union netfs_read_logon_info netfs_read_logon_info;
- typedef union netfs_read_date_and_time netfs_read_date_and_time;
- typedef union netfs_read_eof_status netfs_read_eof_status;
- typedef union netfs_read_object netfs_read_object;
- typedef union netfs_set_object netfs_set_object;
- typedef union netfs_delete_object netfs_delete_object;
- typedef union netfs_read_env netfs_read_env;
- typedef union netfs_opt netfs_opt;
- typedef union netfs_read_user_info netfs_read_user_info;
- typedef union netfs_read_version netfs_read_version;
- typedef union netfs_read_free netfs_read_free;
- typedef union netfs_create_dir netfs_create_dir;
- typedef union netfs_set_date_and_time netfs_set_date_and_time;
- typedef union netfs_create netfs_create;
- typedef union netfs_read_user_free netfs_read_user_free;
- typedef union netfs_set_user_free netfs_set_user_free;
- typedef union netfs_read_user_name netfs_read_user_name;
- typedef union netfs_read_logon_info_extended netfs_read_logon_info_extended;
- typedef union netfs_read_user_info_extended netfs_read_user_info_extended;
- typedef union netfs_manager_op_read_password_count netfs_manager_op_read_password_count;
- typedef union netfs_manager_op_read_password netfs_manager_op_read_password;
- typedef union netfs_manager_op_write_password netfs_manager_op_write_password;
- typedef union netfs_manager_op_add_user netfs_manager_op_add_user;
- typedef union netfs_manager_op_remove_user netfs_manager_op_remove_user;
- typedef union netfs_manager_op_set_privilege netfs_manager_op_set_privilege;
- typedef union netfs_manager_op_logoff_user netfs_manager_op_logoff_user;
- typedef union netfs_op netfs_op;
- typedef struct netfs_file_server netfs_file_server;
- typedef struct netfs_file_server_context netfs_file_server_context;
-
- /********************
- * Type definitions *
- ********************/
- struct netfs_cli_request
- { char command [256];
- };
-
- struct netfs_save_request
- { bits load_addr;
- bits exec_addr;
- byte size [3];
- char file_name [256];
- };
-
- struct netfs_save_reply
- { byte port;
- byte block_limit [2];
- char leaf_name [10];
- };
-
- struct netfs_save_final_reply
- { byte attr;
- byte date [2];
- };
-
- struct netfs_load_request
- { char file_name [256];
- };
-
- struct netfs_load_reply
- { bits load_addr;
- bits exec_addr;
- byte size [3];
- byte attr;
- byte date [2];
- char file_name [256];
- };
-
- struct netfs_ex_request
- { byte ex_type;
- byte entry;
- byte count;
- char dir_name [256];
- };
-
- struct netfs_cat_request
- { char dir_name [256];
- };
-
- struct netfs_cat_reply
- { char leaf_name [10];
- char reserved1;
- char owner;
- byte reserved2 [3];
- char disc_name [16];
- };
-
- struct netfs_open_request
- { byte error_if_absent;
- byte read_only;
- char file_name [256];
- };
-
- struct netfs_open_reply
- { byte handle;
- char leaf_name [10];
- };
-
- struct netfs_close_request
- { byte handle;
- };
-
- struct netfs_bget_request
- { byte handle;
- };
-
- struct netfs_bget_reply
- { byte b;
- byte terminator;
- };
-
- struct netfs_bput_request
- { byte handle;
- byte b;
- };
-
- struct netfs_gbpb_request
- { byte handle;
- byte read_next;
- byte size [3];
- byte ptr [3];
- };
-
- struct netfs_gbpb_reply
- { byte final_block;
- byte size [3];
- };
-
- struct netfs_read_args_request
- { byte args_type;
- };
-
- struct netfs_read_args_reply
- { byte arg [3];
- };
-
- struct netfs_set_args_request
- { byte args_type;
- byte arg [3];
- };
-
- struct netfs_read_disc_info_request
- { byte first;
- byte count;
- };
-
- struct netfs_disc_info
- { byte phys_no;
- char disc_name [16];
- };
-
- struct netfs_read_disc_info_reply
- { byte count;
- netfs_disc_info info [UNKNOWN];
- };
-
- #define netfs_READ_DISC_INFO_REPLY(N) \
- struct \
- { byte count; \
- netfs_disc_info info [N]; \
- }
-
- #define netfs_SIZEOF_READ_DISC_INFO_REPLY(N) \
- (offsetof (netfs_read_disc_info_reply, info) + \
- (N)*sizeof ((netfs_read_disc_info_reply *) NULL)->info)
-
- struct netfs_read_logon_info_request
- { byte first;
- byte count;
- };
-
- struct netfs_logon_info
- { byte station;
- byte net;
- byte user_name [22];
- byte privilege;
- };
-
- struct netfs_read_logon_info_reply
- { byte count;
- netfs_logon_info info [UNKNOWN];
- };
-
- #define netfs_READ_LOGON_INFO_REPLY(N) \
- struct \
- { byte count; \
- netfs_logon_info info [N]; \
- }
-
- #define netfs_SIZEOF_READ_LOGON_INFO_REPLY(N) \
- (offsetof (netfs_read_logon_info_reply, info) + \
- (N)*sizeof ((netfs_read_logon_info_reply *) NULL)->info)
-
- struct netfs_read_date_and_time_reply
- { byte date [2];
- byte hr;
- byte min;
- byte s;
- };
-
- struct netfs_read_eof_status_request
- { byte handle;
- };
-
- struct netfs_read_eof_status_reply
- { byte eof_status;
- };
-
- struct netfs_read_object_request
- { byte read_type;
- char file_name [256];
- };
-
- struct netfs_delete_object_request
- { char file_name [256];
- };
-
- struct netfs_delete_object_reply
- { bits load_addr;
- bits exec_addr;
- byte size [3];
- byte attr;
- };
-
- struct netfs_read_env_reply
- { byte len;
- char disc_name [16];
- char csd_name [10];
- char lib_name [10];
- };
-
- struct netfs_opt_request
- { byte opt;
- };
-
- struct netfs_read_user_info_request
- { char user_name [22];
- };
-
- struct netfs_read_user_info_reply
- { byte privilege;
- byte station;
- byte net;
- };
-
- struct netfs_read_version_reply
- { char type [10];
- char version [4];
- };
-
- struct netfs_read_free_request
- { char disc_name [16];
- };
-
- struct netfs_read_free_reply
- { byte free_sector_count [3];
- byte sector_count [3];
- };
-
- struct netfs_create_dir_request
- { byte sector_count;
- char dir_name [256];
- };
-
- struct netfs_set_date_and_time_request
- { byte date [2];
- byte hr;
- byte min;
- byte s;
- };
-
- struct netfs_create_request
- { bits load_addr;
- bits exec_addr;
- byte size [3];
- char file_name [256];
- };
-
- struct netfs_create_reply
- { byte attr;
- byte date [2];
- };
-
- struct netfs_read_user_free_request
- { char user_name [22];
- };
-
- struct netfs_read_user_free_reply
- { byte user_free [3];
- };
-
- struct netfs_set_user_free_request
- { byte user_free [3];
- char user_name [22];
- };
-
- struct netfs_read_user_name_reply
- { char user_name [22];
- };
-
- struct netfs_logon_info_extended
- { byte station;
- byte net;
- byte task;
- byte user_name [22];
- byte privilege;
- };
-
- struct netfs_read_logon_info_extended_request
- { byte first;
- byte count;
- };
-
- struct netfs_read_logon_info_extended_reply
- { byte count;
- netfs_logon_info_extended info [UNKNOWN];
- };
-
- #define netfs_READ_LOGON_INFO_EXTENDED_REPLY(N) \
- struct \
- { byte count; \
- netfs_logon_info_extended info [N]; \
- }
-
- #define netfs_SIZEOF_READ_LOGON_INFO_EXTENDED_REPLY(N) \
- (offsetof (netfs_read_logon_info_extended_reply, info) + \
- (N)*sizeof ((netfs_read_logon_info_extended_reply *) NULL)->info)
-
- struct netfs_read_user_info_extended_request
- { char user_name;
- };
-
- struct netfs_read_user_info_extended_reply
- { byte privilege;
- byte station;
- byte net;
- byte task;
- };
-
- struct netfs_cli_info_reply
- { char file_name [10];
- char reserved1;
- char load_addr [9];
- char exec_addr [9];
- char reserved2 [2];
- char length [7];
- char reserved3 [2];
- char access [7];
- char reserved4 [4];
- char date [9];
- char sin [6];
- byte terminator;
- };
-
- struct netfs_clii_am_reply
- { byte urd;
- byte csd;
- byte lib;
- byte opt;
- };
-
- struct netfs_clis_disc_reply
- { byte urd;
- byte csd;
- byte lib;
- };
-
- struct netfs_cli_dir_reply
- { byte csd;
- };
-
- struct netfs_cli_unknown_reply
- { char command [256];
- };
-
- struct netfs_cli_lib_reply
- { byte lib;
- };
-
- struct netfs_ex_reply
- { byte ex_count;
- byte dir_count;
- char name [10];
- bits load_addr;
- bits exec_addr;
- byte attr;
- byte date [2];
- byte sin [3];
- byte size [3];
- };
-
- struct netfs_ex_text_reply
- { byte ex_count;
- byte dir_count;
- char text [UNKNOWN];
- };
-
- struct netfs_ex_title_reply
- { byte ex_count;
- byte dir_count;
- byte len;
- char name [10];
- };
-
- struct netfs_ex_title_text_reply
- { byte ex_count;
- byte dir_count;
- char text [UNKNOWN];
- };
-
- struct netfs_read_object_stamp_reply
- { byte date [2];
- };
-
- struct netfs_read_object_load_and_exec_addr_reply
- { bits load_addr;
- bits exec_addr;
- };
-
- struct netfs_read_object_size_reply
- { byte size [3];
- };
-
- struct netfs_read_object_attr_reply
- { byte attr;
- };
-
- struct netfs_read_object_all_info_reply
- { bits load_addr;
- bits exec_addr;
- byte size [3];
- byte attr;
- byte date [2];
- byte access [2];
- };
-
- struct netfs_read_object_attr_and_cycle_no_reply
- { byte reserved [2];
- byte len;
- byte dir_name [10];
- byte access;
- byte count;
- };
-
- struct netfs_read_object_sin_reply
- { byte obj_type;
- byte sin [6];
- };
-
- struct netfs_set_object_load_exec_and_attr_request
- { bits load_addr;
- bits exec_addr;
- byte attr;
- };
-
- struct netfs_set_object_load_addr_request
- { bits load_addr;
- };
-
- struct netfs_set_object_exec_addr_request
- { bits exec_addr;
- };
-
- struct netfs_set_object_attr_request
- { byte attr;
- };
-
- struct netfs_set_object_stamp_request
- { byte date [2];
- };
-
- struct netfs_manager_op_read_password_count_request
- { byte req_no;
- };
-
- struct netfs_manager_op_read_password_count_reply
- { int user_count;
- };
-
- struct netfs_manager_op_read_password_request
- { byte req_no;
- byte user_no [2];
- };
-
- struct netfs_manager_op_read_password_reply
- { int index;
- byte privilege;
- byte opt;
- int reserved;
- byte station;
- byte net;
- byte logon_permitted;
- char user_name [22];
- char password [23];
- char urd_name [10];
- };
-
- struct netfs_manager_op_write_password_request
- { byte req_no;
- int reserved1;
- byte privilege;
- byte opt;
- byte reserved2 [6];
- byte logon_permitted;
- char user_name [22];
- char password [23];
- char urd_name [10];
- };
-
- struct netfs_manager_op_add_user_request
- { byte req_no;
- char user_name [22];
- };
-
- struct netfs_manager_op_remove_user_request
- { byte req_no;
- char user_name [22];
- };
-
- struct netfs_manager_op_set_privilege_request
- { byte req_no;
- char user_name [22];
- byte privilege;
- };
-
- struct netfs_manager_op_logoff_user_request
- { byte req_no;
- char user_name [22];
- };
-
- union netfs_cli
- { netfs_cli_request request;
- netfs_cli_info_reply info_reply;
- netfs_clii_am_reply i_am_reply;
- netfs_clis_disc_reply s_disc_reply;
- netfs_cli_dir_reply dir_reply;
- netfs_cli_unknown_reply unknown_reply;
- netfs_cli_lib_reply lib_reply;
- };
-
- union netfs_save
- { netfs_save_request request;
- netfs_save_reply reply;
- netfs_save_final_reply final_reply;
- };
-
- union netfs_load
- { netfs_load_request request;
- netfs_load_reply reply;
- };
-
- union netfs_ex
- { netfs_ex_request request;
- netfs_ex_reply reply;
- netfs_ex_text_reply text_reply;
- netfs_ex_title_reply title_reply;
- netfs_ex_title_text_reply title_text_reply;
- };
-
- union netfs_cat
- { netfs_cat_request request;
- netfs_cat_reply reply;
- };
-
- union netfs_open
- { netfs_open_request request;
- netfs_open_reply reply;
- };
-
- union netfs_close
- { netfs_close_request request;
- };
-
- union netfs_bget
- { netfs_bget_request request;
- netfs_bget_reply reply;
- };
-
- union netfs_bput
- { netfs_bput_request request;
- };
-
- union netfs_gbpb
- { netfs_gbpb_request request;
- netfs_gbpb_reply reply;
- };
-
- union netfs_read_args
- { netfs_read_args_request request;
- netfs_read_args_reply reply;
- };
-
- union netfs_set_args
- { netfs_set_args_request request;
- };
-
- union netfs_read_disc_info
- { netfs_read_disc_info_request request;
- netfs_read_disc_info_reply reply;
- };
-
- union netfs_read_logon_info
- { netfs_read_logon_info_request request;
- netfs_read_logon_info_reply reply;
- };
-
- union netfs_read_date_and_time
- { netfs_read_date_and_time_reply reply;
- };
-
- union netfs_read_eof_status
- { netfs_read_eof_status_request request;
- netfs_read_eof_status_reply reply;
- };
-
- union netfs_read_object
- { netfs_read_object_request request;
- netfs_read_object_stamp_reply stamp_reply;
- netfs_read_object_load_and_exec_addr_reply load_and_exec_addr_reply;
- netfs_read_object_size_reply size_reply;
- netfs_read_object_attr_reply attr_reply;
- netfs_read_object_all_info_reply all_info_reply;
- netfs_read_object_attr_and_cycle_no_reply attr_and_cycle_no_reply;
- netfs_read_object_sin_reply sin_reply;
- };
-
- union netfs_set_object
- { netfs_set_object_load_exec_and_attr_request load_exec_and_attr_request;
- netfs_set_object_load_addr_request load_addr_request;
- netfs_set_object_exec_addr_request exec_addr_request;
- netfs_set_object_attr_request attr_request;
- netfs_set_object_stamp_request stamp_request;
- };
-
- union netfs_delete_object
- { netfs_delete_object_request request;
- netfs_delete_object_reply reply;
- };
-
- union netfs_read_env
- { netfs_read_env_reply reply;
- };
-
- union netfs_opt
- { netfs_opt_request request;
- };
-
- union netfs_read_user_info
- { netfs_read_user_info_request request;
- netfs_read_user_info_reply reply;
- };
-
- union netfs_read_version
- { netfs_read_version_reply reply;
- };
-
- union netfs_read_free
- { netfs_read_free_request request;
- netfs_read_free_reply reply;
- };
-
- union netfs_create_dir
- { netfs_create_dir_request request;
- };
-
- union netfs_set_date_and_time
- { netfs_set_date_and_time_request request;
- };
-
- union netfs_create
- { netfs_create_request request;
- netfs_create_reply reply;
- };
-
- union netfs_read_user_free
- { netfs_read_user_free_request request;
- netfs_read_user_free_reply reply;
- };
-
- union netfs_set_user_free
- { netfs_set_user_free_request request;
- };
-
- union netfs_read_user_name
- { netfs_read_user_name_reply reply;
- };
-
- union netfs_read_logon_info_extended
- { netfs_read_logon_info_extended_request request;
- netfs_read_logon_info_extended_reply reply;
- };
-
- union netfs_read_user_info_extended
- { netfs_read_user_info_extended_request request;
- netfs_read_user_info_extended_reply reply;
- };
-
- union netfs_manager_op_read_password_count
- { netfs_manager_op_read_password_count_request request;
- netfs_manager_op_read_password_count_reply reply;
- };
-
- union netfs_manager_op_read_password
- { netfs_manager_op_read_password_request request;
- netfs_manager_op_read_password_reply reply;
- };
-
- union netfs_manager_op_write_password
- { netfs_manager_op_write_password_request request;
- };
-
- union netfs_manager_op_add_user
- { netfs_manager_op_add_user_request request;
- };
-
- union netfs_manager_op_remove_user
- { netfs_manager_op_remove_user_request request;
- };
-
- union netfs_manager_op_set_privilege
- { netfs_manager_op_set_privilege_request request;
- };
-
- union netfs_manager_op_logoff_user
- { netfs_manager_op_logoff_user_request request;
- };
-
- union netfs_op
- { netfs_cli cli;
- netfs_save save;
- netfs_load load;
- netfs_ex ex;
- netfs_cat cat;
- netfs_open open;
- netfs_close close;
- netfs_bget bget;
- netfs_bput bput;
- netfs_gbpb gbpb;
- netfs_read_args read_args;
- netfs_set_args set_args;
- netfs_read_disc_info read_disc_info;
- netfs_read_logon_info read_logon_info;
- netfs_read_date_and_time read_date_and_time;
- netfs_read_eof_status read_eof_status;
- netfs_read_object read_object;
- netfs_set_object set_object;
- netfs_delete_object delete_object;
- netfs_read_env read_env;
- netfs_opt opt;
- netfs_read_user_info read_user_info;
- netfs_read_version read_version;
- netfs_read_free read_free;
- netfs_create_dir create_dir;
- netfs_set_date_and_time set_date_and_time;
- netfs_create create;
- netfs_read_user_free read_user_free;
- netfs_set_user_free set_user_free;
- netfs_read_user_name read_user_name;
- netfs_read_logon_info_extended read_logon_info_extended;
- netfs_read_user_info_extended read_user_info_extended;
- netfs_manager_op_read_password_count manager_op_read_password_count;
- netfs_manager_op_read_password manager_op_read_password;
- netfs_manager_op_write_password manager_op_write_password;
- netfs_manager_op_add_user manager_op_add_user;
- netfs_manager_op_remove_user manager_op_remove_user;
- netfs_manager_op_set_privilege manager_op_set_privilege;
- netfs_manager_op_logoff_user manager_op_logoff_user;
- };
-
- struct netfs_file_server
- { byte station_no;
- byte net_no;
- byte drive;
- char disc_name [16];
- byte reserved;
- };
-
- typedef byte netfs_date_and_time [5];
-
- struct netfs_file_server_context
- { byte station_no;
- byte net_no;
- byte reserved1;
- char disc_name [16];
- byte reserved2;
- char user_name [22];
- byte reserved3;
- byte reserved4;
- };
-
- /************************
- * Constant definitions *
- ************************/
- #define netfs_LEAF_NAME_LIMIT 10
- #define netfs_DISC_NAME_LIMIT 16
- #define netfs_USER_NAME_LIMIT 22
- #define netfs_PASSWORD_LIMIT 23
- #define netfs_FILE_NAME_LIMIT 256
- #define netfs_CLI_LIMIT 256
- #define error_NET_FS_BAD_NAME 0x10500u
- #define error_NET_FS_BAD_COMMAND_CODE 0x10501u
- #define error_NET_FS_UNEXPECTED_COMMAND_CODE 0x10502u
- #define error_NET_FS_UNKNOWN_FUNCTION_CODE 0x10503u
- #define error_NET_FS_UNKNOWN_STATION_NAME 0x10504u
- #define error_NET_FS_UNKNOWN_STATION_NUMBER 0x10505u
- #define error_NET_FS_STATION_NOT_FOUND 0x10506u
- #define error_NET_FS_FILE_SERVER_NAME_TOO_LONG 0x10507u
- #define error_NET_FS_BAD_FILE_SERVER_DATE 0x10508u
- #define error_NET_FS_NET_FS_INTERNAL_ERROR 0x10509u
- #define error_NET_FS_FILE_SERVER_NOT_CAPABLE 0x1050Au
- #define error_NET_FS_BROADCAST_SERVER_DEAD 0x1050Bu
- #define error_NET_FS_FILE_SERVER_ONLY24_BIT 0x1050Cu
- #define error_NET_UTILS_WRONG_VERSION 0x1053Au
- #define error_NET_UTILS_NET_FS_NO_GO 0x1053Bu
- #define error_NET_UTILS_IS_THREADED 0x1053Cu
- #define error_NET_FS_SET_FREE_SYNTAX 0x10540u
- #define error_NET_FS_FS_CLI_SYNTAX 0x10541u
- #define netfs_FS_OP_CLI ((byte) 0)
- #define netfs_FS_OP_SAVE ((byte) 1)
- #define netfs_FS_OP_LOAD ((byte) 2)
- #define netfs_FS_OP_EX ((byte) 0)
- #define netfs_FS_OP_CAT ((byte) 4)
- #define netfs_FS_OP_LOAD_AS ((byte) 5)
- #define netfs_FS_OP_OPEN ((byte) 6)
- #define netfs_FS_OP_CLOSE ((byte) 7)
- #define netfs_FS_OP_BGET ((byte) 8)
- #define netfs_FS_OP_BPUT ((byte) 9)
- #define netfs_FS_OP_GBPB_READ ((byte) 10)
- #define netfs_FS_OP_GBPB_WRITE ((byte) 11)
- #define netfs_FS_OP_READ_ARGS ((byte) 12)
- #define netfs_FS_OP_SET_ARGS ((byte) 13)
- #define netfs_FS_OP_READ_DISC_INFO ((byte) 14)
- #define netfs_FS_OP_READ_LOGON_INFO ((byte) 15)
- #define netfs_FS_OP_READ_DATE_AND_TIME ((byte) 16)
- #define netfs_FS_OP_READ_EOF_STATUS ((byte) 17)
- #define netfs_FS_OP_READ_OBJECT ((byte) 18)
- #define netfs_FS_OP_SET_ATTR ((byte) 19)
- #define netfs_FS_OP_DELETE_OBJECT ((byte) 20)
- #define netfs_FS_OP_READ_ENV ((byte) 21)
- #define netfs_FS_OP_OPT ((byte) 22)
- #define netfs_FS_OP_LOGOFF ((byte) 23)
- #define netfs_FS_OP_READ_USER_INFO ((byte) 24)
- #define netfs_FS_OP_READ_VERSION ((byte) 25)
- #define netfs_FS_OP_READ_FREE ((byte) 26)
- #define netfs_FS_OP_CREATE_DIR ((byte) 27)
- #define netfs_FS_OP_SET_DATE_AND_TIME ((byte) 28)
- #define netfs_FS_OP_CREATE ((byte) 29)
- #define netfs_FS_OP_READ_USER_FREE ((byte) 30)
- #define netfs_FS_OP_SET_USER_FREE ((byte) 31)
- #define netfs_FS_OP_READ_USER_NAME ((byte) 32)
- #define netfs_FS_OP_READ_LOGON_INFO_EXTENDED ((byte) 33)
- #define netfs_FS_OP_READ_USER_INFO_EXTENDED ((byte) 34)
- #define netfs_FS_OP_MANAGER_OP ((byte) 36)
- #define netfs_FS_OP_CLI_COMPLETE ((byte) 0)
- #define netfs_FS_OP_CLI_INFO ((byte) 4)
- #define netfs_FS_OP_CLII_AM ((byte) 5)
- #define netfs_FS_OP_CLIS_DISC ((byte) 6)
- #define netfs_FS_OP_CLI_DIR ((byte) 7)
- #define netfs_FS_OP_CLI_UNKNOWN ((byte) 8)
- #define netfs_FS_OP_CLI_LIB ((byte) 9)
- #define netfs_FS_OP_CLI_DISC_INFO ((byte) 10)
- #define netfs_FS_OP_CLI_USER_INFO ((byte) 11)
- #define netfs_FS_OP_EX_TEXT ((byte) 1)
- #define netfs_FS_OP_EX_TITLE ((byte) 2)
- #define netfs_FS_OP_EX_TITLE_TEXT ((byte) 3)
- #define netfs_FS_OP_ARGS_PTR ((byte) 0)
- #define netfs_FS_OP_ARGS_EXT ((byte) 1)
- #define netfs_FS_OP_ARGS_SIZE ((byte) 2)
- #define netfs_FS_OP_READ_OBJECT_STAMP ((byte) 1)
- #define netfs_FS_OP_READ_OBJECT_LOAD_AND_EXEC_ADDR ((byte) 2)
- #define netfs_FS_OP_READ_OBJECT_SIZE ((byte) 3)
- #define netfs_FS_OP_READ_OBJECT_ATTR ((byte) 4)
- #define netfs_FS_OP_READ_OBJECT_ALL_INFO ((byte) 5)
- #define netfs_FS_OP_READ_OBJECT_ATTR_AND_CYCLE_NO ((byte) 6)
- #define netfs_FS_OP_READ_OBJECT_SIN ((byte) 7)
- #define netfs_FS_OP_SET_OBJECT_LOAD_EXEC_AND_ATTR ((byte) 1)
- #define netfs_FS_OP_SET_OBJECT_LOAD_ADDR ((byte) 2)
- #define netfs_FS_OP_SET_OBJECT_EXEC_ADDR ((byte) 3)
- #define netfs_FS_OP_SET_OBJECT_ATTR ((byte) 4)
- #define netfs_FS_OP_SET_OBJECT_STAMP ((byte) 5)
- #define netfs_FS_OP_MANAGER_OP_READ_PASSWORD_COUNT ((byte) 0)
- #define netfs_FS_OP_MANAGER_OP_READ_PASSWORD ((byte) 1)
- #define netfs_FS_OP_MANAGER_OP_WRITE_PASSWORD ((byte) 2)
- #define netfs_FS_OP_MANAGER_OP_ADD_USER ((byte) 3)
- #define netfs_FS_OP_MANAGER_OP_REMOVE_USER ((byte) 4)
- #define netfs_FS_OP_MANAGER_OP_SET_PRIVILEGE ((byte) 5)
- #define netfs_FS_OP_MANAGER_OP_LOGOFF_USER ((byte) 6)
- #define netfs_FS_OP_MANAGER_OP_SHUTDOWN ((byte) 7)
- #define netfs_NO_MORE (-1)
-
- /*************************
- * Function declarations *
- *************************/
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- /*************************************************************
- * NOTE: The following functions provide direct access to *
- * the SWI's noted in the function description. *
- * Please read the relevant PRM section for more *
- * information on their input/output parameters. *
- *************************************************************/
-
- /* ------------------------------------------------------------------------
- * Function: netfs_read_fs_number()
- *
- * Description: Returns the full station number of your current file
- * server
- *
- * Output: station_no - value of R0 on exit
- * net_no - value of R1 on exit
- *
- * Other notes: Calls SWI 0x40040.
- */
-
- extern os_error *xnetfs_read_fs_number (byte *station_no,
- byte *net_no);
- extern void netfs_read_fs_number (byte *station_no,
- byte *net_no);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_set_fs_number()
- *
- * Description: Sets the full station number used as the current file
- * server
- *
- * Input: station_no - value of R0 on entry
- * net_no - value of R1 on entry
- *
- * Other notes: Calls SWI 0x40041.
- */
-
- extern os_error *xnetfs_set_fs_number (byte station_no,
- byte net_no);
- extern void netfs_set_fs_number (byte station_no,
- byte net_no);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_read_fs_name()
- *
- * Description: Reads the name of your current file server
- *
- * Input: buffer - value of R1 on entry
- * size - value of R2 on entry
- *
- * Output: end - value of R1 on exit
- *
- * Other notes: Calls SWI 0x40042.
- */
-
- extern os_error *xnetfs_read_fs_name (char *buffer,
- int size,
- char **end);
- extern void netfs_read_fs_name (char *buffer,
- int size,
- char **end);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_set_fs_name()
- *
- * Description: Sets by name the file server used as your current one
- *
- * Input: fs_name - value of R0 on entry
- *
- * Other notes: Calls SWI 0x40043.
- */
-
- extern os_error *xnetfs_set_fs_name (char *fs_name);
- extern void netfs_set_fs_name (char *fs_name);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_read_fs_timeouts()
- *
- * Description: Reads the current values for timeouts used by NetFS
- *
- * Output: transmit_count - value of R0 on exit
- * transmit_delay - value of R1 on exit
- * peek_count - value of R2 on exit
- * peek_delay - value of R3 on exit
- * receive_delay - value of R4 on exit
- * broadcast_delay - value of R5 on exit
- *
- * Other notes: Calls SWI 0x40046.
- */
-
- extern os_error *xnetfs_read_fs_timeouts (int *transmit_count,
- int *transmit_delay,
- int *peek_count,
- int *peek_delay,
- int *receive_delay,
- int *broadcast_delay);
- extern void netfs_read_fs_timeouts (int *transmit_count,
- int *transmit_delay,
- int *peek_count,
- int *peek_delay,
- int *receive_delay,
- int *broadcast_delay);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_set_fs_timeouts()
- *
- * Description: Sets the current values for timeouts used by NetFS
- *
- * Input: transmit_count - value of R0 on entry
- * transmit_delay - value of R1 on entry
- * peek_count - value of R2 on entry
- * peek_delay - value of R3 on entry
- * receive_delay - value of R4 on entry
- * broadcast_delay - value of R5 on entry
- *
- * Other notes: Calls SWI 0x40047.
- */
-
- extern os_error *xnetfs_set_fs_timeouts (int transmit_count,
- int transmit_delay,
- int peek_count,
- int peek_delay,
- int receive_delay,
- int broadcast_delay);
- extern void netfs_set_fs_timeouts (int transmit_count,
- int transmit_delay,
- int peek_count,
- int peek_delay,
- int receive_delay,
- int broadcast_delay);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_do_fs_op()
- *
- * Description: Commands the current file server to perform an operation
- *
- * Input: fs_op - value of R0 on entry
- * op - value of R1 on entry
- * tx_count - value of R2 on entry
- * size - value of R3 on entry
- *
- * Output: status - value of R0 on exit (X version only)
- * rx_count - value of R3 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x40048.
- */
-
- extern os_error *xnetfs_do_fs_op (byte fs_op,
- netfs_op *op,
- int tx_count,
- int size,
- int *status,
- int *rx_count);
- extern int netfs_do_fs_op (byte fs_op,
- netfs_op *op,
- int tx_count,
- int size,
- int *rx_count);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_enumerate_fs_list()
- *
- * Description: Lists all file servers of which the NetFS software
- * currently knows
- *
- * Input: context - value of R0 on entry
- * file_server - value of R1 on entry
- * size - value of R2 on entry
- * server_limit - value of R3 on entry
- *
- * Output: context_out - value of R0 on exit (X version only)
- * server_count - value of R3 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x40049.
- */
-
- extern os_error *xnetfs_enumerate_fs_list (int context,
- netfs_file_server *file_server,
- int size,
- int server_limit,
- int *context_out,
- int *server_count);
- extern int netfs_enumerate_fs_list (int context,
- netfs_file_server *file_server,
- int size,
- int server_limit,
- int *server_count);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_enumerate_fs()
- *
- * Description: Lists all file servers to which the NetFS software is
- * currently logged on
- *
- * Input: context - value of R0 on entry
- * file_server - value of R1 on entry
- * size - value of R2 on entry
- * server_limit - value of R3 on entry
- *
- * Output: context_out - value of R0 on exit (X version only)
- * server_count - value of R3 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x4004A.
- */
-
- extern os_error *xnetfs_enumerate_fs (int context,
- netfs_file_server *file_server,
- int size,
- int server_limit,
- int *context_out,
- int *server_count);
- extern int netfs_enumerate_fs (int context,
- netfs_file_server *file_server,
- int size,
- int server_limit,
- int *server_count);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_convert_date()
- *
- * Description: Converts a file server time and date to a RISC OS time
- * and date
- *
- * Input: n - value of R0 on entry
- * o - value of R1 on entry
- *
- * Other notes: Calls SWI 0x4004B.
- */
-
- extern os_error *xnetfs_convert_date (netfs_date_and_time *n,
- os_date_and_time *o);
- extern void netfs_convert_date (netfs_date_and_time *n,
- os_date_and_time *o);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_do_fs_op_to_given_fs()
- *
- * Description: Commands a given file server to perform an operation
- *
- * Input: fs_op - value of R0 on entry
- * op - value of R1 on entry
- * tx_count - value of R2 on entry
- * size - value of R3 on entry
- * station - value of R4 on entry
- * net - value of R6 on entry
- *
- * Output: status - value of R0 on exit (X version only)
- * rx_count - value of R3 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x4004C.
- */
-
- extern os_error *xnetfs_do_fs_op_to_given_fs (byte fs_op,
- netfs_op *op,
- int tx_count,
- int size,
- byte station,
- byte net,
- int *status,
- int *rx_count);
- extern int netfs_do_fs_op_to_given_fs (byte fs_op,
- netfs_op *op,
- int tx_count,
- int size,
- byte station,
- byte net,
- int *rx_count);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_update_fs_list()
- *
- * Description: Adds names of discs to the list of names held by NetFS
- *
- * Input: station_no - value of R0 on entry
- * net_no - value of R1 on entry
- *
- * Other notes: Calls SWI 0x4004D.
- */
-
- extern os_error *xnetfs_update_fs_list (byte station_no,
- byte net_no);
- extern void netfs_update_fs_list (byte station_no,
- byte net_no);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_enumerate_fs_contexts()
- *
- * Description: Lists all the entries in the list of file servers to
- * which NetFS is currently logged on
- *
- * Input: context - value of R0 on entry
- * file_server_context - value of R1 on entry
- * size - value of R2 on entry
- * server_limit - value of R3 on entry
- *
- * Output: context_out - value of R0 on exit (X version only)
- * server_count - value of R3 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x4004E.
- */
-
- extern os_error *xnetfs_enumerate_fs_contexts (int context,
- netfs_file_server_context *file_server_context,
- int size,
- int server_limit,
- int *context_out,
- int *server_count);
- extern int netfs_enumerate_fs_contexts (int context,
- netfs_file_server_context *file_server_context,
- int size,
- int server_limit,
- int *server_count);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_read_user_id()
- *
- * Description: Returns the current user id if logged on to the current
- * file server
- *
- * Input: buffer - value of R1 on entry
- * size - value of R2 on entry
- *
- * Output: end - value of R1 on exit
- *
- * Other notes: Calls SWI 0x4004F.
- */
-
- extern os_error *xnetfs_read_user_id (char *buffer,
- int size,
- char **end);
- extern void netfs_read_user_id (char *buffer,
- int size,
- char **end);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_get_object_uid()
- *
- * Description: Gets a unique identifier for an object
- *
- * Input: path_name - value of R1 on entry
- * special - value of R6 on entry
- *
- * Output: obj_type - value of R0 on exit (X version only)
- * load_addr - value of R2 on exit
- * exec_addr - value of R3 on exit
- * size - value of R4 on exit
- * attr - value of R5 on exit
- * uid0 - value of R6 on exit
- * uid1 - value of R7 on exit
- *
- * Returns: R0 (non-X version only)
- *
- * Other notes: Calls SWI 0x40050.
- */
-
- extern os_error *xnetfs_get_object_uid (char *path_name,
- char *special,
- int *obj_type,
- bits *load_addr,
- bits *exec_addr,
- int *size,
- bits *attr,
- int *uid0,
- int *uid1);
- extern int netfs_get_object_uid (char *path_name,
- char *special,
- bits *load_addr,
- bits *exec_addr,
- int *size,
- bits *attr,
- int *uid0,
- int *uid1);
-
- /* ------------------------------------------------------------------------
- * Function: netfs_enable_cache()
- *
- * Description: Enables a suspended event task
- *
- * Other notes: Calls SWI 0x40051.
- */
-
- extern os_error *xnetfs_enable_cache (void);
- extern void netfs_enable_cache (void);
-
- /* ------------------------------------------------------------------------
- * Function: service_net_fs()
- *
- * Description: Either a *Logon, a *Bye, a *SDisc or a *Mount has
- * occurred
- *
- * Other notes: Calls SWI 0x30 with R1 = 0x55.
- */
-
- extern os_error *xservice_net_fs (void);
- extern void service_net_fs (void);
-
- /* ------------------------------------------------------------------------
- * Function: service_net_fs_dying()
- *
- * Description: NetFS is dying
- *
- * Other notes: Calls SWI 0x30 with R1 = 0x5F.
- */
-
- extern os_error *xservice_net_fs_dying (void);
- extern void service_net_fs_dying (void);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-