|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7680 (0x1e00) Types: TextFile Names: »tfs3502env«
└─⟦da1afb338⟧ Bits:30008156 SW2020 - RC3502 - File system - Rel. 1.0 └─⟦bcdac339f⟧ └─⟦this⟧ »tfs3502env«
(**************************************************************************) (* RC File System Name: File System ENVIRonment Author: Peter Mikkelsen /pmik, Jens Kristian Kjærgård / jkk Date: 1981-01-26, 1984-05-16, 1984-06-04, 1984-07-11 Version: 2.00 Declarations nescessary for an application program using the file system. JKK 840524 transferf partioned into getf and putf JKK 840604 declarations prefixed by fs_ JKK 840711 fs_pagebuffer_type added JKK 840726 fs_lookup, fs_set_tail added JKK 840921 directory changed to catalog BB 860807 typesize introduced BB 860916 tail in file_info_type moved BB 860923 fs_catalog_connection has now dynamic pool BB 860924 the new predefined type double used BB 870825 Name changed from fsenvir to fs3502env *) fs3502env; (* error codes *) const ok=0; fs_catconnection = 35; fs_fileconnection = 36; fs_name_inexistant = 6; fs_name_exists = 5; fs_name_error = 12; fs_unauthorized = 30; fs_deleted = 7; fs_filelimit = 29; fs_buffersize = 21; fs_catalog_full = 13; fs_rejected = 28; fs_mount_error = 9; fs_openlimit = 17; fs_includelimit = 18; fs_indexlimit = 15; fs_flt_overflow = 8; fs_volumelimit = 16; fs_parity = 2; fs_harderror = 3; fs_disconnected = 25; fs_version = 22; fs_not_implemented = 23; fs_software = 14; type fs_pageheader_type = record ? : double; (* page address *) ? : integer; (* page count *) ? : integer; (* reserved *) end; const fs_pageheader_size = typesize (fs_pageheader_type); const fs_pagesize = 512; (* bytes *) type fs_pagedata_type = array (1..fs_pagesize) of byte; fs_page_type = record page_head: fs_pageheader_type; data: fs_pagedata_type; end; fs_pagebuffer_type = record first,last,next: integer; page_head: fs_pageheader_type; data: fs_pagedata_type; end; const fs_identifier_size = 16; type fs_identifier = array(1..fs_identifier_size) of char; const fs_noname = fs_identifier (fs_identifier_size *** " "); type fs_authorities = (fs_retrieve_authority, fs_update_authority, fs_adjust_authority, fs_delete_authority, fs_authorize_authority); fs_authority_type = record authorizations, inheritable, protections: set of fs_authorities; end; const fs_maxauthorities= (.fs_retrieve_authority, fs_update_authority, fs_adjust_authority, fs_delete_authority, fs_authorize_authority.); fs_maxauthority = fs_authority_type (fs_maxauthorities, fs_maxauthorities, fs_maxauthorities); type fs_accessmode = (fs_retrieve,fs_update,fs_exclusive); type fs_entrytype_type = (fs_datafile, fs_catalog); type fs_time = record date: coded_date; time: coded_time; end; const fs_file_tail_size = 8; type fs_file_tail_type = array(1..fs_file_tail_size) of byte; fs_file_info_type = record written: !integer; allocated: !integer; creation: !fs_time; last_update: !fs_time; tail: fs_file_tail_type; end; const fs_entry_tail_size = 5; (* bytes *) type fs_entry_tail_type = array(1..fs_entry_tail_size) of byte; fs_entry_info_type = record name: !fs_identifier; authority: !fs_authority_type; ?, ?: integer; entrytype: !fs_entrytype_type; tail: fs_entry_tail_type; end; const fs_entry_info_size = typesize (fs_entry_info_type); type fs_file_connection = record ?: reference; (* nil if file not opened *) ?: reference; ?: pool 1; ?: semaphore end; fs_catalog_connection = record ?: ^semaphore; (* ptr to the LFS input semaphore *) ?: reference; (* nil if catalog not connected *) ?: reference; ?: pool 0; ?: semaphore end; procedure fs_mount ( device: byte; volumename: fs_identifier; mode: set of fs_accessmode; var rootcat: fs_catalog_connection; var result: byte); external; procedure fs_dismount (var cat: fs_catalog_connection; var result: byte); external; procedure fs_connect (var cat: fs_catalog_connection; name: fs_identifier; mode: set of fs_accessmode; var newcat: fs_catalog_connection; var result: byte); external; procedure fs_disconnect (var cat: fs_catalog_connection; var result: byte); external; procedure fs_lookup (var cat: fs_catalog_connection; name: fs_identifier; var entry: fs_entry_info_type; var descriptor: fs_file_info_type; var result: byte); external; procedure fs_open (var cat: fs_catalog_connection; name: fs_identifier; mode: set of fs_accessmode; var file: fs_file_connection; var result: byte); external; procedure fs_close (var file: fs_file_connection; var result: byte); external; procedure fs_get (var file: fs_file_connection; pageno: integer; amount: integer; var buffer: reference; var result: byte); external; procedure fs_put (var file: fs_file_connection; pageno: integer; amount: integer; var buffer: reference; var result: byte); external; procedure fs_create (var cat: fs_catalog_connection; name: fs_identifier; var amount: integer; authority: fs_authority_type; entrytype: fs_entrytype_type; var result: byte); external; procedure fs_delete (var cat: fs_catalog_connection; name: fs_identifier; var amount: integer; var result: byte); external; procedure fs_link (var cat: fs_catalog_connection; name: fs_identifier; var oldcatalog: fs_catalog_connection; oldname: fs_identifier; var result: byte); external; procedure fs_rename (var cat: fs_catalog_connection; name: fs_identifier; oldname: fs_identifier; var result: byte); external; procedure fs_extend (var cat: fs_catalog_connection; name: fs_identifier; var amount: integer; var result: byte); external; procedure fs_truncate (var cat: fs_catalog_connection; name: fs_identifier; var amount: integer; var result: byte); external; procedure fs_set_authority (var cat: fs_catalog_connection; name: fs_identifier; authorization: set of fs_authorities; var result: byte); external; procedure fs_set_inheritance (var cat: fs_catalog_connection; name: fs_identifier; inheritable: set of fs_authorities; var result: byte); external; procedure fs_set_protection (var cat: fs_catalog_connection; name: fs_identifier; protections: set of fs_authorities; var result: byte); external; procedure fs_set_tail (var cat: fs_catalog_connection; name: fs_identifier; entry: fs_entry_info_type; descriptor: fs_file_info_type; var result: byte); external; (***** end fs3502env *****) . ▶EOF◀