LCOV - code coverage report
Current view: top level - zephyr/arch/sparc - thread.h Hit Total Coverage
Test: new.info Lines: 1 1 100.0 %
Date: 2024-12-21 18:13:37

          Line data    Source code
       1           1 : /*
       2             :  * Copyright (c) 2019-2020 Cobham Gaisler AB
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : /**
       8             :  * @file
       9             :  * @brief Per-arch thread definition
      10             :  *
      11             :  * This file contains definitions for
      12             :  *
      13             :  *  struct _thread_arch
      14             :  *  struct _callee_saved
      15             :  *
      16             :  * necessary to instantiate instances of struct k_thread.
      17             :  */
      18             : 
      19             : #ifndef ZEPHYR_INCLUDE_ARCH_SPARC_THREAD_H_
      20             : #define ZEPHYR_INCLUDE_ARCH_SPARC_THREAD_H_
      21             : 
      22             : #ifndef _ASMLANGUAGE
      23             : #include <zephyr/types.h>
      24             : 
      25             : /*
      26             :  * The following structure defines the list of registers that need to be
      27             :  * saved/restored when a cooperative context switch occurs.
      28             :  */
      29             : struct _callee_saved {
      30             :         /* y register used by mul/div */
      31             :         uint32_t y;
      32             : 
      33             :         /* processor status register */
      34             :         uint32_t psr;
      35             : 
      36             :         /*
      37             :          * local registers
      38             :          *
      39             :          * Using uint64_t l0_and_l1 will put everything in this structure on a
      40             :          * double word boundary which allows us to use double word loads and
      41             :          * stores safely in the context switch.
      42             :          */
      43             :         uint64_t l0_and_l1;
      44             :         uint32_t l2;
      45             :         uint32_t l3;
      46             :         uint32_t l4;
      47             :         uint32_t l5;
      48             :         uint32_t l6;
      49             :         uint32_t l7;
      50             : 
      51             :         /* input registers */
      52             :         uint32_t i0;
      53             :         uint32_t i1;
      54             :         uint32_t i2;
      55             :         uint32_t i3;
      56             :         uint32_t i4;
      57             :         uint32_t i5;
      58             :         uint32_t i6; /* frame pointer */
      59             :         uint32_t i7;
      60             : 
      61             :         /* output registers */
      62             :         uint32_t o6; /* stack pointer */
      63             :         uint32_t o7;
      64             : 
      65             : };
      66             : typedef struct _callee_saved _callee_saved_t;
      67             : 
      68             : struct _thread_arch {
      69             :         /* empty */
      70             : };
      71             : 
      72             : typedef struct _thread_arch _thread_arch_t;
      73             : 
      74             : #endif  /* _ASMLANGUAGE */
      75             : 
      76             : #endif  /* ZEPHYR_INCLUDE_ARCH_SPARC_THREAD_H_ */

Generated by: LCOV version 1.14