From 8b62a0d256b8f25a90b5866259953935b007360d Mon Sep 17 00:00:00 2001 From: Martin Koegler Date: Tue, 18 Sep 2007 07:48:29 +0200 Subject: [PATCH] Introduce EIBC_RETURN_BUF Signed-off-by: Martin Koegler --- eibd/client/eibclient-int.h | 7 +++++++ eibd/client/getapdu.c | 6 +----- eibd/client/getapdusrc.c | 6 +----- eibd/client/getbusmonitorpacket.c | 6 +----- eibd/client/getgroupsrc.c | 6 +----- eibd/client/groupcacheread.c | 6 +----- eibd/client/groupcachereadsync.c | 6 +----- eibd/client/mcpropertyread.c | 6 +----- eibd/client/mcpropertyscan.c | 6 +----- eibd/client/mcpropertywrite.c | 6 +----- eibd/client/mcread.c | 6 +----- eibd/client/mreadindividualaddresses.c | 6 +----- 12 files changed, 18 insertions(+), 55 deletions(-) diff --git a/eibd/client/eibclient-int.h b/eibd/client/eibclient-int.h index ba0ff2a..d3f5e65 100644 --- a/eibd/client/eibclient-int.h +++ b/eibd/client/eibclient-int.h @@ -96,5 +96,12 @@ int _EIB_GetRequest (EIBConnection * con); return -1; \ } +#define EIBC_RETURN_BUF(offset) \ + i = con->size - offset; \ + if (i > con->req.len) \ + i = con->req.len; \ + memcpy (con->req.buf, con->buf + offset, i); \ + return i; + #endif diff --git a/eibd/client/getapdu.c b/eibd/client/getapdu.c index 924a118..7b84166 100644 --- a/eibd/client/getapdu.c +++ b/eibd/client/getapdu.c @@ -33,11 +33,7 @@ EIBGetAPDU_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_APDU_PACKET, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int diff --git a/eibd/client/getapdusrc.c b/eibd/client/getapdusrc.c index 93c057f..5413c59 100644 --- a/eibd/client/getapdusrc.c +++ b/eibd/client/getapdusrc.c @@ -33,13 +33,9 @@ EIBGetAPDU_Src_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_APDU_PACKET, 4) - i = con->size - 4; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 4, i); if (con->req.ptr5) *con->req.ptr5 = (con->buf[2] << 8) | (con->buf[3]); - return i; + EIBC_RETURN_BUF (4) } int diff --git a/eibd/client/getbusmonitorpacket.c b/eibd/client/getbusmonitorpacket.c index c3cc723..0fecf32 100644 --- a/eibd/client/getbusmonitorpacket.c +++ b/eibd/client/getbusmonitorpacket.c @@ -33,11 +33,7 @@ EIBGetBusmonitorPacket_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_BUSMONITOR_PACKET, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int diff --git a/eibd/client/getgroupsrc.c b/eibd/client/getgroupsrc.c index 39744ab..a87ccc5 100644 --- a/eibd/client/getgroupsrc.c +++ b/eibd/client/getgroupsrc.c @@ -33,15 +33,11 @@ EIBGetGroup_Src_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_GROUP_PACKET, 6) - i = con->size - 6; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 6, i); 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]); - return i; + EIBC_RETURN_BUF (6) } int diff --git a/eibd/client/groupcacheread.c b/eibd/client/groupcacheread.c index df02e2b..b50e1b9 100644 --- a/eibd/client/groupcacheread.c +++ b/eibd/client/groupcacheread.c @@ -46,11 +46,7 @@ EIB_Cache_Read_complete (EIBConnection * con) } if (con->req.ptr5) *con->req.ptr5 = (con->buf[2] << 8) | con->buf[3]; - j = con->size - 6; - if (j > con->req.len) - j = con->req.len; - memcpy (con->req.buf, con->buf + 6, j); - return j; + EIBC_RETURN_BUF (6) } int diff --git a/eibd/client/groupcachereadsync.c b/eibd/client/groupcachereadsync.c index 6c1dd9d..04168a8 100644 --- a/eibd/client/groupcachereadsync.c +++ b/eibd/client/groupcachereadsync.c @@ -46,11 +46,7 @@ EIB_Cache_Read_Sync_complete (EIBConnection * con) } if (con->req.ptr5) *con->req.ptr5 = (con->buf[2] << 8) | con->buf[3]; - j = con->size - 6; - if (j > con->req.len) - j = con->req.len; - memcpy (con->req.buf, con->buf + 6, j); - return j; + EIBC_RETURN_BUF (6) } int diff --git a/eibd/client/mcpropertyread.c b/eibd/client/mcpropertyread.c index 4472aa1..9fd9efa 100644 --- a/eibd/client/mcpropertyread.c +++ b/eibd/client/mcpropertyread.c @@ -33,11 +33,7 @@ MC_PropertyRead_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_MC_PROP_READ, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int diff --git a/eibd/client/mcpropertyscan.c b/eibd/client/mcpropertyscan.c index 73ff56a..c3e1289 100644 --- a/eibd/client/mcpropertyscan.c +++ b/eibd/client/mcpropertyscan.c @@ -33,11 +33,7 @@ MC_PropertyScan_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_MC_PROP_SCAN, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int diff --git a/eibd/client/mcpropertywrite.c b/eibd/client/mcpropertywrite.c index 570e1f8..11710ae 100644 --- a/eibd/client/mcpropertywrite.c +++ b/eibd/client/mcpropertywrite.c @@ -33,11 +33,7 @@ MC_PropertyWrite_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_MC_PROP_WRITE, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int diff --git a/eibd/client/mcread.c b/eibd/client/mcread.c index 5161fc3..69f70af 100644 --- a/eibd/client/mcread.c +++ b/eibd/client/mcread.c @@ -33,11 +33,7 @@ MC_Read_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_MC_READ, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int diff --git a/eibd/client/mreadindividualaddresses.c b/eibd/client/mreadindividualaddresses.c index 5db3bcf..aa451ba 100644 --- a/eibd/client/mreadindividualaddresses.c +++ b/eibd/client/mreadindividualaddresses.c @@ -33,11 +33,7 @@ M_ReadIndividualAddresses_complete (EIBConnection * con) { EIBC_GETREQUEST EIBC_CHECKRESULT (EIB_M_INDIVIDUAL_ADDRESS_READ, 2) - i = con->size - 2; - if (i > con->req.len) - i = con->req.len; - memcpy (con->req.buf, con->buf + 2, i); - return i; + EIBC_RETURN_BUF (2) } int -- 2.11.4.GIT