ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/qp0lflop.htm

1428 lines
42 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Perform File System Operation (QP0LFLOP) API</title>
<!-- Begin Header Records -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- file cleaned -->
<!-- Unix2 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Update: d3255 5D30 020913 ROCH: New File system ops -->
<!-- Change History: -->
<!-- 0206?? JET This file has undergone html cleanup -->
<!-- 040115 TIMCLARK: Correct all fields typed as Binary(4) -->
<!-- to be Binary(4), Unsigned. Add link to -->
<!-- stat() for unique mount id. -->
<!-- 050406 JTROUS: fix Usage notes list, no change flag, V5R4 -->
<!-- 050620 JTROUS: fix mount rename note, per DPrigge&RJTraff, no chg flag, V5R4 -->
<!-- 050620 JTROUS: fix alpha order on descr, no chg flag, V5R4 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Perform File System Operation (QP0LFLOP) API</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="40%">File System Operation</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="30%">Binary(4), Unsigned</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Input Buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Length of input buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4), Unsigned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Output Buffer</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Length of output buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4), Unsigned</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Perform File System Operation (QP0LFLOP) API performs miscellaneous file
system operations.</p>
<br>
<h3>Authorities and Locks</h3>
<p>The authorities required vary for each operation:</p>
<dl>
<dt><em>(1) QP0L_RETRIEVE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>
<ul>
<li>The user must have execute (*X) data authority to the /etc directory (if it
exists).</li>
<li>The user must have read (*R) data authority to the /etc/netgroup file (if
it exists).</li>
</ul>
<br>
</dd>
<dt><em>(2) QP0L_WRITE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>
<ul>
<li>The user must have write and execute (*WX) data authority to the /etc
directory (if it exists).</li>
<li>The user must have read and write (*RW) data authority to the /etc/netgroup
file (if it exists).</li>
</ul>
<br>
</dd>
<dt><em>(3) QP0L_RETRIEVE_REMOTE_EXPORTS</em></dt>
<dd>No special authority required.
<br>
<br>
</dd>
<dt><em>(4) QP0L_RETRIEVE_MOUNTED_FILE_SYSTEMS</em></dt>
<dd>No special authority required.
<br>
<br>
</dd>
</dl>
<p><strong>Note:</strong> Adopted authority is not used.</p>
<br>
<h3>Required Parameter Group</h3>
<p>The following parameters are required.</p>
<dl>
<dt><strong>File system operation</strong></dt>
<dd>INPUT; BINARY(4), UNSIGNED
<p>The desired file system operation to perform.</p>
<p>You can specify one of the following operations:</p>
<dl>
<dt><em>(1) QP0L_RETRIEVE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>Returns information about all netgroup definitions currently defined in the
/etc/netgroup file.<br>
<br>
</dd>
<dt><em>(2) QP0L_WRITE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>Recreates the /etc/netgroup file with only the entries provided.<br>
<br>
</dd>
<dt><em>(3) QP0L_RETRIEVE_REMOTE_EXPORTS</em></dt>
<dd>Returns all of the Network File System (NFS) exports for a given
server.<br>
<br>
</dd>
<dt><em>(4) QP0L_RETRIEVE_MOUNTED_FILE_SYSTEMS</em></dt>
<dd>Returns a list of mounted file systems for the local machine along with
certain properties of each.
</dd>
</dl>
</dd>
<dt><strong>Input buffer</strong></dt>
<dd>INPUT; CHAR(*)
<p>Information that is required for a given file system operation. The input
buffer parameter should be set as follows:</p>
<dl>
<dt><em>(1) QP0L_RETRIEVE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>NULL (no input buffer is required).<br>
<br>
</dd>
<dt><em>(2) QP0L_WRITE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>FLOP0200 structure containing the new netgroup entries. For a detailed
description of this structure, see <a href="#HDRR2INP">Format of FLOP0200
Structure</a>.<br><br>
</dd>
<dt><em>(3) QP0L_RETRIEVE_REMOTE_EXPORTS</em></dt>
<dd>FLOP0300_INPUT structure containing the remote Network File System (NFS)
server name to query the exports from. For a detailed description of this
structure, see <a href="#HDRR3INP">Format of FLOP0300 Input Structure</a>.<br>
<br>
</dd>
<dt><em>(4) QP0L_RETRIEVE_MOUNTED_FILE_SYSTEMS</em></dt>
<dd>FLOP0400_INPUT structure containing the selective filtering information for
the mounted file systems requested. For a detailed description of this
structure, see <a href="#HDRR4INP">Format of FLOP0400 Input Structure</a>.
</dd>
</dl>
<br>
</dd>
<dt><strong>Length of input buffer</strong></dt>
<dd>INPUT;BINARY(4), UNSIGNED
<p>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.</p>
</dd>
<dt><strong>Output buffer</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>Information that is provided by a given file system operation. The output
buffer parameter should be set as follows:</p>
<dl>
<dt><em>(1) QP0L_RETRIEVE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>FLOP0100 structure containing enough space to hold all netgroup entries in
the /etc/netgroup file. For a detailed description of this structure, see <a
href="#HDRR1OUT">FLOP0100 Structure Description</a>. No partial entries will be
returned. To determine if all of the entries were returned, the following
semantics will be used:<br>
<br>
<ul>
<li>If the /etc/netgroup file has no entries defined, bytes available and bytes
returned will both be set to 12.</li>
<li>If the /etc/netgroup file has at least one entry defined, then the bytes
available will be greater than 12.</li>
<li>If all of the defined entries in the /etc/netgroup file could not be
returned, then the bytes available will not have the same value as bytes
returned.</li>
</ul>
<p>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.</p>
</dd>
<dt><em>(2) QP0L_WRITE_NETGROUP_FILE_ENTRIES</em></dt>
<dd>NULL (no output buffer is required).<br>
<br></dd>
<dt><em>(3) QP0L_RETRIEVE_REMOTE_EXPORTS</em></dt>
<dd>FLOP0300 structure containing enough space to hold all the export entries
from the remote server. For a detailed description of this structure, see <a
href="#HDRR3OUT">FLOP0300 Output Structure Description</a>. No partial entries
will be returned. To determine if all of the entries were returned, the
following semantics will be used:<br>
<br>
<ul>
<li>If the server has no exports to return, bytes available and bytes returned
will both be set to 12.</li>
<li>If the server is returning at least one export, then the bytes available
will be greater than 12.</li>
<li>If all of the exports given by the server could not be returned in the
space provided, then the bytes available will <strong>not</strong> have the
same value as bytes returned. To retrieve all the entries, the request should
be made again using an output buffer of at least this size.</li>
</ul>
<br>
</dd>
<dt><em>(4) QP0L_RETRIEVE_MOUNTED_FILE_SYSTEMS</em></dt>
<dd>FLOP0400 structure containing enough space to hold each of the returned
mounted file system entries. For a detailed description of this structure, see
<a href="#HDRR4OUT">FLOP0400 Output Structure Description</a>. No partial
entries will be returned. To determine if all of the entries were returned, the
following semantics will be used:<br>
<br>
<ul>
<li>If there are no mounted file systems meeting the request criteria, bytes
available and bytes returned will both be set to 12.</li>
<li>If there exists mounted file systems that match the request criteria, then
the bytes available will be greater than 12.</li>
<li>If all the mounted file system entries that match the request criteria
could not fit in the buffer space given, then the bytes available will <strong>
not</strong> have the same value as bytes returned. To retrieve all the
entries, the request should be made again using an output buffer of at least
this size.
</li>
</ul>
<br>
</dd>
</dl>
<br>
</dd>
<dt><strong>Length of output buffer</strong></dt>
<dd>INPUT; BINARY(4), UNSIGNED
<p>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.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
</dd>
</dl>
<br>
<h3>Output Buffer Description</h3>
<p>
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 <a href="#HDRFLOPFD">Field
Descriptions</a>.</p>
<br>
<h3><a name="HDRR1OUT">FLOP0100 Structure Description</a></h3>
<p>This structure is used to return netgroup definitions taken from the
/etc/netgroup file.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="30%">BINARY(4), UNSIGNED</td>
<td align="left" valign="top" width="50%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Number of netgroup entries</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">These fields repeat for
each netgroup entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of netgroup entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of netgroup name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to member names</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Number of member names</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Netgroup name</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">These fields repeat for
each member name in the netgroup entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of member name entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Member name status</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of member name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Member name</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRR3OUT">FLOP0300 Output Structure Description</a></h3>
<p>This structure is used to return export entries given by an NFS server.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="30%">BINARY(4), UNSIGNED</td>
<td align="left" valign="top" width="50%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Number of export entries</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="6" colspan="2">These fields repeat for
each export entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of export entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of export name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of export name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to export items</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Number of export items</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Export name</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">These fields repeat for
each export item in the export entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of export item entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of export item</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of export item</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*), UNSIGNED</td>
<td align="left" valign="top">Export item</td>
</tr>
</table>
<br>
<p>&nbsp;<br>
</p>
<h3><a name="HDRR4OUT">FLOP0400 Output Structure Description</a></h3>
<p>This structure is used to return mounted file system entries.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="30%">BINARY(4), UNSIGNED</td>
<td align="left" valign="top" width="50%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Number of mount entries</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="23" colspan="2">These fields repeat for
each mount entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of mount entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">File system id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">File system type</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Mount flags</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Unique mount id</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Time of mount</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Mount visibility</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to mounted file system (MFS) name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of MFS name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of MFS name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to mount over dir name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of mount over dir name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of mount over dir name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to remote host name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of remote host name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of remote host name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to mount options</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of mount options</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of mount options</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">MFS name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Mount over dir name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Remote host name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Mount options</td>
</tr>
</table>
<br>
<h3>Input Buffer Description</h3>
<p>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 <a href="#HDRFLOPFD">Field
Descriptions</a>.</p>
<br>
<h3><a name="HDRR2INP">Format of FLOP0200 Structure</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="30%">BINARY(4), UNSIGNED</td>
<td align="left" valign="top" width="50%">Number of netgroup entries</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">These fields repeat for
each netgroup entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of netgroup entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of netgroup name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to member names</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Number of member names</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Netgroup name</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">These fields repeat for
each member name in the netgroup entry.</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of member name entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Member name status</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of member name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Member name</td>
</tr>
</table>
<br>
<p>&nbsp; <br>
</p>
<h3><a name="HDRR3INP">Format of FLOP0300 Input Structure</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="30%">BINARY(4), UNSIGNED</td>
<td align="left" valign="top" width="50%">Preferred output CCSID</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Expected CCSID</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Length of server name</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">CCSID of Server name</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">CHAR(256)</td>
<td align="left" valign="top">Server name</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRR4INP">Format of FLOP0400 Input Structure</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="30%">BINARY(4), UNSIGNED</td>
<td align="left" valign="top" width="50%">Preferred output CCSID</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">File system type filter</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Only visible mounts</td>
</tr>
</table>
<br>
<h3><a name="HDRFLOPFD">Field Descriptions</a></h3>
<p><strong>Bytes available.</strong> 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.</p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned to the
user in the output buffer.</p>
<p>
<strong>CCSID of export item.</strong> 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.</p>
<p><strong>CCSID of export name.</strong> 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.</p>
<p><strong>CCSID of MFS name.</strong> 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.</p>
<p><strong>CCSID of mount options.</strong> 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.</p>
<p><strong>CCSID of mount over dir name.</strong> 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.</p>
<p><strong>CCSID of remote host name name.</strong> 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.</p>
<p><strong>CCSID of server name.</strong> The CCSID of the server name. A value
of 0 indicates that the data is in the CCSID of the job.</p>
<p><strong>Displacement to export items.</strong> The offset (in bytes) from the
beginning of the export entry to the export items in the export entry.</p>
<p><strong>Displacement to member names.</strong> The offset (in bytes) from
the beginning of the netgroup entry to the member names in the netgroup
entry.</p>
<p>
<strong>Displacement to MFS name.</strong> The offset (in bytes) from the
beginning of the mount entry to the mounted file system (MFS) name in the
entry.</p>
<p><strong>Displacement to mount options.</strong> The offset (in bytes) from
the beginning of the mount entry to the mount options in the entry.</p>
<p><strong>Displacement to mount over dir name.</strong> The offset (in bytes)
from the beginning of the mount entry to the mount over dir name in the
entry.</p>
<p><strong>Displacement to remote host name.</strong> 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.</p>
<p><strong>Expected CCSID.</strong> 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).</p>
<p><strong>Export item.</strong> 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.</p>
<p><strong>Export name.</strong> The pathname of the returned export.</p>
<p><strong>File system id.</strong> A number uniquely identifying the mounted
file system. Each returned mount entry should have a different file system
id.</p>
<p><strong>File system type.</strong> Identifies the type of the mounted file
system. Refer to the different type values given under the file system type
filter field description below.</p>
<p><strong>File system type filter.</strong> 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:</p>
<table border width="60%">
<!-- cols="20 15 65" -->
<tr>
<th align="center" valign="bottom">File System Type Value (Hex)</th>
<th align="center" valign="bottom">File System Type Value (Integer)</th>
<th align="center" valign="bottom">File System Type</th>
</tr>
<tr>
<td align="center" valign="bottom">0x00000000</td>
<td align="right" valign="bottom">0</td>
<td align="left" valign="bottom">Other (Non-Specified)</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000001</td>
<td align="right" valign="bottom">1</td>
<td align="left" valign="bottom">"Root" (/)</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000002</td>
<td align="right" valign="bottom">2</td>
<td align="left" valign="bottom">QOpenSys</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000004</td>
<td align="right" valign="bottom">4</td>
<td align="left" valign="bottom">QDLS</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000008</td>
<td align="right" valign="bottom">8</td>
<td align="left" valign="bottom">QSYS.LIB</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000010</td>
<td align="right" valign="bottom">16</td>
<td align="left" valign="bottom">NFS Version 2</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000020</td>
<td align="right" valign="bottom">32</td>
<td align="left" valign="bottom">NFS Version 3</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000040</td>
<td align="right" valign="bottom">64</td>
<td align="left" valign="bottom">User-Defined File System (UDFS)</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000080</td>
<td align="right" valign="bottom">128</td>
<td align="left" valign="bottom">Optical</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000100</td>
<td align="right" valign="bottom">256</td>
<td align="left" valign="bottom">QFileServer.400</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000200</td>
<td align="right" valign="bottom">512</td>
<td align="left" valign="bottom">Netware</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000400</td>
<td align="right" valign="bottom">1024</td>
<td align="left" valign="bottom">QNTC</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000800</td>
<td align="right" valign="bottom">2048</td>
<td align="left" valign="bottom">Independent ASP QSYS.LIB</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00001000</td>
<td align="right" valign="bottom">4096</td>
<td align="left" valign="bottom">UDFS Management</td>
</tr>
<tr>
<td align="center" valign="bottom">0x00000270</td>
<td align="right" valign="bottom">624</td>
<td align="left" valign="bottom">All Dynamic MFS</td>
</tr>
<tr>
<td align="center" valign="bottom">0xFFFFFFFF</td>
<td align="right" valign="bottom">4294967295</td>
<td align="left" valign="bottom">All MFS</td>
</tr>
</table>
<p><strong>Note:</strong> 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.</p>
<p><strong>Length of export entry.</strong> The length (in bytes) of the
current export entry. The length can be used to access the next entry.</p>
<p><strong>Length of export item.</strong> The length (in bytes) of the export
item.</p>
<p><strong>Length of export item entry.</strong> The length (in bytes) of the
current export item entry. The length can be used to access the next entry.</p>
<p><strong>Length of export name.</strong> The length (in bytes) of the
exported name (export pathname).</p>
<p><strong>Length of member name.</strong> The length (in bytes) of the member
name.</p>
<p><strong>Length of member name entry.</strong> The length (in bytes) of this
member name entry.</p>
<p><strong>Length of MFS name.</strong> The length (in bytes) of the mounted
file system name.</p>
<p>
<strong>Length of mount entry.</strong> The length (in bytes) of the current
mount entry. The length can be used to access the next entry.<br>
</p>
<p><strong>Length of mount options.</strong> The length (in bytes) of the mount
options.</p>
<p><strong>Length of mount over dir name.</strong> The length (in bytes) of the
mount over dir name.</p>
<p><strong>Length of netgroup entry.</strong> The length (in bytes) of the
current netgroup entry. The length can be used to access the next entry.</p>
<p><strong>Length of netgroup name.</strong> The length (in bytes) of the
netgroup name.</p>
<p><strong>Length of remote host name.</strong> 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.
</p>
<p>
<strong>Length of server name.</strong> The length (in bytes) of the requested
server name which follows. The maximum value for this field is 255.<br>
</p>
<p><strong>Member name.</strong> The member name. This is assumed to be in the
CCSID of the job.</p>
<p><strong>Member name status.</strong> Describes the type of member name.
Possible values follow:</p>
<dl>
<dt><em>(1) QP0L_MEMBER_IS_A_HOST_NAME</em></dt>
<dd>The member name refers to an individual host name.<br>
<br>
</dd>
<dt><em>(2) QP0L_MEMBER_IS_A_NETGROUP_NAME</em></dt>
<dd>The member name refers to a netgroup name.<br>
<br>
</dd>
<dt><em>(3) QP0L_MEMBER_IS_AN_IP_ADDRESS</em></dt>
<dd>The member name refers to an IP address in the form xxx.xxx.xxx.xxx (for
example 123.4.56.78).</dd>
</dl>
<p><br>
<strong>MFS name.</strong> The name of the mounted file system. This is
normally the source path name.</p>
<p><strong>Mount flags.</strong> An ORed value of flags that supplies
information on how the file system is mounted.</p>
<table border width="60%">
<!-- cols="20 80" -->
<tr>
<th align="center" valign="middle">Mount Flag Value</th>
<th align="center" valign="middle">Mount Flag Description</th>
</tr>
<tr>
<td align="center" valign="middle">0x0001</td>
<td align="left" valign="bottom">File system is read-only</td>
</tr>
<tr>
<td align="center" valign="middle">0x0002</td>
<td align="left" valign="bottom">File system is not case sensitive</td>
</tr>
<tr>
<td align="center" valign="middle">0x0004</td>
<td align="left" valign="bottom">Renaming of a file to a different casing of the same
name will change the casing of the name</td>
</tr>
<tr>
<td align="center" valign="middle">0x0008</td>
<td align="left" valign="bottom">File system cannot be mounted
over</td>
</tr>
<tr>
<td align="center" valign="middle">0x0010</td>
<td align="left" valign="bottom">File system cannot be exported
through NFS</td>
</tr>
<tr>
<td align="center" valign="middle">0x0020</td>
<td align="left" valign="bottom">File system can be dynamically
unmounted</td>
</tr>
<tr>
<td align="center" valign="middle">0x0040</td>
<td align="left" valign="bottom">File system supports synchronous
writes</td>
</tr>
<tr>
<td align="center" valign="middle">0x0080</td>
<td align="left" valign="bottom">File system is thread safe</td>
</tr>
<tr>
<td align="center" valign="middle">0x0100</td>
<td align="left" valign="bottom">Default file format for *STMF
objects is *TYPE1</td>
</tr>
<tr>
<td align="center" valign="middle">0x0200</td>
<td align="left" valign="bottom">File system supports the SUID and
SGID mode bits, but the bits are not surfaced due to a mount option</td>
</tr>
<tr>
<td align="center" valign="middle">0x0400</td>
<td align="left" valign="bottom">File system is a Network File System
hard mount</td>
</tr>
</table>
<p><strong>Mount options.</strong> The string representation of the
valid options used to mount the file system. Valid options vary by
the type of the mounted file system.</p>
<p><strong>Mount over dir name.</strong> 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.</p>
<p><strong>Mount visibility.</strong> A value of 1 indicates this mount has
<strong>not</strong> 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.<br>
</p>
<p><strong>Netgroup name.</strong> The netgroup name. This is assumed to be in
the CCSID of the job.</p>
<p>
<strong>Number of export entries.</strong> 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.</p>
<p><strong>Number of export items.</strong> The number of export items for this
export entry.
</p>
<p><strong>Number of member names.</strong> The number of member names in the
netgroup entry.</p>
<p>
<strong>Number of mount entries.</strong> 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.
</p>
<p><strong>Number of netgroup entries.</strong> 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.</p>
<p>
<strong>Only visible mounts.</strong> 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.</p>
<p><strong>Preferred output CCSID.</strong> 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.</p>
<p><strong>Remote host name.</strong> 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.</p>
<p><strong>Server name.</strong> The host name of the server to retrieve the
Network File System (NFS) export entries from.</p>
<p><strong>Time of mount.</strong> The time when the file system was mounted.</p>
<p><strong>Unique mount id.</strong> 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.
<img src="delta.gif" alt="Start of change">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 <a href="stat.htm">stat</a> and similar APIs in the st_vfs field.
<img alt="End of change" src="deltaend.gif">
</p>
<br>
<h3>Usage Notes</h3>
<ol>
<li><p>The include file for this API is QP0LFLOP.</p></li>
<li><p>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.</p></li>
<li>
<p><em>WARNING</em> - 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.</p></li>
<li>
<p>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.</p></li>
<li>
<p>
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.
</p></li>
</ol>
<br>
<h3>Error Messages</h3>
<table width="100%">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPFA0D4 E</td>
<td width="85%" valign="top">File system error occurred.</td>
</tr>
<tr>
<td valign="top">CPE3418 E</td>
<td valign="top">Possible APAR condition or hardware failure.</td>
</tr>
<tr>
<td valign="top">CPF3C90 E</td>
<td valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td valign="top">CPF3CF2 E</td>
<td valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td valign="top">CPF9872 E</td>
<td valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td valign="top">CPDA1B9 E</td>
<td valign="top">An error has occurred in the Network File System (NFS).</td>
</tr>
<tr>
<td valign="top">CPFA0AA E</td>
<td valign="top">Error occurred while attempting to obtain space.</td>
</tr>
<tr>
<td valign="top">CPFA0D0 E</td>
<td valign="top">CCSID conversion error occurred.</td>
</tr>
<tr>
<td valign="top">CPFA1CE E</td>
<td valign="top">Cannot find address for specified system name.</td>
</tr>
<tr>
<td valign="top">CPFB41F E</td>
<td valign="top">File system operation failed.</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
</table>
<br>
<hr>
API introduced: V4R3
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>