z/OS UNIX System Services File System Interface Reference
Previous topic |
Next topic
|
Contents
|
Contact z/OS
|
Library
|
PDF
Contents (exploded view)
z/OS UNIX System Services File System Interface Reference
SA23-2285-00
z/OS UNIX System Services File System Interface Reference
z/OS Version 2 Release 1 summary of changes
General overview
System structure
Physical file systems
Installing a PFS
Activating and deactivating the PFS
Activation flow for the PFS_Init module
PFS_Init entry interface
The PFSI structure
VFS and vnode operations vector tables
Recycling a PFS externally
PC#RecyclePFS X'8000000C'
PC#RestartPFS X'8000000D'
Termination considerations
Cross-memory considerations
Considerations for writing a PFS in C
Security responsibilities and considerations
Running a PFS in a colony address space
Overview of the PFS interface
Operations summary
LFS/PFS control block structure
Sharing files
LFS-PFS control block integrity
The OSI structure
Waiting and posting
LFS-PFS control block serialization
Recovery considerations
PFS task or address space termination
User process and thread termination
PFS abnormal ends
Terminating a PFS’s associated separate address space
Dumping LFS data
PFS interface: File PFS protocols
Mounting file systems
Asynchronous mounting
Resolving pathnames
Unmounting file systems
LFS processing
PFS processing
Creating, referring to, and inactivating file vnodes
Creating files
PFS processing
Deleting files
PFS processing
Opening and closing files and first references to files
PFS Open Context and the Open_token
Sysplex considerations
Reading from and writing to files
Reading directories
Serialization
Getting and setting attributes
Supporting Share Reservations in a PFS
Types of opens
Open processing
Close processing
Considerations for deleting files
Considerations for reading and writing and SetAttr
Other considerations
File tags
Using daemon tasks within a PFS
Exporting files to a VFS server
Select
PFS interface: Socket PFS protocols
Activating a domain
Creating, referring to, and closing socket vnodes
Reading and writing
Getting and setting attributes
Select/poll processing
Query phase
Cancel phase
Common INET sockets
Common INET sockets PFS structure
The master socket
Common INET prerouting function
Limitations of Common INET-attached PFS IP configurations
Initializing an AF_INET (IPv4) transport driver
Initializing an AF_INET6 (IPv6) transport driver
Route changes
Interface state changes
Rebuilding the routing tables
SRB-mode callers
Asynchronous I/O processing
Related services
Impact on initialization
Waits that are avoided
Related OSI fields
Canceling an operation
Responsibilities for the semantics
Asynchronous I/O flow diagram
Asynchronous I/O flow details
Colony PFS PC
Considerations for Internet Protocol Version 6 (IPv6)
Activating IPv6 on a system
Common INET transport driver index
ioctl used by the XL C/C++ Runtime Library
ioctls used by the prerouter
ioctls used by the resolver
SIOCGSRCIPADDR (obtain source IP addresses for an array of IPv6 and IPv4 destination addresses)
SIOCGIFVERSION (determine if an IPv4 or IPv6 interface has been configured on a TCP/IP stack)
PFS support for multilevel security
PFS support for 64-bit virtual addressing
Levels of support for 64-bit virtual addressing
Indicating support for 64-bit virtual addressing
osi_copy64 routine
Minimum 64-bit support
Specific considerations for vnode operations
Expanded 64-bit time values
XL C/C++ Runtime Library support
PFS support
PFS support for reason code error text
Indicating PFS support for the error text pfsctl call
Passing data on the error text pfsctl call
PFS operations descriptions
Environment for PFS operations
C header files
vfs_batsel — Select/poll on a batch of vnodes
vfs_gethost — Get the socket host ID or name
vfs_inactive — Batch inactivate vnodes
vfs_mount — Mount a file system
vfs_network — Define a socket domain to the PFS
vfs_pfsctl — PFS control
vfs_recovery — Recover resources at end-of-memory
vfs_socket — Create a socket or a socket pair
vfs_statfs — Get the file system status
vfs_sync — Harden all file data for a file system
vfs_unmount — Unmount a file system
vfs_vget — Convert a file identifier to a vnode Token
vn_accept — Accept a socket connection request
vn_access — Check access to a file or directory
vn_anr — Accept a socket connection and read the first block of data
Specific processing notes
Serialization provided by the LFS
Security calls to be made by the LFS
Related services
vn_audit — Audit an action
vn_bind — Bind a name to a socket
vn_cancel — Cancel an asynchronous operation
vn_close — Close a file or socket
vn_connect — Connect to a socket
vn_create — Create a new file
vn_fsync — Harden file data
vn_getattr — Get the attributes of a file
vn_getname — Get the peer or socket name
vn_inactive — Inactivate a vnode
vn_ioctl — I/O control
vn_link — Create a link to a file
vn_listen — Listen on a socket
vn_lockctl — Byte range lock control
vn_lookup — Look up a file or directory
vn_mkdir — Create a directory
vn_open — Open a file
vn_pathconf — Determine configurable pathname values
vn_rdwr — Read or write a file
vn_readdir — Read directory entries
vn_readlink — Read a symbolic link
vn_readwritev — Read or write using a set of buffers for data
vn_recovery — Recover resources after an abend
vn_remove — Remove a link to a file
vn_rename — Rename a file or directory
vn_rmdir — Remove a directory
vn_select — Select or poll on a vnode
vn_sendtorcvfm — Send to or receive from a socket
vn_setattr — Set the attributes of a file
vn_setpeer — Set a socket's peer address
vn_shutdown — Shut down a socket
vn_sndrcv — Send to or receive from a socket
vn_sockopt — Get or set socket options
vn_srmsg — Send messages to or receive messages from a socket
vn_srx — Send or receive CSM buffers
vn_symlink — Create a symbolic link
vn_trunc — Truncate a file
VFS servers
Installation
Activation and deactivation
Termination considerations
Security responsibilities and considerations
VFS server considerations for 64-bit addressing
Using the VFS callable services application programming interface
Operations summary
VFS server – LFS control block structure
Registration
Mounting and unmounting
Overview of NFS processing
Mounting a path name
Resolving the pathname of a file or directory
Accessing an individual file or directory
Capabilities and restrictions for Version 4 NFS server processing in a sysplex environment
NFS file handles
DFS-style file exporters
Reading and writing
Reading directories
Getting and setting attributes
Comparing the VFS server and PFS interfaces
VFS callable services application programming interface
Syntax conventions for the VFS callable services
Elements of callable services syntax
CALL
Service_name
Parm parameters
Return_value
Return_code
Reason_code
Other subjects related to callable services
Considerations for servers written in C
v_access (BPX1VAC, BPX4VAC) — Check file accessibility
v_close (BPX1VCL, BPX4VCL) — Close a file
v_create (BPX1VCR, BPX4VCR) — Create a file
v_export (BPX1VEX, BPX4VEX) — Export a file system
v_fstatfs (BPX1VSF, BPX4VSF) — Return file system status
v_get (BPX1VGT, BPX4VGT) — Convert an FID to a vnode Token
v_getattr (BPX1VGA, BPX4VGA) — Get the attributes of a file
v_ioctl (BPX1VIO/BPX4VIO) - Convey a command to a physical file system
v_link (BPX1VLN, BPX4VLN) — Create a link to a file
v_lockctl (BPX1VLO, BPX4VLO) — Lock a file
v_lookup (BPX1VLK, BPX4VLK) — Look up a file or directory
v_mkdir (BPX1VMK, BPX4VMK) — Create a directory
v_open (BPX1VOP, BPX4VOP) — Open or create a file
v_pathconf (BPX1VPC, BPX4VPC) — Get pathconf information for a directory or file
v_rdwr (BPX1VRW, BPX4VRW) — Read from and write to a file
v_readdir (BPX1VRD, BPX4VRD) — Read entries from a directory
v_readlink (BPX1VRA, BPX4VRA) — Read a symbolic link
v_reg (BPX1VRG, BPX4VRG) — Register a process as a server
v_rel (BPX1VRL, BPX4VRL) — Release a vnode token
v_remove (BPX1VRM, BPX4VRM) — Remove a link to a file
v_rename (BPX1VRN, BPX4VRN) — Rename a file or directory
v_rmdir (BPX1VRE, BPX4VRE) — Remove a directory
v_rpn (BPX1VRP, BPX4VRP) — Resolve a path name
v_setattr (BPX1VSA, BPX4VSA) — Set the attributes of a file
v_symlink (BPX1VSY, BPX4VSY) — Create a symbolic link
OSI services
Using OSI services from a non-kernel address space
osi_copyin — Move data from a user buffer to a PFS buffer
osi_copyout — Move data from a PFS buffer to a user buffer
osi_copy64 — Move data between user and PFS buffers with 64-bit addresses
osi_ctl — Pass control information to the kernel
osi_getcred — Obtain SAF UIDs, GIDs and supplementary GIDs
osi_getvnode — Get or return a vnode
osi_kipcget — Query interprocess communications
osi_kmsgctl — Perform message queue control operations
osi_kmsgget — Create or find a message queue
osi_kmsgrcv — Receive from a message queue
osi_kmsgsnd — Send a message to a message queue
osi_mountstatus — Report file system status to LFS
osi_post — Post an OSI waiter
osi_sched — Schedule async I/O completion
osi_selpost — Post a process waiting for select
osi_signal — Generate the requested signal event
osi_sleep — Sleep until a resource is available
osi_thread — Fetch and call a module from a colony thread
osi_uiomove — Move data between PFS buffers and buffers defined by a UIO structure
osi_upda — Update async I/O request
osi_wait — Wait for an event to occur
osi_wakeup — Wake up OSI sleepers
System control offsets to callable services
Example
List of offsets
Mapping macros
Macros mapping parameters
BPXYATTR — Map file attributes for v_ system calls
BPXYNREG — Map interface block to vnode registration
BPXYOSS — Map operating system specific information
BPXYVLOK — Map the interface block for v_lockctl
BPXYVOPN — Map the open parameters structure for v_open
Callable services examples
Reentrant entry linkage
BPX1VCR, BPX4VCR (v_create)
BPX1VSF, BPX4VSF (v_fstatfs)
BPX1VGT, BPX4VGT (v_get)
BPX1VGA, BPX4VGA (v_getattr)
BPX1VIO, BPX4VIO (v_ioctl)
BPX1VLN, BPX4VLN (v_link)
BPX1VLO, BPX4VLO (v_lockctl)
BPX1VLK, BPX4VLK (v_lookup)
BPX1VMK, BPX4VMK (v_mkdir)
BPX1VPC, BPX4VPC (v_pathconf)
BPX1VRW, BPX4VRW (v_rdwr)
BPX1VRD, BPX4VRD (v_readdir)
BPX1VRA, BPX4VRA (v_readlink)
BPX1VRG, BPX4VRG (v_reg)
BPX1VRL, BPX4VRL (v_rel)
BPX1VRM, BPX4VRM (v_remove)
BPX1VRN, BPX4VRN (v_rename)
BPX1VRE, BPX4VRE (v_rmdir)
BPX1VRP, BPX4VRP (v_rpn)
BPX1VSA, BPX4VSA (v_setattr)
BPX1VSY, BPX4VSY (v_symlink)
Reentrant return linkage
Interface structures for C language servers and clients
BPXYVFSI
BPXYPFSI
Assembler and C-language facilities for writing a PFS in C
Assembler replacements for @@XGET and @@XFREE
BPXT4KGT—Get a page of storage
C function
Assembler routine
BPXT4KFR—Free a page of storage
C function
Assembler routine
BPXTWAIT—Wait on an ECB list
C function
Assembler routine
BPXTPOST—Post an ECB
C function
Assembler routine
BPXTEPOC—Convert time-of-day to epoch time
C function
Assembler routine
Copyright IBM Corporation 1990, 2014