BPX4MMI (__map_init) example

The following code creates a shared memory map with 10 map blocks each with a size of 1 meg. For the callable service, see __map_init (BPX1MMI, BPX4MMI) — Create a mapped megabyte area. For the data structure, see BPXYMMG — Map interface for _map_init and _map_service. AMODE 31 callers use BPX1MMI (__map_init) example.
                                              
         LA    R2,INITPARM           Set address of init parm list      
         STG   R2,INITADDR                                              
         USING _MMG_INIT_PARM,R2                                        
         XC    _MMG_INIT_PARM(_MMG_INIT_PARM_LEN),_MMG_INIT_PARM        
         L     R1,=F'10'             Map area to contain 10 blocks      
         ST    R1,_MMG_NUMBLKS       *                                  
         L     R1,=F'1'              Each block is to be 1 meg in size  
         ST    R1,_MMG_MEGSPERBLK    *                                  
         SPACE ,                                                        
         CALL  BPX4MMI,                                                +
               (=A(MMG_INIT),        Input: Function code              +
               INITADDR,             Input: __map_init parameter list  +
               RETVAL,               Return value: 0, -1               +
               RETCODE,              Return code                       +
               RSNCODE),             Reason code                       +
               MF=(E,PLIST)          ----------------------------------