Commit e5db52bf authored by 4ast's avatar 4ast Committed by GitHub

Merge pull request #1484 from iovisor/yhs_dev

add padding to the end of structure
parents b384b76e b32b4a5f
...@@ -145,6 +145,13 @@ bool BMapDeclVisitor::VisitRecordDecl(RecordDecl *D) { ...@@ -145,6 +145,13 @@ bool BMapDeclVisitor::VisitRecordDecl(RecordDecl *D) {
Offset = FieldOffset + FieldSize; Offset = FieldOffset + FieldSize;
genJSONForField(F); genJSONForField(F);
} }
/* Additional Padding after the last field so that the Record Size matches */
CharUnits RecordSize = Layout.getSize();
if (RecordSize > Offset) {
result_ += "[\"__pad_end\",\"char\",["
+ to_string((RecordSize - Offset).getQuantity()) + "]], ";
}
} }
if (!D->getDefinition()->field_empty()) if (!D->getDefinition()->field_empty())
......
...@@ -685,6 +685,7 @@ struct key_t { ...@@ -685,6 +685,7 @@ struct key_t {
}; };
u8 f1_3; /* offset 48 */ u8 f1_3; /* offset 48 */
unsigned __int128 f1_4; /* offset 64 */ unsigned __int128 f1_4; /* offset 64 */
char f1_5; /* offset 80 */
}; };
struct value_t { struct value_t {
u8 src[4] __attribute__ ((aligned (8))); /* offset 0 */ u8 src[4] __attribute__ ((aligned (8))); /* offset 0 */
...@@ -694,8 +695,8 @@ BPF_HASH(table1, struct key_t, struct value_t); ...@@ -694,8 +695,8 @@ BPF_HASH(table1, struct key_t, struct value_t);
""" """
b = BPF(text=text) b = BPF(text=text)
table = b['table1'] table = b['table1']
self.assertEqual(ct.sizeof(table.Key), 80) self.assertEqual(ct.sizeof(table.Key), 96)
self.assertEqual(ct.sizeof(table.Leaf), 12) self.assertEqual(ct.sizeof(table.Leaf), 16)
if __name__ == "__main__": if __name__ == "__main__":
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment