Since v2, v3 changed:
list.h - remove unused macros
atomic.h, rwlock.h - revise documentations
module.h/module.c
- revise various comments and descriptions
- add prefix ODP_ to all external macros/APIs
- replace SUBSYSTEM() to SUBSYSTEM_DECLARE()/_DEFINE()
- change the way user defines derived data structure from odp_module_base_t
- revise SUBSYSTEM_INITTERM_TEMPLATE() to SUBSYSTEM_FOREACH_TEMPLATE()
- SUBSYSTEM_FOREACH_TEMPLATE(): allow caller to control continue or stop loop
on errors
- fixed several checkpatch problems, left 5 below, to see if we can accept them:
WARNING: Macros with flow control statements should be avoided
#326: FILE: frameworks/modular/module.c:27:
+#define REGISTRATION_SANITY_CHECK(subsystem, module) \
+do { \
+ if (subsystem == NULL || module == NULL) \
+ return -ENOENT; \
+ \
+ if (!list_node_detached(&module->list)) { \
+ printf("module %s was already registered.\n", \
+ module->name); \
+ return -EAGAIN; \
+ } \
+} while (0)
+
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#552: FILE: frameworks/modular/module.h:83:
+#define ODP_SUBSYSTEM_API(name, _return, api, ...) \
+ extern _return __odp_api(name, api)(__VA_ARGS__); \
+ typedef _return (*odp_api_proto(name, api))(__VA_ARGS__)
WARNING: space prohibited between function name and open parenthesis '('
#554: FILE: frameworks/modular/module.h:85:
+ typedef _return (*odp_api_proto(name, api))(__VA_ARGS__)
ERROR: Macros with complex values should be enclosed in parentheses
#557: FILE: frameworks/modular/module.h:88:
+#define ODP_SUBSYSTEM_API_STUB(name, api) \
+ __attribute__((weak)) __odp_api(name, api)
ERROR: Macros with complex values should be enclosed in parentheses
#564: FILE: frameworks/modular/module.h:95:
+#define ODP_SUBSYSTEM_API_OVERRIDE(name, api, _alias) \
+ __attribute__((alias(#_alias))) __odp_api(name, api)
Since RFC, what changed:
Split the work: this comes the 1st part: odp: add modular framework
only intro the modular programming framework into odp cloud-dev
lately will submit the 2nd part: apply the modular framework to pktio ops
subsystem
Minor changes:
example: ddf_app: add .gitignore
validation: pktio: disable socket mmsg pktio
Fix doxgen and checkpatch.pl errors and warnings
Fixed most but checkpatch.pl still reports 4 errors, 3 warnings on module.h
which seems inevitable, I'll go through these in the call to reach consensus
and schedule future improvement.
Signed-off-by: Yi He [email protected]
----------------github------------------------
/** Email created from pull request 65 (heyi-linaro:modular-framework)
** https://github.com/Linaro/odp/pull/65
** Patch: https://github.com/Linaro/odp/pull/65.patch
** Base sha: 1ba26aa5650c05718c177842178de6d0f70b7fc1
** Merge commit sha: 6ec2e428f70182f80be27e5d403b9359cae20500
**/
----------------/github------------------------
----------------checkpatch.pl------------------------
total: 0 errors, 0 warnings, 0 checks, 1 lines checked
to_send-p-000.patch has no obvious style problems and is ready for submission.
total: 0 errors, 0 warnings, 0 checks, 9 lines checked
to_send-p-001.patch has no obvious style problems and is ready for submission.
WARNING: Macros with flow control statements should be avoided
#333: FILE: frameworks/modular/module.c:27:
+#define REGISTRATION_SANITY_CHECK(subsystem, module) \
+do { \
+ if (subsystem == NULL || module == NULL) \
+ return -ENOENT; \
+ \
+ if (!list_node_detached(&module->list)) { \
+ printf("module %s was already registered.\n", \
+ module->name); \
+ return -EAGAIN; \
+ } \
+} while (0)
+
CHECK: extern prototypes should be avoided in .h files
#540: FILE: frameworks/modular/module.h:64:
+ extern odp_subsystem_t __subsystem(name)
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#559: FILE: frameworks/modular/module.h:83:
+#define ODP_SUBSYSTEM_API(name, _return, api, ...) \
+ extern _return __odp_api(name, api)(__VA_ARGS__); \
+ typedef _return (*odp_api_proto(name, api))(__VA_ARGS__)
WARNING: space prohibited between function name and open parenthesis '('
#561: FILE: frameworks/modular/module.h:85:
+ typedef _return (*odp_api_proto(name, api))(__VA_ARGS__)
ERROR: Macros with complex values should be enclosed in parentheses
#564: FILE: frameworks/modular/module.h:88:
+#define ODP_SUBSYSTEM_API_STUB(name, api) \
+ __attribute__((weak)) __odp_api(name, api)
ERROR: Macros with complex values should be enclosed in parentheses
#571: FILE: frameworks/modular/module.h:95:
+#define ODP_SUBSYSTEM_API_OVERRIDE(name, api, _alias) \
+ __attribute__((alias(#_alias))) __odp_api(name, api)
total: 3 errors, 2 warnings, 1 checks, 781 lines checked
to_send-p-002.patch has style problems, please review.
If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
----------------/checkpatch.pl------------------------