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: Kuan-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: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Kuan-Ying Lee 2023-08-08 16:30:13 +08:00 committed by Andrew Morton
parent 82141540c3
commit 4d040cbca8

View File

@ -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)