]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netat/ddp.h
xnu-792.13.8.tar.gz
[apple/xnu.git] / bsd / netat / ddp.h
index 29103091d6dc106ca11a050f3c7c12727061a2f8..d50c608d9cf77a0541bcce0176d9091835a18667 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2006 Apple Computer, Inc. All Rights Reserved.
- * 
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
  * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
  * 
  * This file contains Original Code and/or Modifications of Original Code 
 /* DDP extended header packet format */
 
 typedef struct {
-        unsigned   unused:2,
-                  hopcount:4,
-                  length:10;           /* Datagram length */
+#if BYTE_ORDER == BIG_ENDIAN
+               unsigned        unused:2,
+                           hopcount:4,         /* hop count/len high order  */
+                               length_H:2;     
+#endif
+#if BYTE_ORDER == LITTLE_ENDIAN
+               unsigned        length_H:2,
+                                       hopcount:4,
+                                       unused:2;
+#endif
+        u_char    length_L;                    /* len low order */
         ua_short   checksum;           /* Checksum */
         at_net     dst_net;            /* Destination network number */
         at_net     src_net;            /* Source network number */
@@ -80,12 +88,17 @@ typedef struct {
         at_node    src_node;           /* Source node ID */
         at_socket  dst_socket;                 /* Destination socket number */
         at_socket  src_socket;                 /* Source socket number */
-        u_char    type;                /* Protocol type */
+        u_char    type;                        /* Protocol type */
         char       data[DDP_DATA_SIZE];
 } at_ddp_t;
 
-#define        DDPLEN_ASSIGN(ddp, len)         ddp->length = len
-#define        DDPLEN_VALUE(ddp)               ddp->length
+
+#define        DDPLEN_ASSIGN(ddp, len)         \
+               ddp->length_H = 0x03 & (len >> 8); \
+               ddp->length_L = len & 0xff;
+               
+#define        DDPLEN_VALUE(ddp)                       \
+               (((u_short)ddp->length_H) << 8) + ddp->length_L
 
 /* DDP module statistics and configuration */