LCOV - code coverage report
Current view: top level - arch/x86/include/asm - current.h (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc3-djwx @ Mon Jul 31 20:08:22 PDT 2023 Lines: 1 1 100.0 %
Date: 2023-07-31 20:08:22 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : #ifndef _ASM_X86_CURRENT_H
       3             : #define _ASM_X86_CURRENT_H
       4             : 
       5             : #include <linux/compiler.h>
       6             : 
       7             : #ifndef __ASSEMBLY__
       8             : 
       9             : #include <linux/cache.h>
      10             : #include <asm/percpu.h>
      11             : 
      12             : struct task_struct;
      13             : 
      14             : struct pcpu_hot {
      15             :         union {
      16             :                 struct {
      17             :                         struct task_struct      *current_task;
      18             :                         int                     preempt_count;
      19             :                         int                     cpu_number;
      20             : #ifdef CONFIG_CALL_DEPTH_TRACKING
      21             :                         u64                     call_depth;
      22             : #endif
      23             :                         unsigned long           top_of_stack;
      24             :                         void                    *hardirq_stack_ptr;
      25             :                         u16                     softirq_pending;
      26             : #ifdef CONFIG_X86_64
      27             :                         bool                    hardirq_stack_inuse;
      28             : #else
      29             :                         void                    *softirq_stack_ptr;
      30             : #endif
      31             :                 };
      32             :                 u8      pad[64];
      33             :         };
      34             : };
      35             : static_assert(sizeof(struct pcpu_hot) == 64);
      36             : 
      37             : DECLARE_PER_CPU_ALIGNED(struct pcpu_hot, pcpu_hot);
      38             : 
      39             : static __always_inline struct task_struct *get_current(void)
      40             : {
      41 >16135*10^7 :         return this_cpu_read_stable(pcpu_hot.current_task);
      42             : }
      43             : 
      44             : #define current get_current()
      45             : 
      46             : #endif /* __ASSEMBLY__ */
      47             : 
      48             : #endif /* _ASM_X86_CURRENT_H */

Generated by: LCOV version 1.14