summaryrefslogtreecommitdiff
path: root/include/tsec.h
diff options
context:
space:
mode:
authorClaudiu Manoil <claudiu.manoil@freescale.com>2013-10-04 19:13:53 +0300
committerJoe Hershberger <joe.hershberger@ni.com>2013-11-22 17:03:16 -0600
commit9c9141fd04f0991209dab9fe2716ce19b2a4f552 (patch)
tree04599fb0a6d254876d522c0620c2556f31fdb85a /include/tsec.h
parent18b338fb3486ac91291e1f94561cb47fd0f4aef2 (diff)
net: tsec: Use portable types and accessors for BDs
Currently, the buffer descriptor (BD) fields cannot be correctly accessed by a little endian processor. This patch fixes the issue by making the access of BDs to be portable among different cpu architectures. Use portable data types for the Rx/Tx buffer descriptor fields. Use portable I/O accessors to insure that the big endian BDs are correctly accessed by little endian cpus too, and to insure proper sync with the H/W. Removed the redundant RTXBD "volatile" type, as proper synchronization around BD data accesses is provided by the I/O accessors now. The "sparse" tool was also used to verify the correctness of these changes. Cc: Scott Wood <scottwood@freescale.com> Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>
Diffstat (limited to 'include/tsec.h')
-rw-r--r--include/tsec.h22
1 files changed, 10 insertions, 12 deletions
diff --git a/include/tsec.h b/include/tsec.h
index 6bc43ef65f..95054be5fb 100644
--- a/include/tsec.h
+++ b/include/tsec.h
@@ -198,19 +198,17 @@
#define RXBD_TRUNCATED 0x0001
#define RXBD_STATS 0x003f
-typedef struct txbd8
-{
- ushort status; /* Status Fields */
- ushort length; /* Buffer length */
- uint bufptr; /* Buffer Pointer */
-} txbd8_t;
+struct txbd8 {
+ uint16_t status; /* Status Fields */
+ uint16_t length; /* Buffer length */
+ uint32_t bufptr; /* Buffer Pointer */
+};
-typedef struct rxbd8
-{
- ushort status; /* Status Fields */
- ushort length; /* Buffer Length */
- uint bufptr; /* Buffer Pointer */
-} rxbd8_t;
+struct rxbd8 {
+ uint16_t status; /* Status Fields */
+ uint16_t length; /* Buffer Length */
+ uint32_t bufptr; /* Buffer Pointer */
+};
typedef struct rmon_mib
{