@ -655,8 +655,65 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset,
/* Write-in-place functions */
/**********************************************************************/
/**
* fdt_setprop_inplace - change a property ' s value , but not its size
* @ fdt : pointer to the device tree blob
* @ nodeoffset : offset of the node whose property to change
* @ name : name of the property to change
* @ val : pointer to data to replace the property value with
* @ len : length of the property value
*
* fdt_setprop_inplace ( ) replaces the value of a given property with
* the data in val , of length len . This function cannot change the
* size of a property , and so will only work if len is equal to the
* current length of the property .
*
* This function will alter only the bytes in the blob which contain
* the given property value , and will not alter or move any other part
* of the tree .
*
* returns :
* 0 , on success
* - FDT_ERR_NOSPACE , if len is not equal to the property ' s current length
* - FDT_ERR_NOTFOUND , node does not have the named property
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
* - FDT_ERR_BADSTRUCTURE ,
* - FDT_ERR_TRUNCATED , standard meanings
*/
int fdt_setprop_inplace ( void * fdt , int nodeoffset , const char * name ,
const void * val , int len ) ;
/**
* fdt_setprop_inplace_cell - change the value of a single - cell property
* @ fdt : pointer to the device tree blob
* @ nodeoffset : offset of the node whose property to change
* @ name : name of the property to change
* @ val : cell ( 32 - bit integer ) value to replace the property with
*
* fdt_setprop_inplace_cell ( ) replaces the value of a given property
* with the 32 - bit integer cell value in val , converting val to
* big - endian if necessary . This function cannot change the size of a
* property , and so will only work if the property already exists and
* has length 4.
*
* This function will alter only the bytes in the blob which contain
* the given property value , and will not alter or move any other part
* of the tree .
*
* returns :
* 0 , on success
* - FDT_ERR_NOSPACE , if the property ' s length is not equal to 4
* - FDT_ERR_NOTFOUND , node does not have the named property
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
* - FDT_ERR_BADSTRUCTURE ,
* - FDT_ERR_TRUNCATED , standard meanings
*/
static inline int fdt_setprop_inplace_cell ( void * fdt , int nodeoffset ,
const char * name , uint32_t val )
{
@ -664,7 +721,54 @@ static inline int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,
return fdt_setprop_inplace ( fdt , nodeoffset , name , & val , sizeof ( val ) ) ;
}
/**
* fdt_nop_property - replace a property with nop tags
* @ fdt : pointer to the device tree blob
* @ nodeoffset : offset of the node whose property to nop
* @ name : name of the property to nop
*
* fdt_nop_property ( ) will replace a given property ' s representation
* in the blob with FDT_NOP tags , effectively removing it from the
* tree .
*
* This function will alter only the bytes in the blob which contain
* the property , and will not alter or move any other part of the
* tree .
*
* returns :
* 0 , on success
* - FDT_ERR_NOTFOUND , node does not have the named property
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
* - FDT_ERR_BADSTRUCTURE ,
* - FDT_ERR_TRUNCATED , standard meanings
*/
int fdt_nop_property ( void * fdt , int nodeoffset , const char * name ) ;
/**
* fdt_nop_node - replace a node ( subtree ) with nop tags
* @ fdt : pointer to the device tree blob
* @ nodeoffset : offset of the node to nop
*
* fdt_nop_node ( ) will replace a given node ' s representation in the
* blob , including all its subnodes , if any , with FDT_NOP tags ,
* effectively removing it from the tree .
*
* This function will alter only the bytes in the blob which contain
* the node and its properties and subnodes , and will not alter or
* move any other part of the tree .
*
* returns :
* 0 , on success
* - FDT_ERR_BADOFFSET , nodeoffset did not point to FDT_BEGIN_NODE tag
* - FDT_ERR_BADMAGIC ,
* - FDT_ERR_BADVERSION ,
* - FDT_ERR_BADSTATE ,
* - FDT_ERR_BADSTRUCTURE ,
* - FDT_ERR_TRUNCATED , standard meanings
*/
int fdt_nop_node ( void * fdt , int nodeoffset ) ;
/**********************************************************************/