mirror of
https://github.com/DrHo1y/orangepi-build.git
synced 2026-03-28 03:26:43 +07:00
62 lines
1.9 KiB
C
62 lines
1.9 KiB
C
/*
|
|
* 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 <packed_section_start.h>
|
|
*
|
|
* typedef BWL_PRE_PACKED_STRUCT struct foobar_t {
|
|
* some_struct_members;
|
|
* } BWL_POST_PACKED_STRUCT foobar_t;
|
|
*
|
|
* #include <packed_section_end.h>
|
|
*
|
|
*
|
|
* $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
|