Commit 4d040cbc authored by Kuan-Ying Lee's avatar Kuan-Ying Lee Committed by Andrew Morton
Browse files

scripts/gdb/utils: add common type usage

Since we often use 'unsigned long', 'size_t', 'usigned int'
and 'struct page', we add these common types to utils.

Link: https://lkml.kernel.org/r/20230808083020.22254-4-Kuan-Ying.Lee@mediatek.com


Signed-off-by: default avatarKuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: Chinwen Chang <chinwen.chang@mediatek.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Qun-Wei Lin <qun-wei.lin@mediatek.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 82141540
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -35,12 +35,32 @@ class CachedType:


long_type = CachedType("long")
ulong_type = CachedType("unsigned long")
uint_type = CachedType("unsigned int")
atomic_long_type = CachedType("atomic_long_t")
size_t_type = CachedType("size_t")
struct_page_type = CachedType("struct page")

def get_uint_type():
    global uint_type
    return uint_type.get_type()

def get_page_type():
    global struct_page_type
    return struct_page_type.get_type()

def get_long_type():
    global long_type
    return long_type.get_type()

def get_ulong_type():
    global ulong_type
    return ulong_type.get_type()

def get_size_t_type():
    global size_t_type
    return size_t_type.get_type()

def offset_of(typeobj, field):
    element = gdb.Value(0).cast(typeobj)
    return int(str(element[field].address).split()[0], 16)