Skip to content

Commit fd00fc7

Browse files
committed
Enable callback functions
Add callback for clock
1 parent b3f4edc commit fd00fc7

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

os/interrupt.asm

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,10 @@ network_ack_only_low:
258258
align 16
259259
network_callback:
260260
push rsi
261-
mov rsi, network_callback_msg
262-
call os_output
263-
; call [os_NetworkCallback]
261+
xchg bx, bx ; Debug
262+
; mov rsi, network_callback_msg
263+
; call os_output
264+
call [os_NetworkCallback]
264265
pop rsi
265266
ret
266267

@@ -273,9 +274,10 @@ network_callback_msg db 13, 'Network Callback!', 0
273274
align 16
274275
clock_callback:
275276
push rsi
276-
mov rsi, clock_callback_msg
277-
call os_output
278-
; call [os_ClockCallback]
277+
xchg bx, bx ; Debug
278+
; mov rsi, clock_callback_msg
279+
; call os_output
280+
call [os_ClockCallback]
279281
pop rsi
280282
ret
281283

os/syscalls/misc.asm

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ os_system_config:
7777
je os_system_config_networkcallback_get
7878
cmp rdx, 4
7979
je os_system_config_networkcallback_set
80+
cmp rdx, 5
81+
je os_system_config_clockcallback_get
82+
cmp rdx, 6
83+
je os_system_config_clockcallback_set
8084
cmp rdx, 20
8185
je os_system_config_video_base
8286
cmp rdx, 21
@@ -110,6 +114,14 @@ os_system_config_networkcallback_set:
110114
mov qword [os_NetworkCallback], rax
111115
ret
112116

117+
os_system_config_clockcallback_get:
118+
mov rax, [os_ClockCallback]
119+
ret
120+
121+
os_system_config_clockcallback_set:
122+
mov qword [os_ClockCallback], rax
123+
ret
124+
113125
os_system_config_video_base:
114126
mov rax, [os_VideoBase]
115127
ret

programs/bmdev.asm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ config_argc equ 1
4242
config_argv equ 2
4343
networkcallback_get equ 3
4444
networkcallback_set equ 4
45+
clockcallback_get equ 5
46+
clockcallback_set equ 6
4547
statusbar equ 10
4648

4749

programs/libBareMetal.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ void b_system_misc(unsigned long function, void* var1, void* var2);
4949
#define config_argv 2
5050
#define networkcallback_get 3
5151
#define networkcallback_set 4
52+
#define clockcallback_get 5
53+
#define clockcallback_set 6
5254
#define statusbar 10
5355

5456

0 commit comments

Comments
 (0)