1fea25720SGraeme Russ /* 2fea25720SGraeme Russ * (C) Copyright 2002 3fa82f871SAlbert ARIBAUD * Daniel Engström, Omicron Ceti AB, daniel@omicron.se 4fea25720SGraeme Russ * 51a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 6fea25720SGraeme Russ */ 7fea25720SGraeme Russ 8fea25720SGraeme Russ #ifndef __ASM_PROCESSOR_H_ 9fea25720SGraeme Russ #define __ASM_PROCESSOR_H_ 1 10fea25720SGraeme Russ 11109ad143SGraeme Russ #define X86_GDT_ENTRY_SIZE 8 12109ad143SGraeme Russ 13109ad143SGraeme Russ #ifndef __ASSEMBLY__ 14109ad143SGraeme Russ 15109ad143SGraeme Russ enum { 16109ad143SGraeme Russ X86_GDT_ENTRY_NULL = 0, 17109ad143SGraeme Russ X86_GDT_ENTRY_UNUSED, 18109ad143SGraeme Russ X86_GDT_ENTRY_32BIT_CS, 19109ad143SGraeme Russ X86_GDT_ENTRY_32BIT_DS, 209e6c572fSGraeme Russ X86_GDT_ENTRY_32BIT_FS, 21109ad143SGraeme Russ X86_GDT_ENTRY_16BIT_CS, 22109ad143SGraeme Russ X86_GDT_ENTRY_16BIT_DS, 23109ad143SGraeme Russ X86_GDT_NUM_ENTRIES 24109ad143SGraeme Russ }; 25109ad143SGraeme Russ #else 26109ad143SGraeme Russ /* NOTE: If the above enum is modified, this define must be checked */ 27109ad143SGraeme Russ #define X86_GDT_ENTRY_32BIT_DS 3 288d61625dSGraeme Russ #define X86_GDT_NUM_ENTRIES 7 29109ad143SGraeme Russ #endif 30109ad143SGraeme Russ 31109ad143SGraeme Russ #define X86_GDT_SIZE (X86_GDT_NUM_ENTRIES * X86_GDT_ENTRY_SIZE) 32fea25720SGraeme Russ 33*21b9b14bSSimon Glass #ifndef __ASSEMBLY__ 34*21b9b14bSSimon Glass 35*21b9b14bSSimon Glass static inline __attribute__((always_inline)) void cpu_hlt(void) 36*21b9b14bSSimon Glass { 37*21b9b14bSSimon Glass asm("hlt"); 38*21b9b14bSSimon Glass } 39*21b9b14bSSimon Glass 40*21b9b14bSSimon Glass static inline ulong cpu_get_sp(void) 41*21b9b14bSSimon Glass { 42*21b9b14bSSimon Glass ulong result; 43*21b9b14bSSimon Glass 44*21b9b14bSSimon Glass asm volatile( 45*21b9b14bSSimon Glass "mov %%esp, %%eax" 46*21b9b14bSSimon Glass : "=a" (result)); 47*21b9b14bSSimon Glass return result; 48*21b9b14bSSimon Glass } 49*21b9b14bSSimon Glass 50*21b9b14bSSimon Glass #endif /* __ASSEMBLY__ */ 51*21b9b14bSSimon Glass 52fea25720SGraeme Russ #endif 53