|
NAME : HCPPGEBK
DESCRIPTION: Page Allocation Management Block
DSECT : PGEBK
FUNCTION : Maintain a record of virtual pages that have
been allocated within the virtual address space
used for the ISFC subsystem and within virtual address
spaces of applications using ISFC.
This control block resides in CP real storage, but
the buffer that it represents may reside in CP real
storage (in which case, PGEALET will be zero) or in
a "permanently" accessed address space (in which case
PGEALET will be the ALET of the address space).
RELOCATION CONSIDERATIONS : None
NOTES : ISFC does not require the application data to start
in the first byte of the buffer, or extend to the
end of the buffer. The field PGEDATOF holds the
offset of the data, and the field PGEDATLN holds
the length of the data. Some communications protocols
(for example, SNA) may need to wrap the data with a
header and/or trailer after the data is in the buffer.
If the mailbox initializes PGEDATOF and PGEDATLN when
the data is placed in the buffer, it can add header
and/or trailer records later (without the cost of
copying the data to another buffer).
The prototypical PL/X basing expression is:
respecify
buffer based(viaptr(pgeALET, pgeVirt+pgeDatOf))
Of course, the buffer can only be accessed in AR-mode.
Each buffer has a unique creator, and a current owner.
Only the current owner of a buffer may reference and/or
modify the buffer and/or the fields in the buffer
descriptor -- only the buffer's creator may deallocate the
storage occupied by the buffer and/or the PGEBK. When a
buffer has been consumed, it should be returned to its
creator by calling the creator's RECLAIM-BUF exit, which
is pointed to by the PGECLAIM field.
The fields in this control block are initialized by the
buffer's creator -- all of them are read-only to everyone
else *except* for PGENEXT, PGEDATOF, PGEDATLN, and the
owner pointers and words.
LOCATED BY : When a virtual page is in use, the PGEBK address
is stored in an appropriate control block. For
example: The CTCBK contains a table with one
PGEBK pointer for each buffer that has been set
up for the Read channel program.
CREATED BY : For ISFC, created by HCPBUT when a new virtual page buffer
is requested. PGEBKs that HCPBUT creates always have
host virtual addresses from the ISFC Address Space ass-
ociated with them. PGEBKs are also obtained by other
communication transports without using HCPBUT and by
applications that use ISFC services.
DELETED BY : For ISFC, deleted by HCPBUT when the virtual page buffer
is released. PGEBKs obtained by other communications
transports without using HCPBUT must not be returned using
HCPBUT. These must be returned using a method appropriate
with respect to how they were obtained by the transport.
See description of PGECLAIM above.
SERIALIZED : The ISFC global lock (HCPBDSGL).
| |