BPXYIPCQ — Map w_getipc structure

AMODE 31 callers use BPXYIPCQ — Map w_getipc structure.

                                                      
            SYSSTATE AMODE64=YES                                                
            BPXYIPCQ   ,                                                        
***********************************************************************         
*                                                                     *         
*  BPXYIPCQ: w_getipc interface mapping                               *         
*   Used By: BPXGXGET                                                 *         
*                                                                     *         
***********************************************************************         
IPCQ          DSECT ,      Interprocess Communications - Query                  
IPCQLENGTH    DS    F      IPCQ#LENGTH used by system call.  If not             
*                          equal, check BPXYIPCQ and system levels.             
IPCQTYPE      DS    CL4    "IMSG", "ISEM", "ISHM", "OVER", "IMAP"               
IPCQOVER      DS    0D     OVERVIEW MAPPING STARTS HERE                         
*---------------------------------------------------------------------*         
*  For IPCQTYPE = OVER, data starts here and the rest of the fields   *         
*  in this section of code are not filled in.                         *         
*---------------------------------------------------------------------*         
IPCQMID       DS    FL4    MEMBER ID                                            
IPCQKEY       DS    XL4    KEY                                                  
IPCQIPCP      DS    CL20   MAPPED BY BPXYIPCP                                   
IPCQGTIME     DS    XL4    TIME_T OF LAST ...GET()                              
IPCQCTIME     DS    XL4    TIME_T OF LAST ...CTL()                              
IPCQTTIME     DS    XL4    TIME_T CHANGED BY TERMINATION                        
*---------------------------------------------------------------------*         
*  Start of Unique data for IPCQTYPE requested                        *         
*---------------------------------------------------------------------*         
IPCQREST      DS    0C     IPCQMSG, IPCQSHM, IPCQSEM, MAPPED MEMORY             
**********************************************************************          
* Message Queue unique data                                          *          
**********************************************************************          
              ORG   IPCQREST                                                    
              DS    0F                                                          
IPCQBYTES     DS    F      # BYTES OF MESSAGES ON QUEUE                         
IPCQQBYTES    DS    F      MAX # BYTES OF MESSAGES ALLOWED ON QUEUE             
IPCQLSPID     DS    F      PID OF LAST MSGSND()                                 
IPCQLRPID     DS    F      PID OF LAST MSGRCV()                                 
IPCQSTIME     DS    F      TIME_T OF LAST MSGSND()                              
IPCQRTIME     DS    F      TIME_T OF LAST MSGRCV()                              
IPCQNUM       DS    F      # OF MESSAGES ON QUEUE                               
IPCQRCNT      DS    F      COUNT OF WAITING MSGRCV                              
IPCQSCNT      DS    F      COUNT OF WAITING MSGSND                              
              DS    0CL16  MSGRCV AND MSGSND WAITERS                            
              DS    0CL8    MSGRCV - WAIT FOR TYPE                              
IPCQQRPID     DS    F        PROCESS ID                                         
IPCQQRMSGTYPE DS    F        MESSAGE TYPE                                       
              DS    0CL8    MSGSND - WAIT FOR ROOM TO SEND                      
IPCQQSPID     DS    F        PROCESS ID                                         
IPCQQSMSGLEN  DS    F        MESSAGE LENGTH                                     
              DS    9CL16  MSGSND AND MSGRCV WAITERS                            
              DS    0CL8   MESSAGES WAITING TO BE RECEIVED                      
IPCQQMPID     DS    F        PROCESS ID                                         
IPCQQMMSGTYPE DS    F        MESSAGE TYPE                                       
              DS    9CL8   MESSAGES                                             
              DS    F      Reserved                                             
              DS    0D                                                          
* The 64 bit time fields will be set for either 31 or 64 bit mode               
* Must define storage different, depending on how assembled                     
* AMODE 64                                                                      
IPCQSTIME64   DS    FD     TIME64_T OF LAST MSGSND()                            
IPCQRTIME64   DS    FD     TIME64_T OF LAST MSGRCV()                            
IPCQQRMSGTYPE64 DS  10FD   MSGRCV 64 BIT MSG TYPE                               
IPCQQMMSGTYPE64 DS  10FD   MSG WAITING 64 BIT MSG TYPE                          
              DS    CL96   Reserved for expansion                               
**********************************************************************          
* Semaphore unique data                                              *          
**********************************************************************          
              ORG   IPCQREST                                                    
              DS    0F                                                          
IPCQLOPID     DS    XL4    PID OF LAST SEMOP                                    
IPCQOTIME     DS    F      TIME_T LAST SEMOP                                    
IPCQADJBADCNT DS    F      TERMINATION BUMPS SEM_VAL LIMITS                     
IPCQNSEMS     DS    FL2    NUMBER OF SEMAPHORES IN THIS SET                     
IPCQADJCNT    DS    FL2    NUMBER OF UNDO STRUCTURES                            
IPCQNCNT      DS    FL2    COUNT OF WAITERS FOR >0                              
IPCQZCNT      DS    FL2    COUNT OF WAITERS FOR =0                              
              DS    0CL16  WAITERS AND ADJUSTERS                                
              DS    0CL8    WAITER                                              
IPCQSWPID     DS    F        PROCESS ID                                         
IPCQSWNUM     DS    H        SEMAPHORE NUMBER                                   
IPCQSWOP      DS    H        SEMAPHORE OPERATION                                
              DS    0CL8    ADJUSTER                                            
IPCQSAPID     DS    F        PROCESS ID                                         
IPCQSANUM     DS    H        SEMAPHORE NUMBER                                   
IPCQSAADJ     DS    H        SEMAPHORE OPERATION                                
              DS    9CL16  WAITERS AND ADJUSTERS                                
              DS    0D                                                          
* AMode 64                                                                      
IPCQOTIME64   DS    FD     TIME64_T LAST SEMOP                                  
              DS    CL360  Reserved for expansion                               
**********************************************************************          
* Shared Memory unique data                                          *          
**********************************************************************          
              ORG   IPCQREST                                                    
              DS    0F                                                          
IPCQACNT      DS    F      USE COUNT (#SHMAT - #SHMDT)                          
              DS    F      RESERVED IN 64 BIT MODE                              
IPCQDTIME     DS    F      TIME_T OF LAST SHMDT()                               
IPCQATIME     DS    F      TIME_T OF LAST SHMAT()                               
IPCQLPID      DS    F      PID OF LAST SHMAT() OR SHMDT()                       
IPCQCPID      DS    XL4    PID OF CREATOR                                       
*---------------------------------------------------------------------*         
* 31 bit callers - 10 Element array of segments attached              *         
*    Each element is the 4 byte PID followed by the 31 bit address    *         
*---------------------------------------------------------------------*         
IPCQATPID64   DS    F      ATTACHED PROCESS ID                                  
              DS    F      Reserved                                             
IPCQATADDRESS64 DS  AD     Segment addresses for process                        
              DS  18FD     Rest of elements                                     
*                                                                               
IPCQDTIME64   DS    FD     TIME_T OF LAST SHMDT()                               
IPCQATIME64   DS    FD     TIME_T OF LAST SHMAT()                               
*                                                                               
IPCQSEGSZ     DS    FD     MEMORY SEGMENT SIZE                                  
              DS    CL344  Reserved                                             
**********************************************************************          
* Mapped Memory unique data                                          *          
**********************************************************************          
              ORG   IPCQREST Mapped Memory unique data                          
              DS    0F                                                          
IPCQMAPCPID   DS    F      CREATOR PROCESS ID                                   
IPCQMAPUPID   DS    F      USER PROCESS ID                                      
IPCQMAPTOKEN  DS    2F     MAP TOKEN                                            
IPCQMAPUID    DS    F      USER'S EFFECTIVE UID                                 
IPCQMAPGID    DS    F      USER'S EFFECTIVE GID                                 
IPCQMAPFLAGS  DS    XL4    FLAGS                                                
* Flags in first byte                                                           
IPCQMAPSHUT   EQU   X'80'  SHUTDOWN OF OBJECT                                   
IPCQBLKSZ     DS    F      SIZE OF BLOCKS IN MEGS                               
IPCQBLKSINUSE DS    F      NUMBER OF BLOCKS IN USE                              
IPCQBLKSINMAP DS    F      NUMBER OF BLOCKS IN MAP AREA                         
IPCQBLKSMAPPED DS   F      NUMBER OF BLOCKS MAPPED                              
*                          BY THIS PROCESS                                      
              DS    CL508  Reserved for expansion                               
**********************************************************************          
* Continuation of Common data                                        *          
* This next ORG gets us past the largest unique section of data      *          
* We need to preserve the field offsets from prior releases so       *          
* needed to add the rest of this common data at the end of the       *          
* unique data instead of within the common area defined above.       *          
**********************************************************************          
              ORG                                                               
IPCQGTIME64   DS    FD     TIME64_T OF LAST ...GET()                            
IPCQCTIME64   DS    FD     TIME64_T OF LAST ...CTL()                            
IPCQTTIME64   DS    FD     TIME64_T CHANGED BY TERMINATION                      
IPCQSECLABEL  DS    FD     SECLABEL                                             
**********************************************************************          
* Overview - summary data for msgqs, semaphores, shared memory       *          
**********************************************************************          
              ORG   IPCQOVER Overview                                           
                 DS    0F  MESSAGE QUEUES                                       
IPCQOMSGNIDS     DS    F        Maximum number MSQs allowed                     
IPCQOMSGHIGHH2O  DS    F        Most MSQs at one time                           
IPCQOMSGFREE     DS    F        Number MSQs available                           
IPCQOMSGPRIVATE  DS    F        Number MSQs with Ipc_PRIVATE                    
IPCQOMSGKEYED    DS    F        Number MSQs with KEYs                           
IPCQOMSGREJECTS  DS    F        TIMES MSGGET DENIED                             
IPCQOMSGQBYTES   DS    F        MAX BYTES PER QUEUE                             
IPCQOMSGQMNUM    DS    F        MAX NUMBER MESSAGES PER QUEUE                   
IPCQOMSGNOALC    DS    F        # MSGSNDS THAT RETURNED ENOMEM                  
                 DS    F                                                        
                 DS    0F  SEMAPHORE                                            
IPCQOSEMNIDS     DS    F        Maximum number SEMs allowed                     
IPCQOSEMHIGHH2O  DS    F        Most SEMs at one time                           
IPCQOSEMFREE     DS    F        Number SEMs available                           
IPCQOSEMPRIVATE  DS    F        Number SEMs with Ipc_PRIVATE                    
IPCQOSEMKEYED    DS    F        Number SEMs with KEYs                           
IPCQOSEMREJECTS  DS    F        TIMES SEMGET DENIED                             
IPCQOSEMSNSEMS   DS    F        MAX NUMBER OF SEMAPHORES PER SET                
IPCQOSEMSNOPS    DS    F        MAX NUMBER OPERATION IN SEMOP                   
IPCQOSEMSBYTES   DS    F        STORAGE LIMIT                                   
IPCQOSEMCBYTES   DS    F        STORAGE COUNT                                   
                 DS    F                                                        
                 DS    0F  SHARED MEMORY                                        
IPCQOSHMNIDS     DS    F        Maximum number SHMs allowed                     
IPCQOSHMHIGHH2O  DS    F        Most SHMs at one time                           
IPCQOSHMFREE     DS    F        Number SHMs available                           
IPCQOSHMPRIVATE  DS    F        Number SHMs with Ipc_PRIVATE                    
IPCQOSHMKEYED    DS    F        Number SHMs with KEYs                           
IPCQOSHMREJECTS  DS    F        TIMES SHMGET DENIED                             
IPCQOSHMSPAGES   DS    F        MAX # PAGES PER SYSTEM LIMIT                    
IPCQOSHMMPAGES   DS    F        MAX # PAGES PER SEGMENT LIMIT - ZERO            
*                               IF 32 BITS EXCEEDED - USE                       
*                               IPCQOSHMMPAGES64 FOR GREATER THAN 32            
*                               BITS                                            
IPCQOSHMNSEGS    DS    F        MAX # SEGMENTS PER PROCESS LIMIT                
IPCQOSHMCPAGES   DS    F        CURRENT # BYTES SYSTEM WIDE                     
*                               This field does not include pages for           
*                               shared memory requests processed with           
*                               the ipc_MEGA option                             
IPCQOSHMBIGGEST  DS    F        LARGEST SEGMENT ALLOCATED - ZERO IF             
*                               32 BITS EXCEEDED - USE                          
*                               IPCQOSHMBIGGEST64 FOR GREATER THAN 32           
*                               BITS                                            
                 DS    0D                                                       
IPCQOSHMMPAGES64  DS   FD       MAX # PAGES PER SEGMENT LIMIT                   
IPCQOSHMBIGGEST64 DS   FD       LARGEST SEGMENT ALLOCATED                       
              ORG   ,                                                           
IPCQ#LENGTH   EQU   *-IPCQ Storage needed for w_getipc function                 
* w-getipc Command:                                                             
IPCQ#MSG      EQU   1      Retrieve next message queue                          
IPCQ#SHM      EQU   2      Retrieve next shared memory segment                  
IPCQ#SEM      EQU   3      Retrieve next semaphore set                          
IPCQ#ALL      EQU   4      Retrieve next member, all mechanisms                 
IPCQ#OVER     EQU   5      Retrieve overview                                    
IPCQ#MAP      EQU   6      Retrieve mapped memory                               
** BPXYIPCQ End