hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/include/packed_section_start.h
....@@ -1,4 +1,3 @@
1
-/* SPDX-License-Identifier: GPL-2.0 */
21 /*
32 * Declare directives for structure packing. No padding will be provided
43 * between the members of packed structures, and therefore, there is no
....@@ -16,14 +15,16 @@
1615 * #include <packed_section_end.h>
1716 *
1817 *
19
- * Copyright (C) 1999-2019, Broadcom Corporation
20
- *
18
+ * Portions of this code are copyright (c) 2022 Cypress Semiconductor Corporation
19
+ *
20
+ * Copyright (C) 1999-2017, Broadcom Corporation
21
+ *
2122 * Unless you and Broadcom execute a separate written software license
2223 * agreement governing use of this software, this software is licensed to you
2324 * under the terms of the GNU General Public License version 2 (the "GPL"),
2425 * available at http://www.broadcom.com/licenses/GPLv2.php, with the
2526 * following added to such license:
26
- *
27
+ *
2728 * As a special exception, the copyright holders of this software give you
2829 * permission to link this software with independent modules, and to copy and
2930 * distribute the resulting executable under terms of your choice, provided that
....@@ -31,7 +32,7 @@
3132 * the license of that module. An independent module is a module which is not
3233 * derived from this software. The special exception does not apply to any
3334 * modifications of the software.
34
- *
35
+ *
3536 * Notwithstanding the above, under no circumstances may you combine this
3637 * software in any way with any other Broadcom software provided under a license
3738 * other than the GPL, without Broadcom's express prior written consent.
....@@ -39,9 +40,44 @@
3940 *
4041 * <<Broadcom-WL-IPTag/Open:>>
4142 *
42
- * $Id: packed_section_start.h 514727 2014-11-12 03:02:48Z $
43
+ * $Id: packed_section_start.h 666738 2016-10-24 12:16:37Z $
4344 */
4445
46
+#ifndef _alignment_test_
47
+#define _alignment_test_
48
+
49
+/* ASSERT default packing */
50
+typedef struct T4 {
51
+ uint8 a;
52
+ uint32 b;
53
+ uint16 c;
54
+ uint8 d;
55
+} T4_t;
56
+
57
+/* 4 byte alignment support */
58
+/*
59
+* a . . .
60
+* b b b b
61
+* c c d .
62
+*/
63
+
64
+/*
65
+ * Below function is meant to verify that this file is compiled with the default alignment of 4.
66
+ * Function will fail to compile if the condition is not met.
67
+ */
68
+#ifdef __GNUC__
69
+#define VARIABLE_IS_NOT_USED __attribute__ ((unused))
70
+#else
71
+#define VARIABLE_IS_NOT_USED
72
+#endif // endif
73
+static void alignment_test(void);
74
+static void
75
+VARIABLE_IS_NOT_USED alignment_test(void)
76
+{
77
+ /* verify 4 byte alignment support */
78
+ STATIC_ASSERT(sizeof(T4_t) == 12);
79
+}
80
+#endif /* _alignment_test_ */
4581
4682 /* Error check - BWL_PACKED_SECTION is defined in packed_section_start.h
4783 * and undefined in packed_section_end.h. If it is already defined at this
....@@ -51,10 +87,12 @@
5187 #error "BWL_PACKED_SECTION is already defined!"
5288 #else
5389 #define BWL_PACKED_SECTION
54
-#endif
90
+#endif // endif
5591
56
-
57
-
92
+#if defined(BWL_DEFAULT_PACKING)
93
+ /* generate an error if BWL_DEFAULT_PACKING is defined */
94
+ #error "BWL_DEFAULT_PACKING not supported any more."
95
+#endif /* BWL_PACKED_SECTION */
5896
5997 /* Declare compiler-specific directives for structure packing. */
6098 #if defined(__GNUC__) || defined(__lint)
....@@ -65,4 +103,4 @@
65103 #define BWL_POST_PACKED_STRUCT
66104 #else
67105 #error "Unknown compiler!"
68
-#endif
106
+#endif // endif