Linux Audio

Check our new training course

Loading...
v6.13.7
  1// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
  2
  3/*
  4 * BTF-to-C dumper tests for struct packing determination.
  5 *
  6 * Copyright (c) 2019 Facebook
  7 */
  8/* ----- START-EXPECTED-OUTPUT ----- */
  9struct packed_trailing_space {
 10	int a;
 11	short b;
 12} __attribute__((packed));
 13
 14struct non_packed_trailing_space {
 15	int a;
 16	short b;
 17};
 18
 19struct packed_fields {
 20	short a;
 21	int b;
 22} __attribute__((packed));
 23
 24struct non_packed_fields {
 25	short a;
 26	int b;
 27};
 28
 29struct nested_packed {
 30	char: 4;
 31	int a: 4;
 32	long b;
 33	struct {
 34		char c;
 35		int d;
 36	} __attribute__((packed)) e;
 37} __attribute__((packed));
 38
 39union union_is_never_packed {
 40	int a: 4;
 41	char b;
 42	char c: 1;
 43};
 44
 45union union_does_not_need_packing {
 46	struct {
 47		long a;
 48		int b;
 49	} __attribute__((packed));
 50	int c;
 51};
 52
 53union jump_code_union {
 54	char code[5];
 55	struct {
 56		char jump;
 57		int offset;
 58	} __attribute__((packed));
 59};
 60
 61/* ----- START-EXPECTED-OUTPUT ----- */
 62/*
 63 *struct nested_packed_but_aligned_struct {
 64 *	int x1;
 65 *	int x2;
 66 *};
 67 *
 68 *struct outer_implicitly_packed_struct {
 69 *	char y1;
 70 *	struct nested_packed_but_aligned_struct y2;
 71 *} __attribute__((packed));
 72 *
 73 */
 74/* ------ END-EXPECTED-OUTPUT ------ */
 75
 76struct nested_packed_but_aligned_struct {
 77	int x1;
 78	int x2;
 79} __attribute__((packed));
 80
 81struct outer_implicitly_packed_struct {
 82	char y1;
 83	struct nested_packed_but_aligned_struct y2;
 84};
 85/* ----- START-EXPECTED-OUTPUT ----- */
 86/*
 87 *struct usb_ss_ep_comp_descriptor {
 88 *	char: 8;
 89 *	char bDescriptorType;
 90 *	char bMaxBurst;
 91 *	short wBytesPerInterval;
 92 *};
 93 *
 94 *struct usb_host_endpoint {
 95 *	long: 64;
 96 *	char: 8;
 97 *	struct usb_ss_ep_comp_descriptor ss_ep_comp;
 98 *	long: 0;
 99 *} __attribute__((packed));
100 *
101 */
102/* ------ END-EXPECTED-OUTPUT ------ */
103
104struct usb_ss_ep_comp_descriptor {
105	char: 8;
106	char bDescriptorType;
107	char bMaxBurst;
108	int: 0;
109	short wBytesPerInterval;
110} __attribute__((packed));
111
112struct usb_host_endpoint {
113	long: 64;
114	char: 8;
115	struct usb_ss_ep_comp_descriptor ss_ep_comp;
116	long: 0;
117};
118
119/* ----- START-EXPECTED-OUTPUT ----- */
120struct nested_packed_struct {
121	int a;
122	char b;
123} __attribute__((packed));
124
125struct outer_nonpacked_struct {
126	short a;
127	struct nested_packed_struct b;
128};
129
130struct outer_packed_struct {
131	short a;
132	struct nested_packed_struct b;
133} __attribute__((packed));
134
135/* ------ END-EXPECTED-OUTPUT ------ */
136
137int f(struct {
138	struct packed_trailing_space _1;
139	struct non_packed_trailing_space _2;
140	struct packed_fields _3;
141	struct non_packed_fields _4;
142	struct nested_packed _5;
143	union union_is_never_packed _6;
144	union union_does_not_need_packing _7;
145	union jump_code_union _8;
146	struct outer_implicitly_packed_struct _9;
147	struct usb_host_endpoint _10;
148	struct outer_nonpacked_struct _11;
149	struct outer_packed_struct _12;
150} *_)
151{
152	return 0;
153}
v6.8
  1// SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
  2
  3/*
  4 * BTF-to-C dumper tests for struct packing determination.
  5 *
  6 * Copyright (c) 2019 Facebook
  7 */
  8/* ----- START-EXPECTED-OUTPUT ----- */
  9struct packed_trailing_space {
 10	int a;
 11	short b;
 12} __attribute__((packed));
 13
 14struct non_packed_trailing_space {
 15	int a;
 16	short b;
 17};
 18
 19struct packed_fields {
 20	short a;
 21	int b;
 22} __attribute__((packed));
 23
 24struct non_packed_fields {
 25	short a;
 26	int b;
 27};
 28
 29struct nested_packed {
 30	char: 4;
 31	int a: 4;
 32	long b;
 33	struct {
 34		char c;
 35		int d;
 36	} __attribute__((packed)) e;
 37} __attribute__((packed));
 38
 39union union_is_never_packed {
 40	int a: 4;
 41	char b;
 42	char c: 1;
 43};
 44
 45union union_does_not_need_packing {
 46	struct {
 47		long a;
 48		int b;
 49	} __attribute__((packed));
 50	int c;
 51};
 52
 53union jump_code_union {
 54	char code[5];
 55	struct {
 56		char jump;
 57		int offset;
 58	} __attribute__((packed));
 59};
 60
 61/* ----- START-EXPECTED-OUTPUT ----- */
 62/*
 63 *struct nested_packed_but_aligned_struct {
 64 *	int x1;
 65 *	int x2;
 66 *};
 67 *
 68 *struct outer_implicitly_packed_struct {
 69 *	char y1;
 70 *	struct nested_packed_but_aligned_struct y2;
 71 *} __attribute__((packed));
 72 *
 73 */
 74/* ------ END-EXPECTED-OUTPUT ------ */
 75
 76struct nested_packed_but_aligned_struct {
 77	int x1;
 78	int x2;
 79} __attribute__((packed));
 80
 81struct outer_implicitly_packed_struct {
 82	char y1;
 83	struct nested_packed_but_aligned_struct y2;
 84};
 85/* ----- START-EXPECTED-OUTPUT ----- */
 86/*
 87 *struct usb_ss_ep_comp_descriptor {
 88 *	char: 8;
 89 *	char bDescriptorType;
 90 *	char bMaxBurst;
 91 *	short wBytesPerInterval;
 92 *};
 93 *
 94 *struct usb_host_endpoint {
 95 *	long: 64;
 96 *	char: 8;
 97 *	struct usb_ss_ep_comp_descriptor ss_ep_comp;
 98 *	long: 0;
 99 *} __attribute__((packed));
100 *
101 */
102/* ------ END-EXPECTED-OUTPUT ------ */
103
104struct usb_ss_ep_comp_descriptor {
105	char: 8;
106	char bDescriptorType;
107	char bMaxBurst;
108	int: 0;
109	short wBytesPerInterval;
110} __attribute__((packed));
111
112struct usb_host_endpoint {
113	long: 64;
114	char: 8;
115	struct usb_ss_ep_comp_descriptor ss_ep_comp;
116	long: 0;
117};
118
119/* ----- START-EXPECTED-OUTPUT ----- */
120struct nested_packed_struct {
121	int a;
122	char b;
123} __attribute__((packed));
124
125struct outer_nonpacked_struct {
126	short a;
127	struct nested_packed_struct b;
128};
129
130struct outer_packed_struct {
131	short a;
132	struct nested_packed_struct b;
133} __attribute__((packed));
134
135/* ------ END-EXPECTED-OUTPUT ------ */
136
137int f(struct {
138	struct packed_trailing_space _1;
139	struct non_packed_trailing_space _2;
140	struct packed_fields _3;
141	struct non_packed_fields _4;
142	struct nested_packed _5;
143	union union_is_never_packed _6;
144	union union_does_not_need_packing _7;
145	union jump_code_union _8;
146	struct outer_implicitly_packed_struct _9;
147	struct usb_host_endpoint _10;
148	struct outer_nonpacked_struct _11;
149	struct outer_packed_struct _12;
150} *_)
151{
152	return 0;
153}