blob: c2321050d9a58a675ebfd1056ac444801f8b4c45 [file] [log] [blame]
library fidl.test.padding;
struct Padding1ByteEnd {
uint16 a;
uint8 b;
// 1 byte padding
};
struct Padding2ByteEnd {
uint32 a;
uint16 b;
// 2 byte padding
};
struct Padding3ByteEnd {
uint32 a;
uint8 b;
// 3 byte padding
};
struct Padding4ByteEnd {
uint64 a;
uint32 b;
// 4 byte padding
};
struct Padding5ByteEnd {
uint64 a;
uint16 b;
uint8 c;
// 5 byte padding
};
struct Padding6ByteEnd {
uint64 a;
uint16 b;
// 6 byte padding
};
struct Padding7ByteEnd {
uint64 a;
uint8 b;
// 7 byte padding
};
struct Padding1ByteMiddle {
uint8 a;
// 1 byte padding
uint16 b;
};
struct Padding2ByteMiddle {
uint16 a;
// 2 byte padding
uint32 b;
};
struct Padding3ByteMiddle {
uint8 a;
// 3 byte padding
uint32 b;
};
struct Padding4ByteMiddle {
uint32 a;
// 4 byte padding
uint64 b;
};
struct Padding5ByteMiddle {
uint16 a;
uint8 b;
// 5 byte padding
uint64 c;
};
struct Padding6ByteMiddle {
uint16 a;
// 6 byte padding
uint64 b;
};
struct Padding7ByteMiddle {
uint8 a;
// 7 byte padding
uint64 b;
};
// The following structs test generation of padding masks for bindings that use
// them. For example, for a 4-byte aligned struct with length 12, two masks
// might be generated to cover the length - an 8-byte and 4-byte mask.
struct Padding4ByteAlignmentLength12 {
uint32 a;
uint8 b;
// 1 byte padding
uint16 c;
uint16 d;
// 2 bytes padding
};
struct Padding2ByteAlignmentLength6 {
// 4 byte padding mask starts here.
uint8 a;
// 1 byte padding
uint16 b;
// 2 byte padding mask starts here.
uint8 c;
// 1 byte padding
};