root/tools/testing/selftests/bpf/progs/btf_dump_test_case_packing.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. f

   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 ----- */
   9 struct packed_trailing_space {
  10         int a;
  11         short b;
  12 } __attribute__((packed));
  13 
  14 struct non_packed_trailing_space {
  15         int a;
  16         short b;
  17 };
  18 
  19 struct packed_fields {
  20         short a;
  21         int b;
  22 } __attribute__((packed));
  23 
  24 struct non_packed_fields {
  25         short a;
  26         int b;
  27 };
  28 
  29 struct nested_packed {
  30         char: 4;
  31         int a: 4;
  32         long int b;
  33         struct {
  34                 char c;
  35                 int d;
  36         } __attribute__((packed)) e;
  37 } __attribute__((packed));
  38 
  39 union union_is_never_packed {
  40         int a: 4;
  41         char b;
  42         char c: 1;
  43 };
  44 
  45 union union_does_not_need_packing {
  46         struct {
  47                 long int a;
  48                 int b;
  49         } __attribute__((packed));
  50         int c;
  51 };
  52 
  53 union jump_code_union {
  54         char code[5];
  55         struct {
  56                 char jump;
  57                 int offset;
  58         } __attribute__((packed));
  59 };
  60 
  61 /*------ END-EXPECTED-OUTPUT ------ */
  62 
  63 int f(struct {
  64         struct packed_trailing_space _1;
  65         struct non_packed_trailing_space _2;
  66         struct packed_fields _3;
  67         struct non_packed_fields _4;
  68         struct nested_packed _5;
  69         union union_is_never_packed _6;
  70         union union_does_not_need_packing _7;
  71         union jump_code_union _8;
  72 } *_)
  73 {
  74         return 0;
  75 }

/* [<][>][^][v][top][bottom][index][help] */