forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.7 KiB
77 lines
1.7 KiB
/* |
|
* gdb helper commands and functions for Linux kernel debugging |
|
* |
|
* Kernel constants derived from include files. |
|
* |
|
* Copyright (c) 2016 Linaro Ltd |
|
* |
|
* Authors: |
|
* Kieran Bingham <kieran.bingham@linaro.org> |
|
* |
|
* This work is licensed under the terms of the GNU GPL version 2. |
|
* |
|
*/ |
|
|
|
#include <linux/clk-provider.h> |
|
#include <linux/fs.h> |
|
#include <linux/hrtimer.h> |
|
#include <linux/mount.h> |
|
#include <linux/of_fdt.h> |
|
#include <linux/threads.h> |
|
|
|
/* We need to stringify expanded macros so that they can be parsed */ |
|
|
|
#define STRING(x) #x |
|
#define XSTRING(x) STRING(x) |
|
|
|
#define LX_VALUE(x) LX_##x = x |
|
#define LX_GDBPARSED(x) LX_##x = gdb.parse_and_eval(XSTRING(x)) |
|
|
|
/* |
|
* IS_ENABLED generates (a || b) which is not compatible with python |
|
* We can only switch on configuration items we know are available |
|
* Therefore - IS_BUILTIN() is more appropriate |
|
*/ |
|
#define LX_CONFIG(x) LX_##x = IS_BUILTIN(x) |
|
|
|
/* The build system will take care of deleting everything above this marker */ |
|
<!-- end-c-headers --> |
|
|
|
import gdb |
|
|
|
/* linux/clk-provider.h */ |
|
if IS_BUILTIN(CONFIG_COMMON_CLK): |
|
LX_GDBPARSED(CLK_GET_RATE_NOCACHE) |
|
|
|
/* linux/fs.h */ |
|
LX_VALUE(SB_RDONLY) |
|
LX_VALUE(SB_SYNCHRONOUS) |
|
LX_VALUE(SB_MANDLOCK) |
|
LX_VALUE(SB_DIRSYNC) |
|
LX_VALUE(SB_NOATIME) |
|
LX_VALUE(SB_NODIRATIME) |
|
|
|
/* linux/htimer.h */ |
|
LX_GDBPARSED(hrtimer_resolution) |
|
|
|
/* linux/mount.h */ |
|
LX_VALUE(MNT_NOSUID) |
|
LX_VALUE(MNT_NODEV) |
|
LX_VALUE(MNT_NOEXEC) |
|
LX_VALUE(MNT_NOATIME) |
|
LX_VALUE(MNT_NODIRATIME) |
|
LX_VALUE(MNT_RELATIME) |
|
|
|
/* linux/threads.h */ |
|
LX_VALUE(NR_CPUS) |
|
|
|
/* linux/of_fdt.h> */ |
|
LX_VALUE(OF_DT_HEADER) |
|
|
|
/* Kernel Configs */ |
|
LX_CONFIG(CONFIG_GENERIC_CLOCKEVENTS) |
|
LX_CONFIG(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) |
|
LX_CONFIG(CONFIG_HIGH_RES_TIMERS) |
|
LX_CONFIG(CONFIG_NR_CPUS) |
|
LX_CONFIG(CONFIG_OF) |
|
LX_CONFIG(CONFIG_TICK_ONESHOT)
|
|
|