Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
thread.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019-2020 Cobham Gaisler AB
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
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 */
29struct _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};
66typedef struct _callee_saved _callee_saved_t;
67
68struct _thread_arch {
69 /* empty */
70};
71
72typedef struct _thread_arch _thread_arch_t;
73
74#endif /* _ASMLANGUAGE */
75
76#endif /* ZEPHYR_INCLUDE_ARCH_SPARC_THREAD_H_ */
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT64_TYPE__ uint64_t
Definition: stdint.h:61