VMS Help
System Services, $CREATE BUFOBJ 64 (Alpha Only)
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
On Alpha systems, creates a buffer object out of a range of
pages.
This service accepts 64-bit addresses.
Format
SYS$CREATE_BUFOBJ_64 start_va_64 ,length_64 ,acmode ,flags
,return_va_64 ,return_length_64
,buffer_handle_64
C Prototype
int sys$create_bufobj_64 (void *start_va_64, unsigned
__int64 length_64, unsigned int
acmode, unsigned int flags, void
*(*(return_va_64)), unsigned __int64
*return_length_64, struct _generic_64
*buffer_handle_64);
start_va_64
OpenVMS usage:address
type: quadword address
access: read only
mechanism: by value
Starting virtual address of the pages to be included in the
buffer object. The specified virtual address will be rounded
down to a CPU-specific page boundary.
The virtual address space must already exist.
length_64
OpenVMS usage:byte count
type: quadword (unsigned)
access: read only
mechanism: by value
Length of the virtual address space to be included in the buffer
object. The specified length will be rounded up to a CPU-specific
page boundary such that it includes all CPU-specific pages in the
requested range.
acmode
OpenVMS usage:access_mode
type: longword (unsigned)
access: read only
mechanism: by value
Access mode on behalf of which the request is being made. The
acmode argument is a longword containing the access mode.
The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in
SYS$STARLET_C.TLB define the following symbols and their values
for the four access modes:
Value Symbolic Name Access Mode
0 PSL$C_KERNEL Kernel
1 PSL$C_EXEC Executive
2 PSL$C_SUPER Supervisor
3 PSL$C_USER User
The most privileged access mode used is the access mode of
the caller. For the $CREATE_BUFOBJ_64 service to complete
successfully, the resultant access mode must be equal to or more
privileged than the access mode already associated with the pages
in the specified input range.
flags
OpenVMS usage:mask_longword
type: longword (unsigned)
access: read only
mechanism: by value
Flag mask specifying the request options. The flags argument is a
longword bit vector in which each bit corresponds to a flag. The
$CBODEF macro in STARLET.MLB and CBODEF.H file in SYS$STARLET_
C.TLB define a symbolic name for each flag.
The following table describes each flag that is valid for the
$CREATE_BUFOBJ_64 service:
Flag Value Description
CBO$M_RETSVA 1 If set, returns the system virtual address
in the return_va_64 argument instead of the
process virtual address range. (Valid for
inner mode callers only.)
CBO$M_SVA_32 4 If set, creates the buffer object window
in 32-bit S0/S1 space. (By default, this
service creates the window in 64-bit S2
space.)
return_va_64
OpenVMS usage:address
type: quadword address
access: write only
mechanism: by 32- or 64-bit reference
The lowest process virtual address of the pages in the buffer
object. The return_va_64 argument is the 32- or 64-bit virtual
address of a naturally aligned quadword into which the service
returns the virtual address.
return_length_64
OpenVMS usage:byte count
type: quadword (unsigned)
access: write only
mechanism: by 32- or 64-bit reference
The length of the virtual address range in the buffer object. The
return_length_64 argument is the 32- or 64-bit virtual address of
a naturally aligned quadword into which the service returns the
length of the virtual address range in bytes.
buffer_handle_64
OpenVMS usage:handle
type: quadword (unsigned)
access: write only
mechanism: by 32- or 64-bit reference
The 32- or 64-bit virtual address of a naturally aligned
quadword into which a buffer handle is returned to be used when
referencing the created buffer object.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.