LCOV - code coverage report
Current view: top level - arch/um/include/asm - thread_info.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 3 100.0 %
Date: 2023-07-19 18:55:55 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : /*
       3             :  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
       4             :  */
       5             : 
       6             : #ifndef __UM_THREAD_INFO_H
       7             : #define __UM_THREAD_INFO_H
       8             : 
       9             : #define THREAD_SIZE_ORDER CONFIG_KERNEL_STACK_ORDER
      10             : #define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE)
      11             : 
      12             : #ifndef __ASSEMBLY__
      13             : 
      14             : #include <asm/types.h>
      15             : #include <asm/page.h>
      16             : #include <asm/segment.h>
      17             : #include <sysdep/ptrace_user.h>
      18             : 
      19             : struct thread_info {
      20             :         struct task_struct      *task;          /* main task structure */
      21             :         unsigned long           flags;          /* low level flags */
      22             :         __u32                   cpu;            /* current CPU */
      23             :         int                     preempt_count;  /* 0 => preemptable,
      24             :                                                    <0 => BUG */
      25             :         struct thread_info      *real_thread;    /* Points to non-IRQ stack */
      26             :         unsigned long aux_fp_regs[FP_SIZE];     /* auxiliary fp_regs to save/restore
      27             :                                                    them out-of-band */
      28             : };
      29             : 
      30             : #define INIT_THREAD_INFO(tsk)                   \
      31             : {                                               \
      32             :         .task =         &tsk,                       \
      33             :         .flags =                0,              \
      34             :         .cpu =          0,                      \
      35             :         .preempt_count = INIT_PREEMPT_COUNT,    \
      36             :         .real_thread = NULL,                    \
      37             : }
      38             : 
      39             : /* how to get the thread information struct from C */
      40             : static inline struct thread_info *current_thread_info(void)
      41             : {
      42             :         struct thread_info *ti;
      43      303646 :         unsigned long mask = THREAD_SIZE - 1;
      44             :         void *p;
      45             : 
      46      303646 :         asm volatile ("" : "=r" (p) : "0" (&ti));
      47      293805 :         ti = (struct thread_info *) (((unsigned long)p) & ~mask);
      48             :         return ti;
      49             : }
      50             : 
      51             : #endif
      52             : 
      53             : #define TIF_SYSCALL_TRACE       0       /* syscall trace active */
      54             : #define TIF_SIGPENDING          1       /* signal pending */
      55             : #define TIF_NEED_RESCHED        2       /* rescheduling necessary */
      56             : #define TIF_NOTIFY_SIGNAL       3       /* signal notifications exist */
      57             : #define TIF_RESTART_BLOCK       4
      58             : #define TIF_MEMDIE              5       /* is terminating due to OOM killer */
      59             : #define TIF_SYSCALL_AUDIT       6
      60             : #define TIF_RESTORE_SIGMASK     7
      61             : #define TIF_NOTIFY_RESUME       8
      62             : #define TIF_SECCOMP             9       /* secure computing */
      63             : #define TIF_SINGLESTEP          10      /* single stepping userspace */
      64             : 
      65             : #define _TIF_SYSCALL_TRACE      (1 << TIF_SYSCALL_TRACE)
      66             : #define _TIF_SIGPENDING         (1 << TIF_SIGPENDING)
      67             : #define _TIF_NEED_RESCHED       (1 << TIF_NEED_RESCHED)
      68             : #define _TIF_NOTIFY_SIGNAL      (1 << TIF_NOTIFY_SIGNAL)
      69             : #define _TIF_MEMDIE             (1 << TIF_MEMDIE)
      70             : #define _TIF_SYSCALL_AUDIT      (1 << TIF_SYSCALL_AUDIT)
      71             : #define _TIF_SECCOMP            (1 << TIF_SECCOMP)
      72             : #define _TIF_SINGLESTEP         (1 << TIF_SINGLESTEP)
      73             : 
      74             : #endif

Generated by: LCOV version 1.14