Changes the memory strategy for an application dynamically.
               
            
 
            	 
             
               		
               Note: This routine is supported for native COBOL only.
                  		
               
 
               	 
              
            	 
            
               Syntax:
 
               		 
               		call "CBL_MEM_STRATEGY" using by value     func
                              by reference flags
                              returning    status-code 
               	   
            	 
            
               Parameters:
 
               		 
               		
                
                  		
                  
                      
                        			  
                        			  
                        			  
                        			 
                         
                           				
                            
                              				  
                              |  | Using call prototype (see 
                                 					 Key) | Picture (32-bit systems) | 
 
                           			 
                         
                        			 
                         
                           				
                            
                              				  
                              | func | cblt-x4-comp-5 | pic x(4) comp-5. | 
 
                           				
                            
                              				  
                              | flags | cblt-x4-comp-5 | pic x(4) comp-5. | 
 
                           				
                            
                              				  
                              | status-code | See 
                                 					 Library Routines - Key | 
 
                           			 
                         
                        		  
                     
                    
                  		
                 
               	 
              
            	 
            
               On Entry:
 
               		 
               		
                
                  		   
                  			 
                  -  
                     				func 
                     			 
                  
-  
                     				
                     
                         
                           					  
                           					  
                           					 
                            
                              						
                               
                                 						  
                                 | 0 | Get memory strategy |   
                                 						  
                                 | 1 | Set memory strategy |   
                                 						  
                                 | 2 | Get number of freed memory blocks being checked |   
                                 						  
                                 | 3 | Set number of freed memory blocks to be checked |  
 
 
-  
                     				flags 
                     			 
                  
- If 
                     				func is set to 1, 
                     				flags indicates the memory strategy to set, as follows: 
                     				
                      
                        				   
                        					 
                        - Bit 0
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Check bytes strategy: prepend and append check bytes to each memory allocation |  
 
 
- Bit 1
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Check freed memory strategy: monitor for subsequent corruption the last 
                                          									 n memory blocks freed, where 
                                          									 n is the current value as set when 
                                          									 func 
                                             									 is set to 3 |  
 
 
- Bit 2
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Reuse strategy: allow freed memory being monitored for corruption to be used to satisfy allocation requests |  
 
 
- Bits 3-29
                           					 
                        
- Reserved for future use. Must be set to zero. 
                           					 
                        
- Bit 30
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Compatibility strategy: maintain compatibility with previous versions of the run-time system |  
 
 
- Bit 31
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Validate strategy: validate memory each time an allocation or free operation occurs |  
 
 
 If 
                     				func is set to 3, 
                     				flags indicates the number of freed memory blocks to be monitored for corruption.
  
            	 
            
               On Exit:
 
               		 
               		
                
                  		   
                  			 
                  -  
                     				flags 
                     			 
                  
- If 
                     				func is set to 0, 
                     				flags indicates the current memory strategy,as follows: 
                     				
                      
                        				   
                        					 
                        - Bit 0
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Check bytes strategy: prepend and append check bytes to each memory allocation |  
 
 
- Bit 1
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Check freed memory strategy: monitor for subsequent corruption the last 
                                          									 n memory blocks freed, where 
                                          									 n is the current value as set when 
                                          									 func 
                                             									 is set to 3 |  
 
 
- Bit 2
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Reuse strategy: allow freed memory being monitored for corruption to be used to satisfy allocation requests |  
 
 
- Bits 3-29
                           					 
                        
- Reserved for future use. Set to zero. 
                           					 
                        
- Bit 30
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Compatibility strategy: maintain compatibility with previous versions of of the run-time system |  
 
 
- Bit 31
                           					 
                        
-  
                           						
                           
                               
                                 							  
                                 							  
                                 							 
                                  
                                    								
                                     
                                       								  
                                       | 0 | No action |   
                                       								  
                                       | 1 | Validate strategy: validate memory each time an allocation or free operation occurs |  
 
 
 If 
                     				func is set to 2, 
                     				flags indicates the number of freed memory blocks being monitored for corruption.
-  
                     				status-code 
                     			 
                  
- Status of operation: 
                     				
                     
                         
                           					  
                           					  
                           					 
                            
                              						
                               
                                 						  
                                 | 0 | All memory allocations are intact |   
                                 						  
                                 | 1000 | Insufficient memory to perform request |   
                                 						  
                                 | 1009 | Invalid parameter specified |  
 
 
  
            	 
             
            
           
         
         
Comments:
Use this routine to change the memory strategy for an application from within the application. It provides the same functionality as that provided by the memory_strategy and memory_free_check_size run-time tunables.