blob: d701eb1992b1495b693001cb8bf165a6ae6c459b [file] [log] [blame]
Raef Coles59cf5d82024-12-09 15:41:13 +00001#-------------------------------------------------------------------------------
2# SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8import struct
9
10import logging
Raef Colescfc31242025-04-04 09:38:47 +010011logger = logging.getLogger("TF-M.{}".format(__name__))
Raef Coles59cf5d82024-12-09 15:41:13 +000012
13def 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)))