rename lock
This commit is contained in:
@@ -70,16 +70,16 @@ enum PAGE_FAULT_ERROR {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern TextStream kout;
|
extern TextStream kout;
|
||||||
extern Ticketlock ticketlock;
|
extern Ticketlock koutlock;
|
||||||
void handle_keyboard() {
|
void handle_keyboard() {
|
||||||
ticketlock.lock();
|
|
||||||
|
|
||||||
Key key = Key();
|
Key key = Key();
|
||||||
if (PS2Controller::fetch(key)) {
|
if (PS2Controller::fetch(key)) {
|
||||||
kout << key.ascii() << endl << flush ;
|
koutlock.lock();
|
||||||
|
kout << key.ascii() << flush ;
|
||||||
|
koutlock.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
ticketlock.unlock();
|
|
||||||
LAPIC::endOfInterrupt();
|
LAPIC::endOfInterrupt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
3
main.cc
3
main.cc
@@ -16,6 +16,7 @@
|
|||||||
#include "sync/ticketlock.h"
|
#include "sync/ticketlock.h"
|
||||||
|
|
||||||
TextStream kout = TextStream(0, 80, 0, 10, true);
|
TextStream kout = TextStream(0, 80, 0, 10, true);
|
||||||
|
Ticketlock koutlock;
|
||||||
|
|
||||||
//TextStream dout[8] = {
|
//TextStream dout[8] = {
|
||||||
// TextStream(0 ,20,12,25,false),
|
// TextStream(0 ,20,12,25,false),
|
||||||
@@ -50,8 +51,6 @@ CopyStream copystream[Core::MAX]{
|
|||||||
{&dout[7], &sout},
|
{&dout[7], &sout},
|
||||||
};
|
};
|
||||||
|
|
||||||
Ticketlock ticketlock;
|
|
||||||
|
|
||||||
OutputStream* copyout[Core::MAX]{
|
OutputStream* copyout[Core::MAX]{
|
||||||
&dout[0],
|
&dout[0],
|
||||||
©stream[1],
|
©stream[1],
|
||||||
|
|||||||
@@ -20,13 +20,14 @@ Und wacht sie aus'm Koma auf, kriegt sie von mir 'n Sticker\n\
|
|||||||
\n";
|
\n";
|
||||||
|
|
||||||
extern TextStream kout;
|
extern TextStream kout;
|
||||||
extern Ticketlock ticketlock;
|
extern Ticketlock koutlock;
|
||||||
|
|
||||||
void activeWaitDelay(uint64_t cycles) {
|
void activeWaitDelay(uint64_t cycles) {
|
||||||
uint64_t counter = 0; // Use volatile to prevent optimization
|
uint64_t counter = 0; // Use volatile to prevent optimization
|
||||||
for (uint64_t i = 0; i < cycles; ++i) {
|
for (uint64_t i = 0; i < cycles; ++i) {
|
||||||
counter++; // Simple operation to consume cycles
|
counter++; // Simple operation to consume cycles
|
||||||
//asm("nop");
|
asm("nop");
|
||||||
Core::pause();
|
//Core::pause();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,17 +35,17 @@ void Application::action() { // NOLINT
|
|||||||
uint16_t cnt = 0;
|
uint16_t cnt = 0;
|
||||||
while (1) {
|
while (1) {
|
||||||
Core::Interrupt::disable();
|
Core::Interrupt::disable();
|
||||||
ticketlock.lock();
|
koutlock.lock();
|
||||||
while(text[cnt++] != '\n'){
|
while(text[cnt++] != '\n'){
|
||||||
kout << text[cnt-1];
|
kout << text[cnt-1];
|
||||||
}
|
}
|
||||||
kout << endl << flush;
|
kout << endl << flush;
|
||||||
|
koutlock.unlock();
|
||||||
|
|
||||||
activeWaitDelay(10000000);
|
activeWaitDelay(1000000000);
|
||||||
if(cnt >= sizeof(text)-1)
|
if(cnt >= sizeof(text)-1)
|
||||||
cnt=0;
|
cnt=0;
|
||||||
|
|
||||||
ticketlock.unlock();
|
|
||||||
Core::Interrupt::enable();
|
Core::Interrupt::enable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user