implement exercise 04 interrupts
This commit is contained in:
@ -12,43 +12,41 @@
|
||||
#ifndef __CPU_include__
|
||||
#define __CPU_include__
|
||||
|
||||
|
||||
class CPU {
|
||||
|
||||
|
||||
private:
|
||||
CPU(const CPU ©); // Verhindere Kopieren
|
||||
CPU(const CPU& copy); // Verhindere Kopieren
|
||||
|
||||
public:
|
||||
CPU() {}
|
||||
|
||||
// Erlauben von (Hardware-)Interrupts
|
||||
inline void enable_int () {
|
||||
asm volatile ( "sti" );
|
||||
inline void enable_int() {
|
||||
asm volatile("sti");
|
||||
}
|
||||
|
||||
|
||||
// Interrupts werden ignoriert/verboten
|
||||
inline void disable_int () {
|
||||
asm volatile ( "cli" );
|
||||
inline void disable_int() {
|
||||
asm volatile("cli");
|
||||
}
|
||||
|
||||
|
||||
// Prozessor bis zum naechsten Interrupt anhalten
|
||||
inline void idle () {
|
||||
asm volatile ( "sti;"
|
||||
"hlt"
|
||||
);
|
||||
inline void idle() {
|
||||
asm volatile("sti;"
|
||||
"hlt");
|
||||
}
|
||||
|
||||
|
||||
// Prozessor anhalten
|
||||
inline void halt () {
|
||||
asm volatile ( "cli;"
|
||||
"hlt"
|
||||
);
|
||||
inline void halt() {
|
||||
asm volatile("cli;"
|
||||
"hlt");
|
||||
}
|
||||
|
||||
|
||||
// Time-Stamp-Counter auslesen
|
||||
inline unsigned long long int rdtsc() {
|
||||
unsigned long long int ret;
|
||||
asm volatile ( "rdtsc" : "=A"(ret) );
|
||||
unsigned long long int ret;
|
||||
asm volatile("rdtsc"
|
||||
: "=A"(ret));
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user