Each PFS operation (vfs_ and vn_ functions) operates in the following
environment:
Environment at entry: Are as follows:
Operation |
Environment |
---|
Authorization: |
Supervisor state, PSW key 0 |
Dispatchable unit mode: |
Task or SRB, if the PFS has indicated
that it supports SRB-mode callers. You cannot assume that vfs or vn
routines receive control under the same dispatchable unit as the requestor
of the related callable service. For example, unmount() and sync() do
not. |
Cross memory mode: |
Any |
AMODE: |
31-bit |
ASC mode: |
Primary mode |
Interrupt status: |
Enabled for interrupts |
Locks: |
Unlocked |
Control parameters: |
All parameters are in key 0 storage
in the primary address space. They are not fetch protected. |
Registers at entry: The contents of the registers on entry
to this operation are:
- Register
- Contents
- 0
- Contains the Vnode or VFS operation number. This number is the
index of the operation in the vnop table or the vfso table. This number
starts with one for the first operation in each table, and has 0x800
added to the VFS operation numbers so that they can be differentiated
from the Vnode operations. For example, for vn_lookup R0 is 8 and
for vfs_sync R0 is 0x0803.
- 1
- Parameter list address
- 2-12
- Undefined
- 13
- Save area address, of a 136-byte save area
- 14
- Return address
- 15
- Entry address
- AR0-15
- Undefined
Environment at exit: Upon return from this operation, the
entry environment must be restored.
Registers at exit: Upon return from this operation, the
register contents must be as follows:
- Register
- Contents
- 2-13
- Restored from the entry values
- 0,1,14,15
- Undefined
- AR0-15
- Untouched or restored from the entry values