diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/asm_int.h (renamed from asm/int.h) | 0 | ||||
| -rw-r--r-- | asm/asm_int.s (renamed from asm/int.s) | 0 | ||||
| -rw-r--r-- | asm/asm_pic.asm (renamed from asm/pic.asm) | 0 | ||||
| -rw-r--r-- | asm/asm_pic.h (renamed from asm/pic.h) | 0 | ||||
| -rw-r--r-- | asm/asm_pit.h (renamed from asm/pit.h) | 0 | ||||
| -rw-r--r-- | asm/asm_pit.s (renamed from asm/pit.s) | 0 | ||||
| -rw-r--r-- | asm/asm_start.h (renamed from asm/start.h) | 0 | ||||
| -rw-r--r-- | asm/asm_start.s (renamed from asm/start.s) | 0 | ||||
| -rw-r--r-- | asm/asm_task.h (renamed from asm/task.h) | 0 | ||||
| -rw-r--r-- | asm/asm_task.s (renamed from asm/task.s) | 0 | ||||
| -rw-r--r-- | asm/asm_usermode.h (renamed from asm/usermode.h) | 0 | ||||
| -rw-r--r-- | asm/asm_usermode.s (renamed from asm/usermode.s) | 0 | ||||
| -rw-r--r-- | asm/asm_x86.h (renamed from asm/x86.h) | 2 | ||||
| -rw-r--r-- | asm/asm_x86.s (renamed from asm/x86.s) | 11 |
14 files changed, 12 insertions, 1 deletions
diff --git a/asm/int.h b/asm/asm_int.h index 4133fbf..4133fbf 100644 --- a/asm/int.h +++ b/asm/asm_int.h diff --git a/asm/int.s b/asm/asm_int.s index 566b646..566b646 100644 --- a/asm/int.s +++ b/asm/asm_int.s diff --git a/asm/pic.asm b/asm/asm_pic.asm index 901f854..901f854 100644 --- a/asm/pic.asm +++ b/asm/asm_pic.asm diff --git a/asm/pic.h b/asm/asm_pic.h index 0daea2a..0daea2a 100644 --- a/asm/pic.h +++ b/asm/asm_pic.h diff --git a/asm/pit.h b/asm/asm_pit.h index d020de1..d020de1 100644 --- a/asm/pit.h +++ b/asm/asm_pit.h diff --git a/asm/pit.s b/asm/asm_pit.s index 8e16d0b..8e16d0b 100644 --- a/asm/pit.s +++ b/asm/asm_pit.s diff --git a/asm/start.h b/asm/asm_start.h index 4b2db16..4b2db16 100644 --- a/asm/start.h +++ b/asm/asm_start.h diff --git a/asm/start.s b/asm/asm_start.s index ca99c20..ca99c20 100644 --- a/asm/start.s +++ b/asm/asm_start.s diff --git a/asm/task.h b/asm/asm_task.h index 40a8c17..40a8c17 100644 --- a/asm/task.h +++ b/asm/asm_task.h diff --git a/asm/task.s b/asm/asm_task.s index bf80025..bf80025 100644 --- a/asm/task.s +++ b/asm/asm_task.s diff --git a/asm/usermode.h b/asm/asm_usermode.h index 16597f2..16597f2 100644 --- a/asm/usermode.h +++ b/asm/asm_usermode.h diff --git a/asm/usermode.s b/asm/asm_usermode.s index 71ecc1d..71ecc1d 100644 --- a/asm/usermode.s +++ b/asm/asm_usermode.s diff --git a/asm/x86.h b/asm/asm_x86.h index 8e6a741..529a6c2 100644 --- a/asm/x86.h +++ b/asm/asm_x86.h @@ -77,7 +77,7 @@ void x86_cli (); void x86_sti (); /** xchg - this can be used for semaphors and simlar */ -uint8_t x86_xchg (uint8_t *addr, uint8_t val); +uint8_t x86_xchg (uint32_t addr, uint32_t val); /** invlpg - invalidate translation lookaside buffer */ void x86_invlpg(uint32_t addr); diff --git a/asm/x86.s b/asm/asm_x86.s index 3243352..35052b1 100644 --- a/asm/x86.s +++ b/asm/asm_x86.s @@ -121,3 +121,14 @@ set_cr3: set_cr4: mov %eax,%cr4 ret + +x86_xchg: + mov 8(%esp), %eax // addr + mov 4(%esp), %edx // value + xchg %edx, (%eax) //LOCK protocol impemented anyway + ret + +x86_invlpg: + mov 4(%esp), %eax // addr + invlpg (%eax) + ret |
