aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394
diff options
context:
space:
mode:
authorBen Collins <bcollins@ubuntu.com>2006-06-12 18:14:47 -0400
committerBen Collins <bcollins@ubuntu.com>2006-06-12 18:14:47 -0400
commit05db5055b1844bf39d1429a0c43078959198cd1d (patch)
treec0848d2d8fa638987479b4146a90976e27f1964c /drivers/ieee1394
parentbccbccdbf8f866a8e01967a48241db548e12adf2 (diff)
sbp2: use __attribute__((packed)) for on-the-wire structures
It seems to have worked without the attribute during all the years just because sizes of all struct members are multiples of 32 bits. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r--drivers/ieee1394/sbp2.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/ieee1394/sbp2.h b/drivers/ieee1394/sbp2.h
index 2f53b16afc51..b22ce1aa8fe4 100644
--- a/drivers/ieee1394/sbp2.h
+++ b/drivers/ieee1394/sbp2.h
@@ -52,7 +52,7 @@ struct sbp2_command_orb {
52 u32 data_descriptor_lo; 52 u32 data_descriptor_lo;
53 u32 misc; 53 u32 misc;
54 u8 cdb[12]; 54 u8 cdb[12];
55}; 55} __attribute__((packed));
56 56
57#define SBP2_LOGIN_REQUEST 0x0 57#define SBP2_LOGIN_REQUEST 0x0
58#define SBP2_QUERY_LOGINS_REQUEST 0x1 58#define SBP2_QUERY_LOGINS_REQUEST 0x1
@@ -80,7 +80,7 @@ struct sbp2_login_orb {
80 u32 passwd_resp_lengths; 80 u32 passwd_resp_lengths;
81 u32 status_fifo_hi; 81 u32 status_fifo_hi;
82 u32 status_fifo_lo; 82 u32 status_fifo_lo;
83}; 83} __attribute__((packed));
84 84
85#define RESPONSE_GET_LOGIN_ID(value) (value & 0xffff) 85#define RESPONSE_GET_LOGIN_ID(value) (value & 0xffff)
86#define RESPONSE_GET_LENGTH(value) ((value >> 16) & 0xffff) 86#define RESPONSE_GET_LENGTH(value) ((value >> 16) & 0xffff)
@@ -91,7 +91,7 @@ struct sbp2_login_response {
91 u32 command_block_agent_hi; 91 u32 command_block_agent_hi;
92 u32 command_block_agent_lo; 92 u32 command_block_agent_lo;
93 u32 reconnect_hold; 93 u32 reconnect_hold;
94}; 94} __attribute__((packed));
95 95
96#define ORB_SET_LOGIN_ID(value) (value & 0xffff) 96#define ORB_SET_LOGIN_ID(value) (value & 0xffff)
97 97
@@ -106,7 +106,7 @@ struct sbp2_query_logins_orb {
106 u32 reserved_resp_length; 106 u32 reserved_resp_length;
107 u32 status_fifo_hi; 107 u32 status_fifo_hi;
108 u32 status_fifo_lo; 108 u32 status_fifo_lo;
109}; 109} __attribute__((packed));
110 110
111#define RESPONSE_GET_MAX_LOGINS(value) (value & 0xffff) 111#define RESPONSE_GET_MAX_LOGINS(value) (value & 0xffff)
112#define RESPONSE_GET_ACTIVE_LOGINS(value) ((RESPONSE_GET_LENGTH(value) - 4) / 12) 112#define RESPONSE_GET_ACTIVE_LOGINS(value) ((RESPONSE_GET_LENGTH(value) - 4) / 12)
@@ -116,7 +116,7 @@ struct sbp2_query_logins_response {
116 u32 misc_IDs; 116 u32 misc_IDs;
117 u32 initiator_misc_hi; 117 u32 initiator_misc_hi;
118 u32 initiator_misc_lo; 118 u32 initiator_misc_lo;
119}; 119} __attribute__((packed));
120 120
121struct sbp2_reconnect_orb { 121struct sbp2_reconnect_orb {
122 u32 reserved1; 122 u32 reserved1;
@@ -127,7 +127,7 @@ struct sbp2_reconnect_orb {
127 u32 reserved5; 127 u32 reserved5;
128 u32 status_fifo_hi; 128 u32 status_fifo_hi;
129 u32 status_fifo_lo; 129 u32 status_fifo_lo;
130}; 130} __attribute__((packed));
131 131
132struct sbp2_logout_orb { 132struct sbp2_logout_orb {
133 u32 reserved1; 133 u32 reserved1;
@@ -138,7 +138,7 @@ struct sbp2_logout_orb {
138 u32 reserved5; 138 u32 reserved5;
139 u32 status_fifo_hi; 139 u32 status_fifo_hi;
140 u32 status_fifo_lo; 140 u32 status_fifo_lo;
141}; 141} __attribute__((packed));
142 142
143#define PAGE_TABLE_SET_SEGMENT_BASE_HI(value) (value & 0xffff) 143#define PAGE_TABLE_SET_SEGMENT_BASE_HI(value) (value & 0xffff)
144#define PAGE_TABLE_SET_SEGMENT_LENGTH(value) ((value & 0xffff) << 16) 144#define PAGE_TABLE_SET_SEGMENT_LENGTH(value) ((value & 0xffff) << 16)
@@ -146,7 +146,7 @@ struct sbp2_logout_orb {
146struct sbp2_unrestricted_page_table { 146struct sbp2_unrestricted_page_table {
147 u32 length_segment_base_hi; 147 u32 length_segment_base_hi;
148 u32 segment_base_lo; 148 u32 segment_base_lo;
149}; 149} __attribute__((packed));
150 150
151#define RESP_STATUS_REQUEST_COMPLETE 0x0 151#define RESP_STATUS_REQUEST_COMPLETE 0x0
152#define RESP_STATUS_TRANSPORT_FAILURE 0x1 152#define RESP_STATUS_TRANSPORT_FAILURE 0x1
@@ -191,7 +191,7 @@ struct sbp2_status_block {
191 u32 ORB_offset_hi_misc; 191 u32 ORB_offset_hi_misc;
192 u32 ORB_offset_lo; 192 u32 ORB_offset_lo;
193 u8 command_set_dependent[24]; 193 u8 command_set_dependent[24];
194}; 194} __attribute__((packed));
195 195
196/* 196/*
197 * Miscellaneous SBP2 related config rom defines 197 * Miscellaneous SBP2 related config rom defines