From: Jan Kiszka Date: Tue, 17 Feb 2015 21:46:58 +0000 (-0800) Subject: scripts/gdb: add get_target_endianness helper X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=7f994963745b9cea89a2816dae7cc3a1fc01adcc;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git scripts/gdb: add get_target_endianness helper Parse the target endianness from the output of "show endian" and cache the result to return it via the new helper get_target_endiannes. We will need it for reading integers from buffers that contain target memory. Signed-off-by: Jan Kiszka Cc: Thomas Gleixner Cc: Jason Wessel Cc: Andi Kleen Cc: Ben Widawsky Cc: Borislav Petkov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/scripts/gdb/linux/utils.py b/scripts/gdb/linux/utils.py index c9d705b62bfe..10a227bdb621 100644 --- a/scripts/gdb/linux/utils.py +++ b/scripts/gdb/linux/utils.py @@ -67,3 +67,21 @@ Note that TYPE and ELEMENT have to be quoted as strings.""" elementname.string()) ContainerOf() + + +BIG_ENDIAN = 0 +LITTLE_ENDIAN = 1 +target_endianness = None + + +def get_target_endianness(): + global target_endianness + if target_endianness is None: + endian = gdb.execute("show endian", to_string=True) + if "little endian" in endian: + target_endianness = LITTLE_ENDIAN + elif "big endian" in endian: + target_endianness = BIG_ENDIAN + else: + raise gdb.GdgError("unknown endianness '{0}'".format(endian)) + return target_endianness