1 | File System Operation | Input | Binary(4), Unsigned |
2 | Input Buffer | Input | Char(*) |
3 | Length of input buffer | Input | Binary(4), Unsigned |
4 | Output Buffer | Output | Char(*) |
5 | Length of output buffer | Input | Binary(4), Unsigned |
6 | Error code | I/O | Char(*) |
The Perform File System Operation (QP0LFLOP) API performs miscellaneous file system operations.
The authorities required vary for each operation:
Note: Adopted authority is not used.
The following parameters are required.
The desired file system operation to perform.
You can specify one of the following operations:
Information that is required for a given file system operation. The input buffer parameter should be set as follows:
The length of the input buffer provided. The length of the input buffer parameter may be specified up to the size of the input buffer area specified by the user program. The length of the input buffer should be 0 when the input buffer is NULL.
Information that is provided by a given file system operation. The output buffer parameter should be set as follows:
For example, if the /etc/netgroup file is empty, then bytes available and bytes returned would both be equal to 12. For a different example, if the /etc/netgroup file is not empty, but the length of the output buffer is less than what is required to hold all entries in the /etc/netgroup file, then bytes available would be greater than 12 and bytes returned would be set to 12.
The length of the output buffer provided. The length of the output buffer parameter may be specified up to the size of the output buffer area specified by the user program. The length of the output buffer should be 0 when the output buffer is NULL.
The structure in which to return error information. For the format of the structure, see Error Code Parameter.
The following tables describe the order and format of the data returned in the output buffer for each of the allowable file system operations. For a detailed description of each field, see Field Descriptions.
This structure is used to return netgroup definitions taken from the /etc/netgroup file.
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4), UNSIGNED | Bytes returned |
4 | 4 | BINARY(4), UNSIGNED | Bytes available |
8 | 8 | BINARY(4), UNSIGNED | Number of netgroup entries |
These fields repeat for each netgroup entry. | BINARY(4), UNSIGNED | Length of netgroup entry | |
BINARY(4), UNSIGNED | Length of netgroup name | ||
BINARY(4), UNSIGNED | Displacement to member names | ||
BINARY(4), UNSIGNED | Number of member names | ||
CHAR(*) | Netgroup name | ||
These fields repeat for each member name in the netgroup entry. | BINARY(4), UNSIGNED | Length of member name entry | |
BINARY(4), UNSIGNED | Member name status | ||
BINARY(4), UNSIGNED | Length of member name | ||
CHAR(*) | Member name |
This structure is used to return export entries given by an NFS server.
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4), UNSIGNED | Bytes returned |
4 | 4 | BINARY(4), UNSIGNED | Bytes available |
8 | 8 | BINARY(4), UNSIGNED | Number of export entries |
These fields repeat for each export entry. | BINARY(4), UNSIGNED | Length of export entry | |
BINARY(4), UNSIGNED | Length of export name | ||
BINARY(4), UNSIGNED | CCSID of export name | ||
BINARY(4), UNSIGNED | Displacement to export items | ||
BINARY(4), UNSIGNED | Number of export items | ||
CHAR(*) | Export name | ||
These fields repeat for each export item in the export entry. | BINARY(4), UNSIGNED | Length of export item entry | |
BINARY(4), UNSIGNED | Length of export item | ||
BINARY(4), UNSIGNED | CCSID of export item | ||
CHAR(*), UNSIGNED | Export item |
This structure is used to return mounted file system entries.
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4), UNSIGNED | Bytes returned |
4 | 4 | BINARY(4), UNSIGNED | Bytes available |
8 | 8 | BINARY(4), UNSIGNED | Number of mount entries |
These fields repeat for each mount entry. | BINARY(4), UNSIGNED | Length of mount entry | |
BINARY(8), UNSIGNED | File system id | ||
BINARY(4), UNSIGNED | File system type | ||
BINARY(4), UNSIGNED | Mount flags | ||
BINARY(4), UNSIGNED | Unique mount id | ||
BINARY(4) | Time of mount | ||
BINARY(4), UNSIGNED | Mount visibility | ||
BINARY(4), UNSIGNED | Displacement to mounted file system (MFS) name | ||
BINARY(4), UNSIGNED | Length of MFS name | ||
BINARY(4), UNSIGNED | CCSID of MFS name | ||
BINARY(4), UNSIGNED | Displacement to mount over dir name | ||
BINARY(4), UNSIGNED | Length of mount over dir name | ||
BINARY(4), UNSIGNED | CCSID of mount over dir name | ||
BINARY(4), UNSIGNED | Displacement to remote host name | ||
BINARY(4), UNSIGNED | Length of remote host name | ||
BINARY(4), UNSIGNED | CCSID of remote host name | ||
BINARY(4), UNSIGNED | Displacement to mount options | ||
BINARY(4), UNSIGNED | Length of mount options | ||
BINARY(4), UNSIGNED | CCSID of mount options | ||
CHAR(*) | MFS name | ||
CHAR(*) | Mount over dir name | ||
CHAR(*) | Remote host name | ||
CHAR(*) | Mount options |
The following tables describe the order and format of the data given in the input buffer parameter for each of the allowable file system operations. For a detailed description of each field, see Field Descriptions.
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4), UNSIGNED | Number of netgroup entries |
These fields repeat for each netgroup entry. | BINARY(4), UNSIGNED | Length of netgroup entry | |
BINARY(4), UNSIGNED | Length of netgroup name | ||
BINARY(4), UNSIGNED | Displacement to member names | ||
BINARY(4), UNSIGNED | Number of member names | ||
CHAR(*) | Netgroup name | ||
These fields repeat for each member name in the netgroup entry. | BINARY(4), UNSIGNED | Length of member name entry | |
BINARY(4), UNSIGNED | Member name status | ||
BINARY(4), UNSIGNED | Length of member name | ||
CHAR(*) | Member name |
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4), UNSIGNED | Preferred output CCSID |
4 | 4 | BINARY(4), UNSIGNED | Expected CCSID |
8 | 8 | BINARY(4), UNSIGNED | Length of server name |
12 | C | BINARY(4), UNSIGNED | CCSID of Server name |
16 | 10 | CHAR(256) | Server name |
Offset | Type | Field | |
---|---|---|---|
Dec | Hex | ||
0 | 0 | BINARY(4), UNSIGNED | Preferred output CCSID |
4 | 4 | BINARY(4), UNSIGNED | File system type filter |
8 | 8 | BINARY(4), UNSIGNED | Only visible mounts |
Bytes available. The number of bytes of data available to be returned to the user in the output buffer. If all data is returned, bytes available is the same as the number of bytes returned. If the receiver variable was not large enough to contain all of the data, this value is set based on the total number of entries that could be returned.
Bytes returned. The number of bytes of data returned to the user in the output buffer.
CCSID of export item. The CCSID of the export item data. This may not be the same as the Preferred output CCSID if the data cannot be converted to that CCSID.
CCSID of export name. The CCSID of the export name data. This may not be the same as the Preferred output CCSID if the data cannot be converted to that CCSID.
CCSID of MFS name. The CCSID of the MFS name data. This may not be the same as the Preferred output CCSID if the data cannot be converted to that CCSID.
CCSID of mount options. The CCSID of the Mount options data. This may not be the same as the Preferred output CCSID if the data cannot be converted to that CCSID.
CCSID of mount over dir name. The CCSID of the mount over dir name data. This may not be the same as the Preferred output CCSID if the data cannot be converted to that CCSID.
CCSID of remote host name name. The CCSID of the remote host name data. This may not be the same as the Preferred output CCSID if the data cannot be converted to that CCSID.
CCSID of server name. The CCSID of the server name. A value of 0 indicates that the data is in the CCSID of the job.
Displacement to export items. The offset (in bytes) from the beginning of the export entry to the export items in the export entry.
Displacement to member names. The offset (in bytes) from the beginning of the netgroup entry to the member names in the netgroup entry.
Displacement to MFS name. The offset (in bytes) from the beginning of the mount entry to the mounted file system (MFS) name in the entry.
Displacement to mount options. The offset (in bytes) from the beginning of the mount entry to the mount options in the entry.
Displacement to mount over dir name. The offset (in bytes) from the beginning of the mount entry to the mount over dir name in the entry.
Displacement to remote host name. The offset (in bytes) from the beginning of the mount entry to the remote host name in the entry. If the value is 0, then there is no remote host name associated with the mount entry.
Expected CCSID. This value should contain the CCSID that the remote NFS server is expected to return string data in. A value of 0 means to calculate an ASCII CCSID based on the default CCSID of the job (recommended).
Export item. Information item that pertains to the current export. Export items are controlled by the NFS server, and it is not specified what they will contain. They are assumed to be strings and are converted into the Preferred output CCSID, if possible. Normally, an export item contains the hostname of a machine allowed to access or mount the export.
Export name. The pathname of the returned export.
File system id. A number uniquely identifying the mounted file system. Each returned mount entry should have a different file system id.
File system type. Identifies the type of the mounted file system. Refer to the different type values given under the file system type filter field description below.
File system type filter. An ORed value of flags to limit the types of mounted file systems to return. It must be a combination of the following file system type values:
File System Type Value (Hex) | File System Type Value (Integer) | File System Type |
---|---|---|
0x00000000 | 0 | Other (Non-Specified) |
0x00000001 | 1 | "Root" (/) |
0x00000002 | 2 | QOpenSys |
0x00000004 | 4 | QDLS |
0x00000008 | 8 | QSYS.LIB |
0x00000010 | 16 | NFS Version 2 |
0x00000020 | 32 | NFS Version 3 |
0x00000040 | 64 | User-Defined File System (UDFS) |
0x00000080 | 128 | Optical |
0x00000100 | 256 | QFileServer.400 |
0x00000200 | 512 | Netware |
0x00000400 | 1024 | QNTC |
0x00000800 | 2048 | Independent ASP QSYS.LIB |
0x00001000 | 4096 | UDFS Management |
0x00000270 | 624 | All Dynamic MFS |
0xFFFFFFFF | 4294967295 | All MFS |
Note: All Dynamic MFS includes all of the dynamically mounted file systems: Network File System (NFS), User-Defined File Systems (UDFS), and Netware. These file systems can be mounted on demand in different parts of the namespace.
Length of export entry. The length (in bytes) of the current export entry. The length can be used to access the next entry.
Length of export item. The length (in bytes) of the export item.
Length of export item entry. The length (in bytes) of the current export item entry. The length can be used to access the next entry.
Length of export name. The length (in bytes) of the exported name (export pathname).
Length of member name. The length (in bytes) of the member name.
Length of member name entry. The length (in bytes) of this member name entry.
Length of MFS name. The length (in bytes) of the mounted file system name.
Length of mount entry. The length (in bytes) of the current
mount entry. The length can be used to access the next entry.
Length of mount options. The length (in bytes) of the mount options.
Length of mount over dir name. The length (in bytes) of the mount over dir name.
Length of netgroup entry. The length (in bytes) of the current netgroup entry. The length can be used to access the next entry.
Length of netgroup name. The length (in bytes) of the netgroup name.
Length of remote host name. The length (in bytes) of the remote host name. This value will be 0 when the file system is not mounted from a remote host.
Length of server name. The length (in bytes) of the requested
server name which follows. The maximum value for this field is 255.
Member name. The member name. This is assumed to be in the CCSID of the job.
Member name status. Describes the type of member name. Possible values follow:
MFS name. The name of the mounted file system. This is
normally the source path name.
Mount flags. An ORed value of flags that supplies information on how the file system is mounted.
Mount Flag Value | Mount Flag Description |
---|---|
0x0001 | File system is read-only |
0x0002 | File system is not case sensitive |
0x0004 | Renaming of a file to a different casing of the same name will change the casing of the name |
0x0008 | File system cannot be mounted over |
0x0010 | File system cannot be exported through NFS |
0x0020 | File system can be dynamically unmounted |
0x0040 | File system supports synchronous writes |
0x0080 | File system is thread safe |
0x0100 | Default file format for *STMF objects is *TYPE1 |
0x0200 | File system supports the SUID and SGID mode bits, but the bits are not surfaced due to a mount option |
0x0400 | File system is a Network File System hard mount |
Mount options. The string representation of the valid options used to mount the file system. Valid options vary by the type of the mounted file system.
Mount over dir name. The pathname of the directory that is mounted over by the mounted file system. This is where the mount is accessible in the local system's namespace if the mounted file system is visible.
Mount visibility. A value of 1 indicates this mount has
not been mounted over and is accessble (visible) through the
parent file system's namespace. A value of 0 indicates the mounted file system
has itself been mounted over.
Netgroup name. The netgroup name. This is assumed to be in the CCSID of the job.
Number of export entries. The number of complete export entries returned. A value of zero is used if there are no exports available on the server or if insufficient space was provided to hold even a single entry.
Number of export items. The number of export items for this export entry.
Number of member names. The number of member names in the netgroup entry.
Number of mount entries. The number of complete mounted file system entries returned. A value of zero is used if there are no mounts meeting the selection criteria or if insufficient space was provided to hold even a single entry.
Number of netgroup entries. The number of complete entries. A value of zero is used if there are no valid entries for the /etc/netgroup file or if the file does not exist.
Only visible mounts. A value of 1 requests that only visible (accessible, topmost) mounted file systems be retrieved. A value of 0 means to not limit the retrieved mounts based on visiblity.
Preferred output CCSID. The CCSID into which the output will be converted. If a conversion failure occurs, the output may be returned in another CCSID. A value of 0 indicates that the data should be returned in the CCSID of the job.
Remote host name. The name of the host on which the source file system resides. This is the machine being mounted from and is only applicable for remote mounts. For local mounts, the value of Displacement to remote host name will be 0, and this value will not be returned.
Server name. The host name of the server to retrieve the Network File System (NFS) export entries from.
Time of mount. The time when the file system was mounted.
Unique mount id. This value gives an indication of the order in which the file systems were mounted. For example, multiple file systems may be mounted over the same directory. The topmost one (and therefore the one that is visible) will be the one with the largest mount sequence number. The mount sequence numbers will be reset after any system processing which unmounts and mounts file systems, such as IPL and Reclaim Storage (RCLSTG). This value corresponds to the value returned by stat and similar APIs in the st_vfs field.
The include file for this API is QP0LFLOP.
If none of the required parameters are passed to this API, then message CPFB41F will be issued to the caller. This message lists all of the file operations currently available to the QP0LFLOP API.
WARNING - When the (2) QP0L_WRITE_NETGROUP_FILE_ENTRIES file system operation is requested, the existing /etc/netgroup file will be completely rewritten resulting in a loss of the previous contents of the file.
A netgroup is a way of defining one name (the netgroup name) to represent many other names. The names contained within a netgroup definition are called 'members' of that netgroup. A netgroup member can be either the name of a host system, the name of another netgroup, or an IP address. Netgroup definitions are stored in the /etc/netgroup file and are commonly used by the Network File System (NFS) support when a large group of host systems require common NFS access semantics.
An export entry describes a remote file system or subdirectory in a file system residing on an Network File System (NFS) server that is mountable by an NFS client.
Message ID | Error Message Text |
---|---|
CPFA0D4 E | File system error occurred. |
CPE3418 E | Possible APAR condition or hardware failure. |
CPF3C90 E | Literal value cannot be changed. |
CPF3CF1 E | Error code parameter not valid. |
CPF3CF2 E | Error(s) occurred during running of &1 API. |
CPF9872 E | Program or service program &1 in library &2 ended. Reason code &3. |
CPDA1B9 E | An error has occurred in the Network File System (NFS). |
CPFA0AA E | Error occurred while attempting to obtain space. |
CPFA0D0 E | CCSID conversion error occurred. |
CPFA1CE E | Cannot find address for specified system name. |
CPFB41F E | File system operation failed. |
Top | UNIX-Type APIs | APIs by category |