%recordformat path fm(%record(path fm)%name next,
                      %integer version, %string(*)%name key,
                      %string(255) text)

%externalintegerfnspec directory lookup one %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID,
                               %string(*)%name key,
                               %integer version,
                               %integername resulting ID,
                               %string(*)%name textual translation)
%externalrecord(path fm)%mapspec directory penultimate %c
                              (%record(fsys access fm)%name access,
                               %record(path fm)%name path, 
                               %integername components translated,
                               %integername resulting ID,
                               %string(*)%name textual translation,
                               %integername status)
%externalintegerfnspec directory lookup %c
                              (%record(fsys access fm)%name access,
                               %record(path fm)%name path,
                               %integername components translated,
                               %integername file ID, penultimate ID,
                               %string(*)%name textual translation)
%externalintegerfnspec directory insert ID %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID,
                               %string(*)%name inserting key,
                               %integer inserting ID)
%externalintegerfnspec directory insert local %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID,
                               %string(*)%name inserting key,
                               %string(*)%name inserting text)
%externalintegerfnspec directory insert external %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID,
                               %string(*)%name inserting key,
                               %string(*)%name inserting text)
%externalintegerfnspec directory delete entry %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID,
                               %string(255) key, %integer version)
%externalintegerfnspec create directory %c
                              (%record(fsys access fm)%name access,
                               %record(path fm)%name path,
                               %integer desired partition,
                               %integer no inherit,
                               %integername components translated,
                               %integername parent ID,
                               %string(*)%name textual translation)
%externalintegerfnspec directory check empty %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID)
%externalrecord(*)%mapspec directory contents %c
                              (%record(fsys access fm)%name access,
                               %integer directory ID,
                               %integername status)

%constinteger directory          flag = 16_40000000
%constinteger non ID             flag = 16_80000000
%constinteger directory relative flag = non ID flag

%end %of %file
