/* * Declare directives for structure packing. No padding will be provided * between the members of packed structures, and therefore, there is no * guarantee that structure members will be aligned. * * Declaring packed structures is compiler specific. In order to handle all * cases, packed structures should be delared as: * * #include * * typedef BWL_PRE_PACKED_STRUCT struct foobar_t { * some_struct_members; * } BWL_POST_PACKED_STRUCT foobar_t; * * #include * * * $Copyright Open Broadcom Corporation$ * $Id: packed_section_end.h 397846 2013-04-21 22:11:16Z ishen $ */ /* Error check - BWL_PACKED_SECTION is defined in packed_section_start.h * and undefined in packed_section_end.h. If it is NOT defined at this * point, then there is a missing include of packed_section_start.h. */ #ifdef BWL_PACKED_SECTION #undef BWL_PACKED_SECTION #else #error "BWL_PACKED_SECTION is NOT defined!" #endif #if defined(_MSC_VER) /* Disable compiler warning about pragma pack changing alignment. */ #pragma warning(disable:4103) /* The Microsoft compiler uses pragmas for structure packing. Other * compilers use structure attribute modifiers. Refer to * BWL_PRE_PACKED_STRUCT and BWL_POST_PACKED_STRUCT defined in * typedefs.h */ #if defined(BWL_DEFAULT_PACKING) /* require default structure packing */ #pragma pack(pop) #undef BWL_DEFAULT_PACKING #else /* BWL_PACKED_SECTION */ #pragma pack() #endif /* BWL_PACKED_SECTION */ #endif /* _MSC_VER */ #if defined(__GNUC__) && defined(EFI) #pragma pack(pop) #endif /* Compiler-specific directives for structure packing are declared in * packed_section_start.h. This marks the end of the structure packing section, * so, undef them here. */ #undef BWL_PRE_PACKED_STRUCT #undef BWL_POST_PACKED_STRUCT