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.