|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7680 (0x1e00)
Types: TextFileVerbose
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»