diff --git a/README.md b/README.md index a8121b17..0b58916c 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ The available containers of M\*LIB for thread synchronization are: The following containers are intrusive (You need to modify your structure): -* [m-i-list.h](#m-i-list): header for creating dual-linked intrusive list of generic type, +* [m-i-list.h](#m-i-list): header for creating doubly-linked intrusive list of generic type, * [m-i-shared.h](#m-i-shared): header for creating intrusive shared pointer of generic type (Thread Safe), @@ -3207,12 +3207,12 @@ This function is thread safe. ### M-I-LIST -This header is for creating intrusive dual-chained list. +This header is for creating intrusive doubly-linked list. #### ILIST\_INTERFACE(name, type) Extend an object by adding the necessary interface to handle it within -a dual linked intrusive list. +an intrusive doubly-linked list. This is the intrusive part. It shall be put within the structure of the object to link, at the top level of the structure. @@ -3220,7 +3220,7 @@ See example of ILIST\_DEF. #### ILIST\_DEF(name, type[, oplist]) -Define the dual linked list +Define the instrusive doubly-linked list and define the associated methods to handle it as "static inline" functions. 'name' shall be a C identifier which will be used to identify the list. It will be used to create all the types and functions to handle the container. It shall be done once per type and per compilation unit. diff --git a/m-i-list.h b/m-i-list.h index efe78d8d..edc6605f 100644 --- a/m-i-list.h +++ b/m-i-list.h @@ -27,11 +27,11 @@ #include "m-core.h" -/* Interface to add to a structure to allow intrusive support. +/* Interface to add to a structure to enable intrusive doubly-linked support. name: name of the intrusive list. type: name of the type of the structure (aka. struct test_s) - not used currently USAGE: - struct tmp_str_s { + typedef struct tmp_str_s { ... ILIST_INTERFACE(tmpstr, struct tmp_str_s); ... @@ -40,17 +40,17 @@ #define ILIST_INTERFACE(name, type) \ struct ilist_head_s name -/* Define a list of a given type. +/* Define a doubly-linked intrusive list of a given type. USAGE: - LIST_DEF(name, type [, oplist_of_the_type]) */ + ILIST_DEF(name, type [, oplist_of_the_type]) */ #define ILIST_DEF(name, ...) \ ILISTI_DEF(M_IF_NARGS_EQ1(__VA_ARGS__) \ ((name, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__), M_C(name, _t), M_C(name, _it_t) ), \ (name, __VA_ARGS__, M_C(name, _t), M_C(name, _it_t) ))) -/* Define the oplist of a ilist of type. +/* Define the oplist of a doubly-linked instrusive list of type. USAGE: - LIST_OPLIST(name [, oplist_of_the_type]) */ + ILIST_OPLIST(name [, oplist_of_the_type]) */ #define ILIST_OPLIST(...) \ ILISTI_OPLIST(M_IF_NARGS_EQ1(__VA_ARGS__) \ ((__VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__) ), \ @@ -119,7 +119,7 @@ typedef struct ilist_head_s { /* Indirection call to allow expanding all arguments (TBC) */ #define ILISTI_DEF(arg) ILISTI_DEF2 arg -/* Definition of the type and function for an intrusive list. +/* Definition of the type and function for an intrusive doubly-linked list. USAGE: name: name of the intrusive list type: type of the object