mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 09:37:34 +00:00
Kernel: Remove some unused cruft in Arch/i386/CPU.h
This commit is contained in:
parent
edf9d07d3f
commit
a0f4e50bef
1 changed files with 1 additions and 67 deletions
|
@ -281,8 +281,6 @@ void register_interrupt_handler(u8 number, void (*f)());
|
||||||
void register_user_callable_interrupt_handler(u8 number, void (*f)());
|
void register_user_callable_interrupt_handler(u8 number, void (*f)());
|
||||||
GenericInterruptHandler& get_interrupt_handler(u8 interrupt_number);
|
GenericInterruptHandler& get_interrupt_handler(u8 interrupt_number);
|
||||||
void register_generic_interrupt_handler(u8 number, GenericInterruptHandler&);
|
void register_generic_interrupt_handler(u8 number, GenericInterruptHandler&);
|
||||||
void replace_single_handler_with_shared(GenericInterruptHandler&);
|
|
||||||
void replace_shared_handler_with_single(GenericInterruptHandler&);
|
|
||||||
void unregister_generic_interrupt_handler(u8 number, GenericInterruptHandler&);
|
void unregister_generic_interrupt_handler(u8 number, GenericInterruptHandler&);
|
||||||
void flush_idt();
|
void flush_idt();
|
||||||
void load_task_register(u16 selector);
|
void load_task_register(u16 selector);
|
||||||
|
@ -297,8 +295,7 @@ void load_task_register(u16 selector);
|
||||||
: "memory")
|
: "memory")
|
||||||
#define sti() asm volatile("sti" :: \
|
#define sti() asm volatile("sti" :: \
|
||||||
: "memory")
|
: "memory")
|
||||||
#define memory_barrier() asm volatile("" :: \
|
|
||||||
: "memory")
|
|
||||||
inline u32 cpu_flags()
|
inline u32 cpu_flags()
|
||||||
{
|
{
|
||||||
u32 flags;
|
u32 flags;
|
||||||
|
@ -361,40 +358,6 @@ inline bool are_interrupts_enabled()
|
||||||
return cpu_flags() & 0x200;
|
return cpu_flags() & 0x200;
|
||||||
}
|
}
|
||||||
|
|
||||||
class InterruptFlagSaver {
|
|
||||||
public:
|
|
||||||
InterruptFlagSaver()
|
|
||||||
{
|
|
||||||
m_flags = cpu_flags();
|
|
||||||
}
|
|
||||||
|
|
||||||
~InterruptFlagSaver()
|
|
||||||
{
|
|
||||||
if (m_flags & 0x200)
|
|
||||||
sti();
|
|
||||||
else
|
|
||||||
cli();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
u32 m_flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
inline bool cli_and_save_interrupt_flag()
|
|
||||||
{
|
|
||||||
u32 flags = cpu_flags();
|
|
||||||
cli();
|
|
||||||
return flags & 0x200;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void restore_interrupt_flag(bool flag)
|
|
||||||
{
|
|
||||||
if (flag)
|
|
||||||
sti();
|
|
||||||
else
|
|
||||||
cli();
|
|
||||||
}
|
|
||||||
|
|
||||||
class InterruptDisabler {
|
class InterruptDisabler {
|
||||||
public:
|
public:
|
||||||
InterruptDisabler()
|
InterruptDisabler()
|
||||||
|
@ -577,35 +540,6 @@ inline u64 read_tsc()
|
||||||
return ((u64)msw << 32) | lsw;
|
return ((u64)msw << 32) | lsw;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Stopwatch {
|
|
||||||
union SplitQword {
|
|
||||||
struct {
|
|
||||||
uint32_t lsw;
|
|
||||||
uint32_t msw;
|
|
||||||
};
|
|
||||||
uint64_t qw { 0 };
|
|
||||||
};
|
|
||||||
|
|
||||||
public:
|
|
||||||
Stopwatch(const char* name)
|
|
||||||
: m_name(name)
|
|
||||||
{
|
|
||||||
read_tsc(m_start.lsw, m_start.msw);
|
|
||||||
}
|
|
||||||
|
|
||||||
~Stopwatch()
|
|
||||||
{
|
|
||||||
SplitQword end;
|
|
||||||
read_tsc(end.lsw, end.msw);
|
|
||||||
uint64_t diff = end.qw - m_start.qw;
|
|
||||||
dbgln("Stopwatch({}): {} ticks", m_name, diff);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
const char* m_name { nullptr };
|
|
||||||
SplitQword m_start;
|
|
||||||
};
|
|
||||||
|
|
||||||
// FIXME: This can't hold every CPU feature as-is.
|
// FIXME: This can't hold every CPU feature as-is.
|
||||||
enum class CPUFeature : u32 {
|
enum class CPUFeature : u32 {
|
||||||
NX = (1 << 0),
|
NX = (1 << 0),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue