master/datagram.c
changeset 708 90bdb315f560
parent 514 3e5989834735
child 713 ae41cadd25b6
--- a/master/datagram.c	Thu Sep 06 09:23:56 2007 +0000
+++ b/master/datagram.c	Thu Sep 06 09:28:38 2007 +0000
@@ -71,7 +71,7 @@
 {
     INIT_LIST_HEAD(&datagram->queue); // mark as unqueued
     datagram->type = EC_DATAGRAM_NONE;
-    datagram->address.logical = 0x00000000;
+    memset(datagram->address, 0x00, EC_ADDR_LEN);
     datagram->data = NULL;
     datagram->mem_size = 0;
     datagram->data_size = 0;
@@ -147,8 +147,8 @@
 
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_NPRD;
-    datagram->address.physical.slave = node_address;
-    datagram->address.physical.mem = offset;
+    EC_WRITE_U16(datagram->address, node_address);
+    EC_WRITE_U16(datagram->address + 2, offset);
     EC_FUNC_FOOTER;
 }
 
@@ -175,8 +175,8 @@
 
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_NPWR;
-    datagram->address.physical.slave = node_address;
-    datagram->address.physical.mem = offset;
+    EC_WRITE_U16(datagram->address, node_address);
+    EC_WRITE_U16(datagram->address + 2, offset);
     EC_FUNC_FOOTER;
 }
 
@@ -200,8 +200,8 @@
 {
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_APRD;
-    datagram->address.physical.slave = (int16_t) ring_position * (-1);
-    datagram->address.physical.mem = offset;
+    EC_WRITE_S16(datagram->address, (int16_t) ring_position * (-1));
+    EC_WRITE_U16(datagram->address + 2, offset);
     EC_FUNC_FOOTER;
 }
 
@@ -225,8 +225,8 @@
 {
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_APWR;
-    datagram->address.physical.slave = (int16_t) ring_position * (-1);
-    datagram->address.physical.mem = offset;
+    EC_WRITE_S16(datagram->address, (int16_t) ring_position * (-1));
+    EC_WRITE_U16(datagram->address + 2, offset);
     EC_FUNC_FOOTER;
 }
 
@@ -248,8 +248,8 @@
 {
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_BRD;
-    datagram->address.physical.slave = 0x0000;
-    datagram->address.physical.mem = offset;
+    EC_WRITE_U16(datagram->address, 0x0000);
+    EC_WRITE_U16(datagram->address + 2, offset);
     EC_FUNC_FOOTER;
 }
 
@@ -271,8 +271,8 @@
 {
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_BWR;
-    datagram->address.physical.slave = 0x0000;
-    datagram->address.physical.mem = offset;
+    EC_WRITE_U16(datagram->address, 0x0000);
+    EC_WRITE_U16(datagram->address + 2, offset);
     EC_FUNC_FOOTER;
 }
 
@@ -294,8 +294,8 @@
 {
     EC_FUNC_HEADER;
     datagram->type = EC_DATAGRAM_LRW;
-    datagram->address.logical = offset;
-    EC_FUNC_FOOTER;
-}
-
-/*****************************************************************************/
+    EC_WRITE_U32(datagram->address, offset);
+    EC_FUNC_FOOTER;
+}
+
+/*****************************************************************************/