z/OS UNIX System Services File System Interface Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


BPXYOSS — Map operating system specific information

z/OS UNIX System Services File System Interface Reference
SA23-2285-00

The numbers of file blocks read and written, along with the number of directory blocks processed, are returned in the OssReadIBC, OssWriteIBC and OssDirIBC, fields of the OSS. On return from the VFS Callable Service API, the block counts present initially in the OSS have been incremented to reflect the counts for this call to the service. Thus, to obtain the numbers of blocks processed on a particular call to a VFS Callable Service API, set the block count fields to zero before calling the service. To accumulate the block counts across a series of calls, pass the same OSS to each, without modifying the count fields

The following OSS fields must be provided by the caller:
OssId
Contains 'OSS '
OssLen
Specifies the length of the OSS structure, OSS#LENGTH.
OSSReadIBC
Contains number of blocks read.
OSSWriteIBC
Contains number of blocks written.
OSSDirIBC
Contains number of directory blocks processed.
*        %GOTO OSSPRO  ;          /* Bilingual header
         MACRO
         BPXYOSS  &DSECT=YES,&LIST=YES
         GBLB  &OSS411
         AIF   (&OSS411 EQ 1).E411
&OSS411 SETB   1
         AIF   ('&LIST' EQ 'YES').A411
         PUSH  PRINT  BPXYOSS: Operating System Specific Information
         PRINT OFF
         AGO   .A411
*                                  */
*%OSSPRO : ;
*/****START OF SPECIFICATIONS******************************************
*
*    $MAC (BPXYOSS) COMP(SCPX1) PROD(BPX):
*
*01* MACRO NAME: BPXYOSS
*
*01* DSECT NAME: OSS
*
*01* DESCRIPTIVE NAME: Operating System Specific Information
*
*02*   ACRONYM: OSS
**/
*/*01* PROPRIETARY STATEMENT=                                        */
*/***PROPRIETARY_STATEMENT********************************************/
*/*                                                                  */
*/*                                                                  */
*/* LICENSED MATERIALS - PROPERTY OF IBM                             */
*/* THIS MACRO IS "RESTRICTED MATERIALS OF IBM"                      */
*/* 5650-ZOS (C) COPYRIGHT IBM CORP. 1993, 2005                      */
*/*                                                                  */
*/* STATUS= HBB7720                                                  */
*/*                                                                  */
*/***END_OF_PROPRIETARY_STATEMENT*************************************/
*/*
*
*01* EXTERNAL CLASSIFICATION:  GUPI
*01* END OF EXTERNAL CLASSIFICATION:
*
*01* FUNCTION:
*
*      To pass information specific to the z/OS UNIX implemenation
*      of the VFS/VNODE interface.
*
*01* METHOD OF ACCESS:
*
*02*   PL/X:
*
*        %INCLUDE SYSLIB(BPXYOSS)
*        By default, the OSS is based on OssPtr. If
*        other basing is desired, use %OSSBASE='BASED(XXXXXX)'.
*        If %OSSBASE='BASED(OssPtr)' is coded, a Declare for
*        OssPtr is also generated.
*
*        Typical Syscall usage: %OSSBASE = 'Based(Addr(InputOss))'
*
*02*   ASM:
*        With DSECT=NO, storage is allocated in line
*        and addressability is provided thru that DSECT or CSECT.
*        With DSECT=YES, a DSECT is produced and "USING OSS,reg"
*        is required for addressability.  Here "reg" contains the
*        address of OSS#LENGTH bytes of storage.
*        The default is DSECT=YES.
*
*01* SIZE: OSS#LENGTH
*
*01* POINTED TO BY: OssPtr
*
*01* CREATED BY: Storage obtained by caller of system call
*
*01* DELETED BY: Caller of system call
*
*01* STORAGE ATTRIBUTES:
*02*   SUBPOOL/DATASPACE:  N/A
*02*   KEY:                N/A
*02*   RESIDENCY:          N/A
*
*01* FREQUENCY: 1 per syscall of a vnode op
*
*01* SERIALIZATION: N/A
*
*01* DEPENDENCIES: None
*
*01* NOTES:
*           BPXYVFSI is a C program interface for the BPX1V (v_)
*           services.  The OSS structure in BPXYVFSI matches
*           the BPXYOSS structure.
*
*01* COMPONENT:  z/OS UNIX (SCPX1)
*
*01* DISTRIBUTION LIBRARY:  AMACLIB
*
*01* EYE-CATCHER: OSS
*02*   OFFSET:  0
*02*   LENGTH:  4
*
****END OF SPECIFICATIONS*********************************************/
*        %GOTO OSSPLS   ;         /* Bilingual header
.A411    ANOP  ,
** BPXYOSS: OSS - Operating System Specific Information
**  Used By: v_ callable services
         AIF   ('&DSECT' EQ 'NO').B411
OSS                  DSECT ,
         AGO   .C411
.B411    ANOP  ,
                     DS    0D                 Clear storage
OSS                  DC    XL(OSS#LENGTH)'00'
                     ORG   OSS
.C411    ANOP  ,
OSSBEGIN             DS    0D
*
OSSID                DC    C'OSS '            Eye catcher
OSSLEN               DC    AL4(OSS#LENGTH)    Length of the structure
OSSDIRIBC            DS    F                  Directory I/O block cnt
OSSREADIBC           DS    F                  Read I/O block cnt
OSSWRITEIBC          DS    F                  Write I/O block cnt
OSSOPENFLAGS         DS    F                  Reserved for internal
*                                             use - open flags
                     ORG   OSSOPENFLAGS                       @P2C@P1A
OSSFLAGS1            DS    B                                      @P1A
OSSXMTPT             EQU   X'80'               Cross Mount Points @P1A
                     DS    CL3                                    @P1A
OSSOPENTOKEN         DS    CL8                V_Open Token        @D4A
*
*   Constants
*
OSS#LENGTH           EQU   *-OSSBEGIN         Length of OSS
** BPXYOSS End
         SPACE 3
         AIF   ('&LIST' EQ 'YES').E411                        6@D1A
         POP   PRINT
.E411    ANOP  ,
         MEND  ,                  Terminating PL/X comment           */
*
*%OSSPLS : ;
*
*%Dcl OSSBASE2 Char Ext;          /* Settable by other macros    @D2A*/
*
*%IF OSSBASE = '' %THEN
*  %IF OSSBASE2 = '' %THEN                                     /*@D2A*/
*    %DO;
*      %OSSBASE = 'BASED(OssPtr)';
*    %END;
*  %ELSE %OSSBASE = OSSBASE2;                                  /*@D2A*/
*
*%IF Translate(OSSBASE) = 'BASED(OSSPTR)' %THEN
*  %DO;
*    DCL OssPtr Ptr(31);          /* Pointer to the OSS              */
*  %END;
*
*
*DCL
* 1 OSS OSSBASE ,                 /* Operating System Specific Info  */
*
*   3 OssId         Char(4),      /* Eye catcher - 'OSS '            */
*   3 OssLen        Fixed(31),    /* Length of structure             */
*
*   3 OssAcctIBC,                 /* I/O Block Counts                */
*     7 OssDirIBC   Fixed(32),    /*   Directory I/O block cnt   @01C*/
*     7 OssReadIBC  Fixed(32),    /*   Read I/O block cnt        @01C*/
*     7 OssWriteIBC Fixed(32),    /*   Write I/O block cnt       @01C*/
*
*   3 OssOpenFlags  Bit(32),      /* Reserved for internal use -
*                                    open flags for internal v_rdwr
*                                    callers                 @P2M@D3A*/
*     5 OssXmtpt     Bit(1),      /*   Cross Mount Points        @P1A*/
*   3 OssOpenToken  Char(8),      /* V_Open Token            @D4A@P2D*/
*     5 OssOpenTokSpec Char(4);   /*   Special Token Values  @D4A@P2D*/
*
*
*DCL
* Oss#ID  Char(4)  Constant('OSS '),      /* Eye catcher             */
* Oss#Len Fixed(31) Constant(Length(Oss));/* Length of Oss           */
*
*Dcl          /* Special Values for OssOpenTokSpec               @D4A*/
* (Oss#NoTokAdvChk   Constant(0),  /* Advisory Check, vs. V4     @D4A*/
*  Oss#NoTokMandChk  Constant(2),  /* Mandatory Check, vs. all   @D4A*/
*  Oss#NoTokOverride Constant(1) ) /* No Checks, for Reads only  @D4A*/
*                            Fixed(32);                        /*@D4A*/
* 

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014