Raef Coles | 59cf5d8 | 2024-12-09 15:41:13 +0000 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
| 2 | # SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors |
| 3 | # |
| 4 | # SPDX-License-Identifier: BSD-3-Clause |
| 5 | # |
| 6 | #------------------------------------------------------------------------------- |
| 7 | |
| 8 | import struct |
| 9 | |
| 10 | import logging |
| 11 | logger = logging.getLogger("TF-M") |
| 12 | |
| 13 | def struct_pack(objects, pad_to=0): |
| 14 | defstring = "<" |
| 15 | for obj in objects: |
| 16 | defstring += str(len(obj)) + "s" |
| 17 | |
| 18 | size = struct.calcsize(defstring) |
| 19 | if size < pad_to: |
| 20 | defstring += str(pad_to - size) + "x" |
| 21 | assert size < pad_to or pad_to == 0, "Error padding struct of size {} to {}".format(size, pad_to) |
| 22 | |
| 23 | return (bytes(struct.pack(defstring, *objects))) |