xref: /OK3568_Linux_fs/kernel/scripts/gdb/linux/constants.py.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * gdb helper commands and functions for Linux kernel debugging
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun *  Kernel constants derived from include files.
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun * Copyright (c) 2016 Linaro Ltd
7*4882a593Smuzhiyun *
8*4882a593Smuzhiyun * Authors:
9*4882a593Smuzhiyun *  Kieran Bingham <kieran.bingham@linaro.org>
10*4882a593Smuzhiyun *
11*4882a593Smuzhiyun * This work is licensed under the terms of the GNU GPL version 2.
12*4882a593Smuzhiyun *
13*4882a593Smuzhiyun */
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun#include <linux/clk-provider.h>
16*4882a593Smuzhiyun#include <linux/fs.h>
17*4882a593Smuzhiyun#include <linux/hrtimer.h>
18*4882a593Smuzhiyun#include <linux/mount.h>
19*4882a593Smuzhiyun#include <linux/of_fdt.h>
20*4882a593Smuzhiyun#include <linux/threads.h>
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun/* We need to stringify expanded macros so that they can be parsed */
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun#define STRING(x) #x
25*4882a593Smuzhiyun#define XSTRING(x) STRING(x)
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun#define LX_VALUE(x) LX_##x = x
28*4882a593Smuzhiyun#define LX_GDBPARSED(x) LX_##x = gdb.parse_and_eval(XSTRING(x))
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun/*
31*4882a593Smuzhiyun * IS_ENABLED generates (a || b) which is not compatible with python
32*4882a593Smuzhiyun * We can only switch on configuration items we know are available
33*4882a593Smuzhiyun * Therefore - IS_BUILTIN() is more appropriate
34*4882a593Smuzhiyun */
35*4882a593Smuzhiyun#define LX_CONFIG(x) LX_##x = IS_BUILTIN(x)
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun/* The build system will take care of deleting everything above this marker */
38*4882a593Smuzhiyun<!-- end-c-headers -->
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunimport gdb
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun/* linux/clk-provider.h */
43*4882a593Smuzhiyunif IS_BUILTIN(CONFIG_COMMON_CLK):
44*4882a593Smuzhiyun    LX_GDBPARSED(CLK_GET_RATE_NOCACHE)
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun/* linux/fs.h */
47*4882a593SmuzhiyunLX_VALUE(SB_RDONLY)
48*4882a593SmuzhiyunLX_VALUE(SB_SYNCHRONOUS)
49*4882a593SmuzhiyunLX_VALUE(SB_MANDLOCK)
50*4882a593SmuzhiyunLX_VALUE(SB_DIRSYNC)
51*4882a593SmuzhiyunLX_VALUE(SB_NOATIME)
52*4882a593SmuzhiyunLX_VALUE(SB_NODIRATIME)
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun/* linux/htimer.h */
55*4882a593SmuzhiyunLX_GDBPARSED(hrtimer_resolution)
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun/* linux/mount.h */
58*4882a593SmuzhiyunLX_VALUE(MNT_NOSUID)
59*4882a593SmuzhiyunLX_VALUE(MNT_NODEV)
60*4882a593SmuzhiyunLX_VALUE(MNT_NOEXEC)
61*4882a593SmuzhiyunLX_VALUE(MNT_NOATIME)
62*4882a593SmuzhiyunLX_VALUE(MNT_NODIRATIME)
63*4882a593SmuzhiyunLX_VALUE(MNT_RELATIME)
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun/* linux/threads.h */
66*4882a593SmuzhiyunLX_VALUE(NR_CPUS)
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun/* linux/of_fdt.h> */
69*4882a593SmuzhiyunLX_VALUE(OF_DT_HEADER)
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun/* Kernel Configs */
72*4882a593SmuzhiyunLX_CONFIG(CONFIG_GENERIC_CLOCKEVENTS)
73*4882a593SmuzhiyunLX_CONFIG(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST)
74*4882a593SmuzhiyunLX_CONFIG(CONFIG_HIGH_RES_TIMERS)
75*4882a593SmuzhiyunLX_CONFIG(CONFIG_NR_CPUS)
76*4882a593SmuzhiyunLX_CONFIG(CONFIG_OF)
77*4882a593SmuzhiyunLX_CONFIG(CONFIG_TICK_ONESHOT)
78