brintos

brintos / linux-shallow public Read only

0
0
Text · 2.7 KiB · 7998f27 Raw
154 lines · c
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 Facebook7 */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}154