mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	Make various other updates suggested during review of the rST conversion. Signed-off-by: Simon Glass <sjg@chromium.org> Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
		
			
				
	
	
		
			52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
.. SPDX-License-Identifier: GPL-2.0+
 | 
						|
 | 
						|
Environment implementation
 | 
						|
==========================
 | 
						|
 | 
						|
See :doc:`../usage/environment` for usage information.
 | 
						|
 | 
						|
Callback functions for environment variables
 | 
						|
--------------------------------------------
 | 
						|
 | 
						|
For some environment variables, the behavior of u-boot needs to change
 | 
						|
when their values are changed.  This functionality allows functions to
 | 
						|
be associated with arbitrary variables.  On creation, overwrite, or
 | 
						|
deletion, the callback will provide the opportunity for some side
 | 
						|
effect to happen or for the change to be rejected.
 | 
						|
 | 
						|
The callbacks are named and associated with a function using the
 | 
						|
U_BOOT_ENV_CALLBACK macro in your board or driver code.
 | 
						|
 | 
						|
These callbacks are associated with variables in one of two ways.  The
 | 
						|
static list can be added to by defining CONFIG_ENV_CALLBACK_LIST_STATIC
 | 
						|
in the board configuration to a string that defines a list of
 | 
						|
associations.  The list must be in the following format::
 | 
						|
 | 
						|
    entry = variable_name[:callback_name]
 | 
						|
    list = entry[,list]
 | 
						|
 | 
						|
If the callback name is not specified, then the callback is deleted.
 | 
						|
Spaces are also allowed anywhere in the list.
 | 
						|
 | 
						|
Callbacks can also be associated by defining the ".callbacks" variable
 | 
						|
with the same list format above.  Any association in ".callbacks" will
 | 
						|
override any association in the static list. You can define
 | 
						|
CONFIG_ENV_CALLBACK_LIST_DEFAULT to a list (string) to define the
 | 
						|
".callbacks" environment variable in the default or embedded environment.
 | 
						|
 | 
						|
If CONFIG_REGEX is defined, the variable_name above is evaluated as a
 | 
						|
regular expression. This allows multiple variables to be connected to
 | 
						|
the same callback without explicitly listing them all out.
 | 
						|
 | 
						|
The signature of the callback functions is::
 | 
						|
 | 
						|
    int callback(const char *name, const char *value, enum env_op op, int flags)
 | 
						|
 | 
						|
* name - changed environment variable
 | 
						|
* value - new value of the environment variable
 | 
						|
* op - operation (create, overwrite, or delete)
 | 
						|
* flags - attributes of the environment variable change, see flags H_* in
 | 
						|
  include/search.h
 | 
						|
 | 
						|
The return value is 0 if the variable change is accepted and 1 otherwise.
 |