Function
The osi_copyin service moves a
block of data from a user buffer to a PFS buffer.
Requirements
Operation |
Environment |
---|
Authorization: |
Supervisor state; any PSW key |
Dispatchable unit mode: |
Task or SRB |
Cross memory mode: |
Any |
AMODE: |
31-bit |
ASC mode: |
Any |
Interrupt status: |
Enabled for interrupts |
Locks: |
Unlocked |
Control parameters: |
All parameters must be addressable by the caller and in the
primary address space. |
Format
osi_copyin(Destination_buffer,
Destination_ALET,
Source_buffer,
Source_ALET,
Source_key,
Move_length,
Return_value,
Return_code,
Reason_code);
Parameters
- Destination_buffer
- Supplied parameter
- Type:
- Char
- Length:
- Value specified by Move_length.
The name of the buffer in the PFS to which data
is copied.
- Destination_ALET
- Supplied parameter
- Type:
- Integer
- Length:
- Fullword
The ALET for the specified Destination_buffer in
the PFS.
- Source_buffer
- Supplied parameter
- Type:
- Char
- Length:
- Value specified by Move_length.
The name of the buffer in the user address space
from which data is copied.
- Source_ALET
- Supplied parameter
- Type:
- Integer
- Length:
- Fullword
The ALET for the specified Source_buffer in the
user address space.
- Source_key
- Supplied parameter
- Type:
- Integer
- Length:
- Fullword
The storage key for the Source_buffer in the user
address space. The specified key should be in the last 4 bits of the
word. The key is typically the same value as the key stored in the
UIO field UIO.u_key.
- Move_length
- Supplied parameter
- Type:
- Integer
- Length:
- Fullword
The number of bytes to move.
- Return_value
- Returned parameter
- Type:
- Integer
- Length:
- Fullword
A fullword in which the osi_copyin service returns
the results of the request, as one of the following:
- Return_value
- Meaning
- -1
- The operation was not successful. The Return_code and Reason_code
parameters contain the values returned by the service.
- 0
- The operation was successful.
- Return_code
- Returned parameter
- Type:
- Integer
- Length:
- Fullword
A fullword in which the osi_copyin service stores
the return code. The osi_copyin service returns Return_code only
if Return_value is -1. See z/OS UNIX System Services Messages and Codes for
a complete list of supported return code values.
The osi_copyin
operation supports the following error value:
Return_code |
Explanation |
---|
EFAULT |
A specified buffer address is not in addressable storage. |
- Reason_code
- Returned parameter
- Type:
- Integer
- Length:
- Fullword
A fullword in which the osi_copyin service stores
the reason code. The osi_copyin service returns Return_code only if
Return_value is -1. Reason_code further qualifies the Return_code
value. The reason codes are described in z/OS UNIX System Services Messages and Codes.
Usage notes
- The address of the osi_copyin routine is passed to the PFS in
the OSIT structure when the PFS is initialized.
- The storage key for the destination buffer can be any storage
key.
Characteristics and restrictions
This routine
must be used only on the dispatchable unit (task or SRB) that made
the vnode or VFS call because the service requires the use of the
cross-memory environment of the calling dispatchable unit.