This patch changes preprocesing macros to static inline funcions. Also the function is_equal_uuid (IS_EQUAL_UUID) now uses the memcmp function. Signed-off-by: Armando Uribe <x0095078@xxxxxx> --- .../staging/tidspbridge/include/dspbridge/dbdefs.h | 32 +++++-------------- drivers/staging/tidspbridge/rmgr/nldr.c | 20 +++++------- drivers/staging/tidspbridge/rmgr/proc.c | 4 +- 3 files changed, 20 insertions(+), 36 deletions(-) diff --git a/drivers/staging/tidspbridge/include/dspbridge/dbdefs.h b/drivers/staging/tidspbridge/include/dspbridge/dbdefs.h index 8f84735..ffcc326 100644 --- a/drivers/staging/tidspbridge/include/dspbridge/dbdefs.h +++ b/drivers/staging/tidspbridge/include/dspbridge/dbdefs.h @@ -110,29 +110,15 @@ #define DSPTYPE64 0x99 /* Handy Macros */ -#define IS_VALID_PROC_EVENT(x) (((x) == 0) || (((x) & \ - (DSP_PROCESSORSTATECHANGE | \ - DSP_PROCESSORATTACH | \ - DSP_PROCESSORDETACH | \ - DSP_PROCESSORRESTART | \ - DSP_NODESTATECHANGE | \ - DSP_STREAMDONE | \ - DSP_STREAMIOCOMPLETION | \ - DSP_MMUFAULT | \ - DSP_SYSERROR | \ - DSP_WDTOVERFLOW | \ - DSP_PWRERROR)) && \ - !((x) & ~(DSP_PROCESSORSTATECHANGE | \ - DSP_PROCESSORATTACH | \ - DSP_PROCESSORDETACH | \ - DSP_PROCESSORRESTART | \ - DSP_NODESTATECHANGE | \ - DSP_STREAMDONE | \ - DSP_STREAMIOCOMPLETION | \ - DSP_MMUFAULT | \ - DSP_SYSERROR | \ - DSP_WDTOVERFLOW | \ - DSP_PWRERROR)))) +#define VALID_PROC_EVENT (DSP_PROCESSORSTATECHANGE | DSP_PROCESSORATTACH | \ + DSP_PROCESSORDETACH | DSP_PROCESSORRESTART | DSP_NODESTATECHANGE | \ + DSP_STREAMDONE | DSP_STREAMIOCOMPLETION | DSP_MMUFAULT | \ + DSP_SYSERROR | DSP_WDTOVERFLOW | DSP_PWRERROR) + +static inline bool is_valid_proc_event(u32 x) +{ + return (x == 0 || (x & VALID_PROC_EVENT && !(x & ~VALID_PROC_EVENT))); +} #define IS_VALID_NODE_EVENT(x) (((x) == 0) || \ (((x) & (DSP_NODESTATECHANGE | DSP_NODEMESSAGEREADY)) && \ diff --git a/drivers/staging/tidspbridge/rmgr/nldr.c b/drivers/staging/tidspbridge/rmgr/nldr.c index 6cf0be9..33d2872 100644 --- a/drivers/staging/tidspbridge/rmgr/nldr.c +++ b/drivers/staging/tidspbridge/rmgr/nldr.c @@ -135,13 +135,11 @@ #define PDELETE "delete" #define PEXECUTE "execute" -#define IS_EQUAL_UUID(uuid1, uuid2) (\ - ((uuid1).ul_data1 == (uuid2).ul_data1) && \ - ((uuid1).us_data2 == (uuid2).us_data2) && \ - ((uuid1).us_data3 == (uuid2).us_data3) && \ - ((uuid1).uc_data4 == (uuid2).uc_data4) && \ - ((uuid1).uc_data5 == (uuid2).uc_data5) && \ - (strncmp((void *)(uuid1).uc_data6, (void *)(uuid2).uc_data6, 6)) == 0) +static inline bool is_equal_uuid(struct dsp_uuid *uuid1, + struct dsp_uuid *uuid2) +{ + return !memcmp(uuid1, uuid2, sizeof(struct dsp_uuid)); +} /* * ======== mem_seg_info ======== @@ -1487,8 +1485,8 @@ static int load_ovly(struct nldr_nodeobject *nldr_node_obj, /* Find the node in the table */ for (i = 0; i < nldr_obj->ovly_nodes; i++) { - if (IS_EQUAL_UUID - (nldr_node_obj->uuid, nldr_obj->ovly_table[i].uuid)) { + if (is_equal_uuid + (&nldr_node_obj->uuid, &nldr_obj->ovly_table[i].uuid)) { /* Found it */ po_node = &(nldr_obj->ovly_table[i]); break; @@ -1825,8 +1823,8 @@ static void unload_ovly(struct nldr_nodeobject *nldr_node_obj, /* Find the node in the table */ for (i = 0; i < nldr_obj->ovly_nodes; i++) { - if (IS_EQUAL_UUID - (nldr_node_obj->uuid, nldr_obj->ovly_table[i].uuid)) { + if (is_equal_uuid + (&nldr_node_obj->uuid, &nldr_obj->ovly_table[i].uuid)) { /* Found it */ po_node = &(nldr_obj->ovly_table[i]); break; diff --git a/drivers/staging/tidspbridge/rmgr/proc.c b/drivers/staging/tidspbridge/rmgr/proc.c index 4d3db7e..5f189dc 100644 --- a/drivers/staging/tidspbridge/rmgr/proc.c +++ b/drivers/staging/tidspbridge/rmgr/proc.c @@ -1879,7 +1879,7 @@ int proc_notify_clients(void *proc, u32 events) struct proc_object *p_proc_object = (struct proc_object *)proc; DBC_REQUIRE(p_proc_object); - DBC_REQUIRE(IS_VALID_PROC_EVENT(events)); + DBC_REQUIRE(is_valid_proc_event(events)); DBC_REQUIRE(refs > 0); if (!p_proc_object) { status = -EFAULT; @@ -1902,7 +1902,7 @@ int proc_notify_all_clients(void *proc, u32 events) int status = 0; struct proc_object *p_proc_object = (struct proc_object *)proc; - DBC_REQUIRE(IS_VALID_PROC_EVENT(events)); + DBC_REQUIRE(is_valid_proc_event(events)); DBC_REQUIRE(refs > 0); if (!p_proc_object) { -- 1.6.3.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel