diff options
Diffstat (limited to 'scripts/gdb/linux/cpus.py')
| -rw-r--r-- | scripts/gdb/linux/cpus.py | 22 | 
1 files changed, 20 insertions, 2 deletions
diff --git a/scripts/gdb/linux/cpus.py b/scripts/gdb/linux/cpus.py index 8f7c4fb78c2c..f506965ea759 100644 --- a/scripts/gdb/linux/cpus.py +++ b/scripts/gdb/linux/cpus.py @@ -46,7 +46,7 @@ def per_cpu(var_ptr, cpu):              # !CONFIG_SMP case              offset = 0      pointer = var_ptr.cast(utils.get_long_type()) + offset -    return pointer.cast(var_ptr.type).dereference() +    return pointer.cast(var_ptr.type)  cpu_mask = {} @@ -149,11 +149,29 @@ Note that VAR has to be quoted as string."""          super(PerCpu, self).__init__("lx_per_cpu")      def invoke(self, var, cpu=-1): -        return per_cpu(var.address, cpu) +        return per_cpu(var.address, cpu).dereference()  PerCpu() + +class PerCpuPtr(gdb.Function): +    """Return per-cpu pointer. + +$lx_per_cpu_ptr("VAR"[, CPU]): Return the per-cpu pointer called VAR for the +given CPU number. If CPU is omitted, the CPU of the current context is used. +Note that VAR has to be quoted as string.""" + +    def __init__(self): +        super(PerCpuPtr, self).__init__("lx_per_cpu_ptr") + +    def invoke(self, var, cpu=-1): +        return per_cpu(var, cpu) + + +PerCpuPtr() + +  def get_current_task(cpu):      task_ptr_type = task_type.get_type().pointer()  | 
