]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/x86/include/asm/processor.h
arm: vf610: improve evaluation of reset source
[karo-tx-uboot.git] / arch / x86 / include / asm / processor.h
1 /*
2  * (C) Copyright 2002
3  * Daniel Engström, Omicron Ceti AB, daniel@omicron.se
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #ifndef __ASM_PROCESSOR_H_
9 #define __ASM_PROCESSOR_H_ 1
10
11 #define X86_GDT_ENTRY_SIZE      8
12
13 #ifndef __ASSEMBLY__
14
15 enum {
16         X86_GDT_ENTRY_NULL = 0,
17         X86_GDT_ENTRY_UNUSED,
18         X86_GDT_ENTRY_32BIT_CS,
19         X86_GDT_ENTRY_32BIT_DS,
20         X86_GDT_ENTRY_32BIT_FS,
21         X86_GDT_ENTRY_16BIT_CS,
22         X86_GDT_ENTRY_16BIT_DS,
23         X86_GDT_NUM_ENTRIES
24 };
25 #else
26 /* NOTE: If the above enum is modified, this define must be checked */
27 #define X86_GDT_ENTRY_32BIT_DS  3
28 #define X86_GDT_NUM_ENTRIES     7
29 #endif
30
31 #define X86_GDT_SIZE            (X86_GDT_NUM_ENTRIES * X86_GDT_ENTRY_SIZE)
32
33 #ifndef __ASSEMBLY__
34
35 #define PORT_RESET              0xcf9
36
37 static inline __attribute__((always_inline)) void cpu_hlt(void)
38 {
39         asm("hlt");
40 }
41
42 static inline ulong cpu_get_sp(void)
43 {
44         ulong result;
45
46         asm volatile(
47                 "mov %%esp, %%eax"
48                 : "=a" (result));
49         return result;
50 }
51
52 #endif /* __ASSEMBLY__ */
53
54 #endif