Specifications
Operating System Routines
EXE$CREDIT_BYTCNT, EXE$CREDIT_BYTCNT_BYTLM
EXE$CREDIT_BYTCNT, EXE$CREDIT_BYTCNT_BYTLM
Return credit to a job’s buffered-I/O byte count quota and byte limit.
Module
EXSUBROUT
Input
Location Contents
R0 Number of bytes to return to the byte count quota
(and byte limit)
R4 Address of current PCB
JIB$B_FLAGS JIB$V_BYTCNT_WAITERS set if there are
processes waiting for byte count quota from this
JIB
JIB$L_BYTCNT Job’s byte count usage quota
JIB$L_BYTLM Job’s byte limit (used by EXE$CREDIT_BYTCNT_
BYTLM)
Output
Location Contents
R0 Destroyed
JIB$L_BYTCNT Updated
JIB$L_BYTLM Updated (by EXE$CREDIT_BYTCNT_BYTLM)
Synchronization
EXE$CREDIT_BYTCNT and EXE$CREDIT_BYTCNT_BYTLM raise IPL to
IPL$_SYNCH and obtain the JIB spinlock and the SCHED spinlock (if JIB$V_
BYTCNT_WAITERS is set) in a multiprocessing environment. As a result, their
callers cannot be executing above IPL$_SYNCH or hold any spinlock ranked
higher than JIB. (For instance, a driver fork process executing at IPL$_SYNCH
holding the IOLOCK8 fork lock can call these routines. It cannot, however, hold
the SCHED spinlock.)
EXE$CREDIT_BYTCNT and EXE$CREDIT_BYTCNT_BYTLM return control to
their callers at the caller’s IPL. Their caller retains any spinlocks it held at the
time of the call.
3–21