summaryrefslogtreecommitdiff
path: root/libcpu/ia32
diff options
context:
space:
mode:
Diffstat (limited to 'libcpu/ia32')
-rw-r--r--libcpu/ia32/__udivsi3.c46
-rw-r--r--libcpu/ia32/__umodsi3.c46
-rw-r--r--libcpu/ia32/backtrace.c2
-rw-r--r--libcpu/ia32/interrupt.c88
-rw-r--r--libcpu/ia32/showmem.c32
-rw-r--r--libcpu/ia32/stack.c46
-rw-r--r--libcpu/ia32/trap.c88
7 files changed, 174 insertions, 174 deletions
diff --git a/libcpu/ia32/__udivsi3.c b/libcpu/ia32/__udivsi3.c
index ec7c59d1cb..506dc2ddd5 100644
--- a/libcpu/ia32/__udivsi3.c
+++ b/libcpu/ia32/__udivsi3.c
@@ -16,31 +16,31 @@
uint32_t __udivsi3(uint32_t num, uint32_t den)
{
- uint32_t quot = 0, qbit = 1;
+ uint32_t quot = 0, qbit = 1;
- if (den == 0)
- {
- asm volatile ("int $0");
- return 0; /* If trap returns... */
- }
+ if (den == 0)
+ {
+ asm volatile ("int $0");
+ return 0; /* If trap returns... */
+ }
- /* Left-justify denominator and count shift */
- while ((int32_t) den >= 0)
- {
- den <<= 1;
- qbit <<= 1;
- }
+ /* Left-justify denominator and count shift */
+ while ((int32_t) den >= 0)
+ {
+ den <<= 1;
+ qbit <<= 1;
+ }
- while (qbit)
- {
- if (den <= num)
- {
- num -= den;
- quot += qbit;
- }
- den >>= 1;
- qbit >>= 1;
- }
+ while (qbit)
+ {
+ if (den <= num)
+ {
+ num -= den;
+ quot += qbit;
+ }
+ den >>= 1;
+ qbit >>= 1;
+ }
- return quot;
+ return quot;
}
diff --git a/libcpu/ia32/__umodsi3.c b/libcpu/ia32/__umodsi3.c
index 226a2c0800..101db9debd 100644
--- a/libcpu/ia32/__umodsi3.c
+++ b/libcpu/ia32/__umodsi3.c
@@ -16,31 +16,31 @@
uint32_t __umodsi3(uint32_t num, uint32_t den)
{
- register uint32_t quot = 0, qbit = 1;
+ register uint32_t quot = 0, qbit = 1;
- if (den == 0)
- {
- asm volatile ("int $0");
- return 0; /* if trap returns... */
- }
+ if (den == 0)
+ {
+ asm volatile ("int $0");
+ return 0; /* if trap returns... */
+ }
- /* left-justify denominator and count shift */
- while ((int32_t) den >= 0)
- {
- den <<= 1;
- qbit <<= 1;
- }
+ /* left-justify denominator and count shift */
+ while ((int32_t) den >= 0)
+ {
+ den <<= 1;
+ qbit <<= 1;
+ }
- while (qbit)
- {
- if (den <= num)
- {
- num -= den;
- quot += qbit;
- }
- den >>= 1;
- qbit >>= 1;
- }
+ while (qbit)
+ {
+ if (den <= num)
+ {
+ num -= den;
+ quot += qbit;
+ }
+ den >>= 1;
+ qbit >>= 1;
+ }
- return num;
+ return num;
}
diff --git a/libcpu/ia32/backtrace.c b/libcpu/ia32/backtrace.c
index b8f094d90f..ee90ae71ca 100644
--- a/libcpu/ia32/backtrace.c
+++ b/libcpu/ia32/backtrace.c
@@ -16,5 +16,5 @@
void rt_hw_backtrace(rt_uint32_t *fp, rt_uint32_t thread_entry)
{
- /* no implementation */
+ /* no implementation */
}
diff --git a/libcpu/ia32/interrupt.c b/libcpu/ia32/interrupt.c
index 82a5aa3791..f14a9a3ca1 100644
--- a/libcpu/ia32/interrupt.c
+++ b/libcpu/ia32/interrupt.c
@@ -7,7 +7,7 @@
* Date Author Notes
* 2015/9/15 Bernard Update to new interrupt framework.
*/
-
+
#include <rtthread.h>
#include <rthw.h>
@@ -36,45 +36,45 @@ void rt_hw_interrupt_handle(int vector, void* param);
*/
void rt_hw_pic_init()
{
- outb(IO_PIC1, 0x11);
- outb(IO_PIC1+1, IRQ_OFFSET);
- outb(IO_PIC1+1, 1<<IRQ_SLAVE);
- outb(IO_PIC1+1, 0x3);
- outb(IO_PIC1+1, 0xff);
- outb(IO_PIC1, 0x68);
- outb(IO_PIC1, 0x0a);
- outb(IO_PIC2, 0x11);
- outb(IO_PIC2+1, IRQ_OFFSET + 8);
- outb(IO_PIC2+1, IRQ_SLAVE);
- outb(IO_PIC2+1, 0x3);
- outb(IO_PIC2+1, 0xff);
- outb(IO_PIC2, 0x68);
- outb(IO_PIC2, 0x0a);
+ outb(IO_PIC1, 0x11);
+ outb(IO_PIC1+1, IRQ_OFFSET);
+ outb(IO_PIC1+1, 1<<IRQ_SLAVE);
+ outb(IO_PIC1+1, 0x3);
+ outb(IO_PIC1+1, 0xff);
+ outb(IO_PIC1, 0x68);
+ outb(IO_PIC1, 0x0a);
+ outb(IO_PIC2, 0x11);
+ outb(IO_PIC2+1, IRQ_OFFSET + 8);
+ outb(IO_PIC2+1, IRQ_SLAVE);
+ outb(IO_PIC2+1, 0x3);
+ outb(IO_PIC2+1, 0xff);
+ outb(IO_PIC2, 0x68);
+ outb(IO_PIC2, 0x0a);
- if (irq_mask_8259A != 0xFFFF)
- {
- outb(IO_PIC1+1, (char)irq_mask_8259A);
- outb(IO_PIC2+1, (char)(irq_mask_8259A >> 8));
- }
+ if (irq_mask_8259A != 0xFFFF)
+ {
+ outb(IO_PIC1+1, (char)irq_mask_8259A);
+ outb(IO_PIC2+1, (char)(irq_mask_8259A >> 8));
+ }
- /* init interrupt nest, and context */
- rt_interrupt_nest = 0;
- rt_interrupt_from_thread = 0;
- rt_interrupt_to_thread = 0;
- rt_thread_switch_interrupt_flag = 0;
+ /* init interrupt nest, and context */
+ rt_interrupt_nest = 0;
+ rt_interrupt_from_thread = 0;
+ rt_interrupt_to_thread = 0;
+ rt_thread_switch_interrupt_flag = 0;
}
void rt_hw_interrupt_handle(int vector, void* param)
{
- rt_kprintf("Unhandled interrupt %d occured!!!\n", vector);
+ rt_kprintf("Unhandled interrupt %d occured!!!\n", vector);
}
void rt_hw_isr(int vector)
{
- if (vector < MAX_HANDLERS)
- {
- irq_desc[vector].handler(vector, irq_desc[vector].param);
- }
+ if (vector < MAX_HANDLERS)
+ {
+ irq_desc[vector].handler(vector, irq_desc[vector].param);
+ }
}
/**
@@ -83,10 +83,10 @@ void rt_hw_isr(int vector)
*/
void rt_hw_interrupt_init(void)
{
- int idx;
-
- rt_hw_idt_init();
- rt_hw_pic_init();
+ int idx;
+
+ rt_hw_idt_init();
+ rt_hw_pic_init();
/* init exceptions table */
for(idx=0; idx < MAX_HANDLERS; idx++)
@@ -102,16 +102,16 @@ void rt_hw_interrupt_init(void)
void rt_hw_interrupt_umask(int vector)
{
- irq_mask_8259A = irq_mask_8259A&~(1<<vector);
- outb(IO_PIC1+1, (char)irq_mask_8259A);
- outb(IO_PIC2+1, (char)(irq_mask_8259A >> 8));
+ irq_mask_8259A = irq_mask_8259A&~(1<<vector);
+ outb(IO_PIC1+1, (char)irq_mask_8259A);
+ outb(IO_PIC2+1, (char)(irq_mask_8259A >> 8));
}
void rt_hw_interrupt_mask(int vector)
{
- irq_mask_8259A = irq_mask_8259A | (1<<vector);
- outb(IO_PIC1+1, (char)irq_mask_8259A);
- outb(IO_PIC2+1, (char)(irq_mask_8259A >> 8));
+ irq_mask_8259A = irq_mask_8259A | (1<<vector);
+ outb(IO_PIC1+1, (char)irq_mask_8259A);
+ outb(IO_PIC2+1, (char)(irq_mask_8259A >> 8));
}
rt_isr_handler_t rt_hw_interrupt_install(int vector,
@@ -140,15 +140,15 @@ rt_isr_handler_t rt_hw_interrupt_install(int vector,
rt_base_t rt_hw_interrupt_disable(void)
{
- rt_base_t level;
+ rt_base_t level;
- __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (level): :"memory");
- return level;
+ __asm__ __volatile__("pushfl ; popl %0 ; cli":"=g" (level): :"memory");
+ return level;
}
void rt_hw_interrupt_enable(rt_base_t level)
{
- __asm__ __volatile__("pushl %0 ; popfl": :"g" (level):"memory", "cc");
+ __asm__ __volatile__("pushl %0 ; popfl": :"g" (level):"memory", "cc");
}
/*@}*/
diff --git a/libcpu/ia32/showmem.c b/libcpu/ia32/showmem.c
index 38f037f83d..5374a3ad48 100644
--- a/libcpu/ia32/showmem.c
+++ b/libcpu/ia32/showmem.c
@@ -16,27 +16,27 @@
void rt_hw_show_memory(rt_uint32_t addr, rt_uint32_t size)
{
- int i = 0, j =0;
+ int i = 0, j =0;
- RT_ASSERT(addr);
+ RT_ASSERT(addr);
- addr = addr & ~0xF;
- size = 4*((size + 3)/4);
+ addr = addr & ~0xF;
+ size = 4*((size + 3)/4);
- while(i < size)
- {
- rt_kprintf("0x%08x: ", addr );
+ while(i < size)
+ {
+ rt_kprintf("0x%08x: ", addr );
- for(j=0; j<4; j++)
- {
- rt_kprintf("0x%08x ", *(rt_uint32_t *)addr);
+ for(j=0; j<4; j++)
+ {
+ rt_kprintf("0x%08x ", *(rt_uint32_t *)addr);
- addr += 4;
- i++;
- }
+ addr += 4;
+ i++;
+ }
- rt_kprintf("\n");
- }
+ rt_kprintf("\n");
+ }
- return;
+ return;
}
diff --git a/libcpu/ia32/stack.c b/libcpu/ia32/stack.c
index 9d656a73d6..a533b94076 100644
--- a/libcpu/ia32/stack.c
+++ b/libcpu/ia32/stack.c
@@ -10,7 +10,7 @@
* Change Logs:
* Date Author Notes
*/
-
+
#include <rtthread.h>
#include <i386.h>
@@ -24,36 +24,36 @@
* This function will initialize thread stack
*
* @param tentry the entry of thread
- * @param parameter the parameter of entry
+ * @param parameter the parameter of entry
* @param stack_addr the beginning stack address
* @param texit the function will be called when thread exit
*
* @return stack address
*/
rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
- rt_uint8_t *stack_addr, void *texit)
+ rt_uint8_t *stack_addr, void *texit)
{
- unsigned long *stk;
+ unsigned long *stk;
- stk = (unsigned long *)stack_addr;
- *(--stk) = (unsigned long)parameter;
- *(--stk) = (unsigned long)texit;
- *(--stk) = 0x200; /*flags*/
- *(--stk) = 0x08; /*cs*/
- *(--stk) = (unsigned long)tentry; /*eip*/
- *(--stk) = 0; /*irqno*/
- *(--stk) = 0x10; /*ds*/
- *(--stk) = 0x10; /*es*/
- *(--stk) = 0; /*eax*/
- *(--stk) = 0; /*ecx*/
- *(--stk) = 0; /*edx*/
- *(--stk) = 0; /*ebx*/
- *(--stk) = 0; /*esp*/
- *(--stk) = 0; /*ebp*/
- *(--stk) = 0; /*esi*/
- *(--stk) = 0; /*edi*/
+ stk = (unsigned long *)stack_addr;
+ *(--stk) = (unsigned long)parameter;
+ *(--stk) = (unsigned long)texit;
+ *(--stk) = 0x200; /*flags*/
+ *(--stk) = 0x08; /*cs*/
+ *(--stk) = (unsigned long)tentry; /*eip*/
+ *(--stk) = 0; /*irqno*/
+ *(--stk) = 0x10; /*ds*/
+ *(--stk) = 0x10; /*es*/
+ *(--stk) = 0; /*eax*/
+ *(--stk) = 0; /*ecx*/
+ *(--stk) = 0; /*edx*/
+ *(--stk) = 0; /*ebx*/
+ *(--stk) = 0; /*esp*/
+ *(--stk) = 0; /*ebp*/
+ *(--stk) = 0; /*esi*/
+ *(--stk) = 0; /*edi*/
- /* return task's current stack address */
- return (rt_uint8_t *)stk;
+ /* return task's current stack address */
+ return (rt_uint8_t *)stk;
}
/*@}*/
diff --git a/libcpu/ia32/trap.c b/libcpu/ia32/trap.c
index 5e9a51d6d2..b3484cfd58 100644
--- a/libcpu/ia32/trap.c
+++ b/libcpu/ia32/trap.c
@@ -22,7 +22,7 @@
struct Gatedesc idt[256] = { {0}, };
struct Pseudodesc idt_pd =
{
- 0, sizeof(idt) - 1, (unsigned long) idt,
+ 0, sizeof(idt) - 1, (unsigned long) idt,
};
/* exception and interrupt handler table */
@@ -40,36 +40,36 @@ extern rt_isr_handler_t hdinterrupt_func[];
*
*/
void rt_hw_idt_init(void)
-{
- extern void Xdefault;
- int i, j, func;
+{
+ extern void Xdefault;
+ int i, j, func;
+
+ // install a default handler
+ for (i = 0; i < sizeof(idt)/sizeof(idt[0]); i++)
+ SETGATE(idt[i], 0, GD_KT, &Xdefault, 0);
+
+ /*install trap handler*/
+ for(i = 0; i < 16; i++)
+ {
+ func = (int)trap_func[i];
+ SETGATE(idt[i], 0, GD_KT, func, 0);
+ }
- // install a default handler
- for (i = 0; i < sizeof(idt)/sizeof(idt[0]); i++)
- SETGATE(idt[i], 0, GD_KT, &Xdefault, 0);
+ func = (int)trap_func[3];
+ SETGATE(idt[3], 0, GD_KT, func, 3);
- /*install trap handler*/
- for(i = 0; i < 16; i++)
- {
- func = (int)trap_func[i];
- SETGATE(idt[i], 0, GD_KT, func, 0);
- }
+ i = 0;
- func = (int)trap_func[3];
- SETGATE(idt[3], 0, GD_KT, func, 3);
+ /*install exteral interrupt handler*/
+ for(j = IRQ_OFFSET; j < IRQ_OFFSET + MAX_HANDLERS; j++)
+ {
+ func = (int)hdinterrupt_func[i];
+ SETGATE(idt[j], 0, GD_KT, func, 0);
+ i++;
+ }
- i = 0;
-
- /*install exteral interrupt handler*/
- for(j = IRQ_OFFSET; j < IRQ_OFFSET + MAX_HANDLERS; j++)
- {
- func = (int)hdinterrupt_func[i];
- SETGATE(idt[j], 0, GD_KT, func, 0);
- i++;
- }
-
- // Load the IDT
- asm volatile("lidt idt_pd + 2");
+ // Load the IDT
+ asm volatile("lidt idt_pd + 2");
}
/**
@@ -80,24 +80,24 @@ void rt_hw_idt_init(void)
*/
void rt_hw_trap_irq(int trapno)
{
- switch(trapno)
- {
- case T_DIVIDE:
- rt_kprintf("Divide error interrupt\n");
- RT_ASSERT(0);
- case T_PGFLT:
- rt_kprintf("Page fault interrupt\n");
- RT_ASSERT(0);
- case T_GPFLT:
- rt_kprintf("General protection interrupt\n");
- RT_ASSERT(0);
- case T_DEFAULT:
- rt_hw_interrupt_handle(T_DEFAULT);
- return;
- }
+ switch(trapno)
+ {
+ case T_DIVIDE:
+ rt_kprintf("Divide error interrupt\n");
+ RT_ASSERT(0);
+ case T_PGFLT:
+ rt_kprintf("Page fault interrupt\n");
+ RT_ASSERT(0);
+ case T_GPFLT:
+ rt_kprintf("General protection interrupt\n");
+ RT_ASSERT(0);
+ case T_DEFAULT:
+ rt_hw_interrupt_handle(T_DEFAULT);
+ return;
+ }
- /*kernel bug if run here*/
- RT_ASSERT(0);
+ /*kernel bug if run here*/
+ RT_ASSERT(0);
}
/*@}*/