Trailing-Edge
-
PDP-10 Archives
-
BB-JF18A-BM
-
sources/rms/rmsrel.b36
There are 6 other files named rmsrel.b36 in the archive. Click here to see a list.
%TITLE 'R E L E A S -- $RELEASE service'
!<BLF/REQUIRE 'RMSBLF.REQ'>
MODULE releas (IDENT = '2.0'
) =
BEGIN
GLOBAL BIND
relsv = 2^24 + 0^18 + 400; ! Edit date: 22-Apr-83
!+
!
!
! FUNCTION: THIS MODULE CONTAINS ALL ROUTINES WHICH PROCESS
! THE $RELEASE MACRO .
!
!
! COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1977, 1986.
! ALL RIGHTS RESERVED.
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND
! COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH
! THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR
! ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
! AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE
! SOFTWARE IS HEREBY TRANSFERRED.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
! NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
! EQUIPMENT CORPORATION.
!
! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
! ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
!
!
!
! AUTHOR: S. BLOUNT
!
!
! ********** TABLE OF CONTENTS **************
!
!
!
!
! ROUTINE FUNCTION
! ======= ========
!
! $RELEASE PROCESSOR FOR $RELEASE MACRO
!
!
! REVISION HISTORY:
!
! EDIT DATE WHO PURPOSE
! ==== ==== === =========
!
! 1 12-JAN-76 SB DISABLE $RELEASE (USE $FREE INSEAD)
!
! *************************************************
! * *
! * NEW REVISION HISTORY *
! * *
! *************************************************
!
! PRODUCT MODULE SPR
! EDIT EDIT QAR DESCRIPTION
! ====== ====== ===== ===========
!
! ** Begin RMS v2 Development
!
! 400 400 xxxxx Clean up BLISS code (RL,22-Apr-83)
!
! ***** END OF REVISION HISTORY *****
!
!
!
!
!
!-
REQUIRE 'rmsreq';
%SBTTL '$RELEASE - $RELEASE processor'
GLOBAL ROUTINE $release (rabblock, errorreturn) : NOVALUE =
! $RELEASE
! ========
! PROCESSOR FOR $RELEASE MACRO
! THIS ROUTINE UNLOCKS THE CURRENT RECORD, IF ANY.
! FOR INDEXED FILES, THIS INVOLVES RELEASING THE CURRENT
! BUCKET. FOR SEQUENTIAL AND RELATIVE FILES, THE CURRENT
! RECORD IS UNLOCKED.
!
! FORMAT OF THE $RELEASE MACRO:
!
! $RELEASE <RAB-NAME> [,<ERROR-ADDRESS>]
!
! RAB FIELDS USED AS INPUT TO $RELEASE:
!
! ISI INTERNAL STREAM IDENTIFIER
!
! RAB FIELDS RETURNED BY $RELEASE:
!
! STS COMPLETION STATUS CODE
! STV ADDITIONAL STATUS INFORMATION
!
!+
! *** NOTE: THE $RELEASE MACRO IS CURRENTLY DISABLED***
!-
! INPUT:
! ADDRESS OF USER RAB
! ADDRESS OF USER ERROR ROUTINE
! OUTPUT:
! <NONE>
! GLOBALS USED:
! LOCKIT
BEGIN
LOCAL
userrfa;
!+
! ****DISABLE THE $RELEASE MACRO TEMPORARILY****
!-
usererror (er$iop);
%IF 0
%THEN
TRACE ('$RELEASE');
!+
! Get ISI and file JFN.
!-
rab = .rabblock; ! Get RAB
erradr = .errorreturn; ! and user address
!+
! Establish system-wide pointers and don't worry
! about the contents of the FAC field.
!-
rsetup (true); ! Just set up global pointers
!+
! Unlock this record.
!-
IF (userrfa = .rab [rabrfa, 0]) LEQ 0 ! Must be positive RFA
THEN
error (er$rfa); ! Don't allow bad RFAs
!+
! Get RFA
!-
IF .userrfa EQL .rst [rstdatarfa]
THEN ! Remember it's unlocked
clrflag (rst [rstflags], flgdlock);
!+
! Don't unlock anything if we aren't locking.
!-
IF locking
THEN
BEGIN
IF lockit (deqcall, ! JSYS to use
deqdr, ! Function
.userrfa, ! ID
0, ! Access
ltyperec) EQL false ! Lock type
THEN
error (er$rnl)
END;
rab [rabrfa, 0] = 0; ! For safety
%FI ! END UNCOMPILED CODE
usrret ()
END; ! End routine $RELEASE
END
ELUDOM