Skip to content

Commit

Permalink
sbp2: use __attribute__((packed)) for on-the-wire structures
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ben Collins committed Jun 12, 2006
1 parent bccbccd commit 05db505
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions drivers/ieee1394/sbp2.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ struct sbp2_command_orb {
u32 data_descriptor_lo;
u32 misc;
u8 cdb[12];
};
} __attribute__((packed));

#define SBP2_LOGIN_REQUEST 0x0
#define SBP2_QUERY_LOGINS_REQUEST 0x1
Expand Down Expand Up @@ -80,7 +80,7 @@ struct sbp2_login_orb {
u32 passwd_resp_lengths;
u32 status_fifo_hi;
u32 status_fifo_lo;
};
} __attribute__((packed));

#define RESPONSE_GET_LOGIN_ID(value) (value & 0xffff)
#define RESPONSE_GET_LENGTH(value) ((value >> 16) & 0xffff)
Expand All @@ -91,7 +91,7 @@ struct sbp2_login_response {
u32 command_block_agent_hi;
u32 command_block_agent_lo;
u32 reconnect_hold;
};
} __attribute__((packed));

#define ORB_SET_LOGIN_ID(value) (value & 0xffff)

Expand All @@ -106,7 +106,7 @@ struct sbp2_query_logins_orb {
u32 reserved_resp_length;
u32 status_fifo_hi;
u32 status_fifo_lo;
};
} __attribute__((packed));

#define RESPONSE_GET_MAX_LOGINS(value) (value & 0xffff)
#define RESPONSE_GET_ACTIVE_LOGINS(value) ((RESPONSE_GET_LENGTH(value) - 4) / 12)
Expand All @@ -116,7 +116,7 @@ struct sbp2_query_logins_response {
u32 misc_IDs;
u32 initiator_misc_hi;
u32 initiator_misc_lo;
};
} __attribute__((packed));

struct sbp2_reconnect_orb {
u32 reserved1;
Expand All @@ -127,7 +127,7 @@ struct sbp2_reconnect_orb {
u32 reserved5;
u32 status_fifo_hi;
u32 status_fifo_lo;
};
} __attribute__((packed));

struct sbp2_logout_orb {
u32 reserved1;
Expand All @@ -138,15 +138,15 @@ struct sbp2_logout_orb {
u32 reserved5;
u32 status_fifo_hi;
u32 status_fifo_lo;
};
} __attribute__((packed));

#define PAGE_TABLE_SET_SEGMENT_BASE_HI(value) (value & 0xffff)
#define PAGE_TABLE_SET_SEGMENT_LENGTH(value) ((value & 0xffff) << 16)

struct sbp2_unrestricted_page_table {
u32 length_segment_base_hi;
u32 segment_base_lo;
};
} __attribute__((packed));

#define RESP_STATUS_REQUEST_COMPLETE 0x0
#define RESP_STATUS_TRANSPORT_FAILURE 0x1
Expand Down Expand Up @@ -191,7 +191,7 @@ struct sbp2_status_block {
u32 ORB_offset_hi_misc;
u32 ORB_offset_lo;
u8 command_set_dependent[24];
};
} __attribute__((packed));

/*
* Miscellaneous SBP2 related config rom defines
Expand Down

0 comments on commit 05db505

Please sign in to comment.