Zephyr API Documentation 4.1.99
A Scalable Open Source RTOS
 4.1.99
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
structs.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Intel
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#ifndef ZEPHYR_INCLUDE_X86_STRUCTS_H_
7#define ZEPHYR_INCLUDE_X86_STRUCTS_H_
8
9#include <stdint.h>
10
11struct k_thread;
12
13/* Per CPU architecture specifics (empty) */
14struct _cpu_arch {
15
16#if defined(CONFIG_FPU_SHARING)
17 /*
18 * A 'sse_owner' field does not exist in addition to the 'fpu_owner'
19 * field since it's not possible to divide the IA-32 non-integer
20 * registers into 2 distinct blocks owned by differing threads. In
21 * other words, given that the 'fxnsave/fxrstor' instructions
22 * save/restore both the X87 FPU and XMM registers, it's not possible
23 * for a thread to only "own" the XMM registers.
24 */
25
26 struct k_thread *fpu_owner;
27#elif defined(__cplusplus)
28 /* Ensure this struct does not have a size of 0 which is not allowed in C++. */
29 uint8_t dummy;
30#endif
31};
32
33#endif /* ZEPHYR_INCLUDE_X86_STRUCTS_H_ */
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Thread Structure.
Definition thread.h:261