refactor: decouple i386 specific instruction invocation
[lunaix-os.git] / lunaix-os / debug / bg_lsdbg.c
index 0f0496de4681dc506fa65b28e45eb16847fc7c94..c5072d7f5dec9419f9037df88be3de4b7ef8a2a2 100644 (file)
@@ -7,7 +7,7 @@
 
 LOG_MODULE("DBG");
 
 
 LOG_MODULE("DBG");
 
-static volatile sdbg_state = 0;
+static volatile int sdbg_state = 0;
 
 void
 sdbg_printf(char* fmt, ...)
 
 void
 sdbg_printf(char* fmt, ...)
@@ -26,16 +26,18 @@ sdbg_printf(char* fmt, ...)
 void
 lunaix_sdbg_loop(isr_param* param)
 {
 void
 lunaix_sdbg_loop(isr_param* param)
 {
-    char c;
+    u8_t c;
 
     if (sdbg_state == SDBG_STATE_WAIT_BRK) {
 
     if (sdbg_state == SDBG_STATE_WAIT_BRK) {
-        (param)->eflags &= ~(1 << 8);
+        (param)->execp->eflags &= ~(1 << 8);
         sdbg_state = SDBG_STATE_INSESSION;
         sdbg_state = SDBG_STATE_INSESSION;
-        sdbg_printf("[%p:%p] Break point reached.\n", param->cs, param->eip);
+        sdbg_printf("[%p:%p] Break point reached.\n",
+                    param->execp->cs,
+                    param->execp->eip);
     }
 
     while (1) {
     }
 
     while (1) {
-        c = serial_rx_byte(SERIAL_COM1);
+        c = (u8_t)serial_rx_byte(SERIAL_COM1);
         if (c == SDBG_CLNT_QUIT) {
             sdbg_state = SDBG_STATE_START;
             break;
         if (c == SDBG_CLNT_QUIT) {
             sdbg_state = SDBG_STATE_START;
             break;
@@ -44,12 +46,14 @@ lunaix_sdbg_loop(isr_param* param)
         switch (c) {
             case SDBG_CLNT_HI:
                 if (sdbg_state == SDBG_STATE_START) {
         switch (c) {
             case SDBG_CLNT_HI:
                 if (sdbg_state == SDBG_STATE_START) {
-                    sdbg_printf(
-                      "[%p:%p] Session started.\n", param->cs, param->eip);
+                    sdbg_printf("[%p:%p] Session started.\n",
+                                param->execp->cs,
+                                param->execp->eip);
                     sdbg_state = SDBG_STATE_INSESSION;
                 } else {
                     sdbg_state = SDBG_STATE_INSESSION;
                 } else {
-                    sdbg_printf(
-                      "[%p:%p] Session resumed.\n", param->cs, param->eip);
+                    sdbg_printf("[%p:%p] Session resumed.\n",
+                                param->execp->cs,
+                                param->execp->eip);
                 }
                 break;
             case SDBG_CLNT_RREG:
                 }
                 break;
             case SDBG_CLNT_RREG:
@@ -57,14 +61,14 @@ lunaix_sdbg_loop(isr_param* param)
                 serial_tx_buffer(SERIAL_COM1, (char*)param, sizeof(isr_param));
                 break;
             case SDBG_CLNT_STEP:
                 serial_tx_buffer(SERIAL_COM1, (char*)param, sizeof(isr_param));
                 break;
             case SDBG_CLNT_STEP:
-                ((isr_param*)param)->eflags |= (1 << 8); // set TF flags
+                ((isr_param*)param)->execp->eflags |= (1 << 8); // set TF flags
                 sdbg_state = SDBG_STATE_WAIT_BRK;
                 return;
             case SDBG_CLNT_BRKP:
                 // the break point address
                 sdbg_state = SDBG_STATE_WAIT_BRK;
                 return;
             case SDBG_CLNT_BRKP:
                 // the break point address
-                // serial_rx_buffer(SERIAL_COM1, buffer, sizeof(uintptr_t));
+                // serial_rx_buffer(SERIAL_COM1, buffer, sizeof(ptr_t));
 
 
-                // asm("movl %0, %%dr0" ::"r"(*((uintptr_t*)buffer)));
+                // asm("movl %0, %%dr0" ::"r"(*((ptr_t*)buffer)));
 
                 sdbg_state = SDBG_STATE_WAIT_BRK;
                 return;
 
                 sdbg_state = SDBG_STATE_WAIT_BRK;
                 return;