From d1ea84b4474ee21e6efc1f9d16e7b54d25f697e4 Mon Sep 17 00:00:00 2001 From: Martin Koegler Date: Tue, 18 Sep 2007 08:28:10 +0200 Subject: [PATCH] Introduce EIBC_RETURN_PTR* Signed-off-by: Martin Koegler --- eibd/client/eibclient-int.h | 24 ++++++++++++++++++++++++ eibd/client/getapdusrc.c | 3 +-- eibd/client/getgroupsrc.c | 6 ++---- eibd/client/groupcacheread.c | 3 +-- eibd/client/groupcachereadsync.c | 3 +-- eibd/client/mcpropertydesc.c | 12 +++--------- eibd/client/mcreadadc.c | 3 +-- 7 files changed, 33 insertions(+), 21 deletions(-) diff --git a/eibd/client/eibclient-int.h b/eibd/client/eibclient-int.h index 1ae21b4..de1a515 100644 --- a/eibd/client/eibclient-int.h +++ b/eibd/client/eibclient-int.h @@ -106,4 +106,28 @@ int _EIB_GetRequest (EIBConnection * con); #define EIBC_RETURN_OK \ return 0; +#define EIBC_RETURN_PTR1(offset) \ + if (con->req.ptr1) \ + *con->req.ptr1 = (con->buf[offset] << 8) | (con->buf[offset+1]); + +#define EIBC_RETURN_PTR2(offset) \ + if (con->req.ptr2) \ + *con->req.ptr2 = con->buf[offset]; + +#define EIBC_RETURN_PTR3(offset) \ + if (con->req.ptr3) \ + *con->req.ptr3 = con->buf[offset]; + +#define EIBC_RETURN_PTR4(offset) \ + if (con->req.ptr4) \ + *con->req.ptr4 = (con->buf[offset] << 8) | (con->buf[offset+1]); + +#define EIBC_RETURN_PTR5(offset) \ + if (con->req.ptr5) \ + *con->req.ptr5 = (con->buf[offset] << 8) | (con->buf[offset+1]); + +#define EIBC_RETURN_PTR6(offset) \ + if (con->req.ptr6) \ + *con->req.ptr6 = (con->buf[offset] << 8) | (con->buf[offset+1]); + #endif diff --git a/eibd/client/getapdusrc.c b/eibd/client/getapdusrc.c index 5413c59..f253fc6 100644 --- a/eibd/client/getapdusrc.c +++ b/eibd/client/getapdusrc.c @@ -33,8 +33,7 @@ EIBGetAPDU_Src_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_APDU_PACKET, 4) - if (con->req.ptr5) - *con->req.ptr5 = (con->buf[2] << 8) | (con->buf[3]); + EIBC_RETURN_PTR5 (2) EIBC_RETURN_BUF (4) } diff --git a/eibd/client/getgroupsrc.c b/eibd/client/getgroupsrc.c index a87ccc5..4fdbcad 100644 --- a/eibd/client/getgroupsrc.c +++ b/eibd/client/getgroupsrc.c @@ -33,10 +33,8 @@ EIBGetGroup_Src_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_GROUP_PACKET, 6) - if (con->req.ptr5) - *con->req.ptr5 = (con->buf[2] << 8) | (con->buf[3]); - if (con->req.ptr6) - *con->req.ptr6 = (con->buf[4] << 8) | (con->buf[5]); + EIBC_RETURN_PTR5 (2) + EIBC_RETURN_PTR6 (4) EIBC_RETURN_BUF (6) } diff --git a/eibd/client/groupcacheread.c b/eibd/client/groupcacheread.c index ccb9064..bad85d2 100644 --- a/eibd/client/groupcacheread.c +++ b/eibd/client/groupcacheread.c @@ -43,8 +43,7 @@ EIB_Cache_Read_complete (EIBConnection * con) errno = ENOENT; return -1; } - if (con->req.ptr5) - *con->req.ptr5 = (con->buf[2] << 8) | con->buf[3]; + EIBC_RETURN_PTR5 (2) EIBC_RETURN_BUF (6) } diff --git a/eibd/client/groupcachereadsync.c b/eibd/client/groupcachereadsync.c index 85260e4..182fc8f 100644 --- a/eibd/client/groupcachereadsync.c +++ b/eibd/client/groupcachereadsync.c @@ -43,8 +43,7 @@ EIB_Cache_Read_Sync_complete (EIBConnection * con) errno = ENOENT; return -1; } - if (con->req.ptr5) - *con->req.ptr5 = (con->buf[2] << 8) | con->buf[3]; + EIBC_RETURN_PTR5 (2) EIBC_RETURN_BUF (6) } diff --git a/eibd/client/mcpropertydesc.c b/eibd/client/mcpropertydesc.c index 8ee8c24..fc7e63e 100644 --- a/eibd/client/mcpropertydesc.c +++ b/eibd/client/mcpropertydesc.c @@ -33,15 +33,9 @@ MC_PropertyDesc_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_MC_PROP_DESC, 6) - /* Type */ - if (con->req.ptr2) - *con->req.ptr2 = con->buf[2]; - /* max_nr_of_elem */ - if (con->req.ptr4) - *con->req.ptr4 = (con->buf[3] << 8) | (con->buf[4]); - /* access */ - if (con->req.ptr3) - *con->req.ptr3 = con->buf[5]; + EIBC_RETURN_PTR2 (2) + EIBC_RETURN_PTR4 (3) + EIBC_RETURN_PTR3 (5) EIBC_RETURN_OK } diff --git a/eibd/client/mcreadadc.c b/eibd/client/mcreadadc.c index 06eee0e..fc0884c 100644 --- a/eibd/client/mcreadadc.c +++ b/eibd/client/mcreadadc.c @@ -33,8 +33,7 @@ MC_ReadADC_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_MC_ADC_READ, 4) - if (con->req.ptr1) - *con->req.ptr1 = (con->buf[2] << 8) | (con->buf[3]); + EIBC_RETURN_PTR1 (2) EIBC_RETURN_OK } -- 2.11.4.GIT