- Remove ND_Node_Root_Alloc(),
- Update init handler API.
This commit is contained in:
@@ -75,7 +75,7 @@
|
||||
# define NDD_MIN(A,B) ( ( A > B) ? B : A)
|
||||
# define NDD_MAX(A,B) ( ( A < B) ? B : A)
|
||||
|
||||
# define ND_STRCPY( dest, src, size) strncpy( (dest), (src), (size)); \
|
||||
# define ND_STR_CPY( dest, src, size) strncpy( (dest), (src), (size)); \
|
||||
(dest)[ (size) - 1] = '\0'
|
||||
|
||||
|
||||
@@ -727,7 +727,7 @@ typedef struct NDT_Handler
|
||||
|
||||
# define NDD_HANDLER_TAB_SIZE ( sizeof( NDT_Handler) * NDD_HANDLER_NB)
|
||||
|
||||
# define NDD_HANDLER_SET( Handler_Ptr, Function_Name, Function_Ptr) ND_STRCPY( ( Handler_Ptr).Name, (Function_Name), NDD_HANDLER_NAME_SIZE); \
|
||||
# define NDD_HANDLER_SET( Handler_Ptr, Function_Name, Function_Ptr) ND_STR_CPY( ( Handler_Ptr).Name, (Function_Name), NDD_HANDLER_NAME_SIZE); \
|
||||
( Handler_Ptr).Ptr = (NDT_Handler_Function *)(Function_Ptr);
|
||||
|
||||
# ifndef _LIBNODE_C_
|
||||
@@ -749,14 +749,32 @@ typedef char *NDT_DataStruct_Name;
|
||||
|
||||
|
||||
|
||||
typedef short NDT_DataStruct_Status;
|
||||
|
||||
#define NDD_DATASTRUCT_STATUS_UNKNOWN 0x0000
|
||||
#define NDD_DATASTRUCT_STATUS_TEMPORARY 0x0001
|
||||
#define NDD_DATASTRUCT_STATUS_VALID 0x0002
|
||||
#define NDD_DATASTRUCT_STATUS_INVALID 0x0003
|
||||
#define NDD_DATASTRUCT_STATUS_MSK ( NDD_DATASTRUCT_STATUS_UNKNOWN | NDD_DATASTRUCT_STATUS_TEMPORARY | NDD_DATASTRUCT_STATUS_VALID | NDD_DATASTRUCT_STATUS_INVALID)
|
||||
#define NDD_DATASTRUCT_STATUS_RMSK ( NDD_DATASTRUCT_STATUS_MSK ^ 0xffff)
|
||||
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( V) ( ( V) == NDD_DATASTRUCT_STATUS_UNKNOWN)
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_TEMPORARY( V) ( ( V) == NDD_DATASTRUCT_STATUS_TEMPORARY)
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_VALID( V) ( ( V) == NDD_DATASTRUCT_STATUS_VALID)
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_INVALID( V) ( ( V) == NDD_DATASTRUCT_STATUS_INVALID)
|
||||
|
||||
#define NDD_DATASTRUCT_STATUS_VALUE_ASCII_GET( V) ( NDD_DATASTRUCT_STATUS_VALUE_UNKNOWN_IS( V) ? "UNKNOWN" : ( NDD_DATASTRUCT_STATUS_VALUE_TEMPORARY( V) ? "TEMPORARY" : ( NDD_DATASTRUCT_STATUS_VALUE_VALID( V) ? "VALID" : ( NDD_DATASTRUCT_STATUS_VALUE_INVALID( V) ? "INVALID" : "???"))))
|
||||
|
||||
|
||||
|
||||
typedef struct NDT_Root
|
||||
{
|
||||
char Name[ NDD_DATASTRUCT_NAME_SIZE];
|
||||
char Name[ NDD_DATASTRUCT_NAME_SIZE];
|
||||
|
||||
long Root_Size; /* Root node total size */
|
||||
size_t Root_Size; /* Root node total size */
|
||||
NDT_DataStruct_Status Status;
|
||||
|
||||
// NDT_DataStruct_Handlers Handlers;
|
||||
NDT_Handler Handler_Tab[ NDD_HANDLER_ID_NB];
|
||||
NDT_Handler Handler_Tab[ NDD_HANDLER_ID_NB];
|
||||
|
||||
/* Deprecated Start */
|
||||
NDT_Manager *Manager_Ptr; /* Manager function pointer */
|
||||
@@ -767,13 +785,13 @@ typedef struct NDT_Root
|
||||
char Deallocator_Name[ NDD_DEALLOCATOR_NAME_SIZE_MAX]; /* Value deallocator function name */
|
||||
/* Deprecated End */
|
||||
|
||||
short Own_Value; /* Flag indicating if the structure is the node owner */
|
||||
short Own_Value; /* Flag indicating if the structure is the node owner */
|
||||
|
||||
void *User_Ptr; /* User pointer */
|
||||
void *User_Ptr; /* User pointer */
|
||||
|
||||
NDT_Index_Nb Index_Nb;
|
||||
NDT_Index_Nb Index_Open_Count;
|
||||
NDT_Index Index_Tab[ 1];
|
||||
NDT_Index_Nb Index_Nb;
|
||||
NDT_Index_Nb Index_Open_Count;
|
||||
NDT_Index Index_Tab[ 1];
|
||||
|
||||
} NDT_Root;
|
||||
|
||||
@@ -810,15 +828,15 @@ typedef struct NDT_Node
|
||||
/* Handler protypes */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
typedef NDT_Status NDT_Handler_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Node *Node_Ptr, NDT_Command Cmd, va_list *);
|
||||
typedef NDT_Status NDT_Handler_Init( NDT_Root **Root_Ptr_Ptr, size_t *Root_Extra_Size, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Handler *Handler_Tab, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Alloc( void **Memory_Ptr_Ptr, NDT_Root *Root_Ptr, size_t Size, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Free( void *Memory_Ptr, NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Open( NDT_Root *Root_Ptr, NDT_Open_Flag Open_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Close( NDT_Root *Root_Ptr, NDT_Close_Flag Close_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Info( NDT_Root *Root_Ptr, NDT_Recursive_Offset Recursive_Offset);
|
||||
typedef NDT_Status NDT_Handler_Lock( NDT_Root *Root_Ptr, NDT_Lock_Flag Lock_Mode, bool *Locked_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Unlock( NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_Node *Node_Ptr, NDT_Command Cmd, va_list *);
|
||||
typedef NDT_Status NDT_Handler_Init( size_t *Root_Extra_Size_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Alloc( void **Memory_Ptr_Ptr, NDT_Root *Root_Ptr, size_t Size, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Free( void *Memory_Ptr, NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Open( NDT_Root *Root_Ptr, NDT_Open_Flag Open_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Close( NDT_Root *Root_Ptr, NDT_Close_Flag Close_Mode, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Info( NDT_Root *Root_Ptr, NDT_Recursive_Offset Recursive_Offset);
|
||||
typedef NDT_Status NDT_Handler_Lock( NDT_Root *Root_Ptr, NDT_Lock_Flag Lock_Mode, bool *Locked_Ptr, void *User_Ptr);
|
||||
typedef NDT_Status NDT_Handler_Unlock( NDT_Root *Root_Ptr, void *User_Ptr);
|
||||
|
||||
|
||||
|
||||
@@ -1491,18 +1509,14 @@ NDD_DLL_API NDT_Status ND_Free_C( void *, NDT_Root *, void *);
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Execute an init handler function */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* (O) Root_Ptr_Ptr: Pointer adress of the new data structure */
|
||||
/* (O) Root_Extra_Size: Pointer on the extra root size */
|
||||
/* (I) DataStruct_Name: Name of the data structure */
|
||||
/* (I) Open_Mode: Open mode */
|
||||
/* (I) Handler_Tab: Pointer on the handler tab */
|
||||
/* (I) Handler_Init_Name: Init handler function name */
|
||||
/* (I) Handler_Init_Ptr: Init handler function pointer */
|
||||
/* (I) User_Ptr: User pointer */
|
||||
/* (O) Root_Extra_Size_Ptr: Pointer on the extra root size */
|
||||
/* (I) Handler_Init_Name: Init handler function name */
|
||||
/* (I) Handler_Init_Ptr: Init handler function pointer */
|
||||
/* (I) User_Ptr: User pointer */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
NDT_Status ND_Handler_Init_Exec_I( NDT_Root **Root_Ptr_Ptr, size_t *Root_Extra_Size, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Handler *Handler_Tab, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr, void *User_Ptr);
|
||||
NDT_Status ND_Handler_Init_Exec_C( NDT_Root **Root_Ptr_Ptr, size_t *Root_Extra_Size, NDT_DataStruct_Name Name, NDT_Open_Flag Open_Mode, NDT_Handler *Handler_Tab, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr, void *User_Ptr);
|
||||
NDT_Status ND_Handler_Init_Exec_I( size_t *Root_Extra_Size_Ptr, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr, void *User_Ptr);
|
||||
NDT_Status ND_Handler_Init_Exec_C( size_t *Root_Extra_Size_Ptr, NDT_Handler_Name Handler_Init_Name, NDT_Handler_Init *Handler_Init_Ptr, void *User_Ptr);
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user