Add get_current_task_id
This commit is contained in:
parent
df95829e83
commit
887ebc4553
16
fox32os.def
16
fox32os.def
|
@ -1,16 +1,18 @@
|
|||
; fox32os routine definitions
|
||||
|
||||
; system jump table
|
||||
get_os_version: jmp [0x00000810]
|
||||
get_os_version: jmp [0x00000810]
|
||||
|
||||
; FXF jump table
|
||||
parse_fxf_binary: jmp [0x00000910]
|
||||
parse_fxf_binary: jmp [0x00000910]
|
||||
|
||||
; task jump table
|
||||
new_task: jmp [0x00000A10]
|
||||
yield_task: jmp [0x00000A14]
|
||||
end_current_task: jmp [0x00000A18]
|
||||
new_task: jmp [0x00000A10]
|
||||
yield_task: jmp [0x00000A14]
|
||||
end_current_task: jmp [0x00000A18]
|
||||
get_current_task_id: jmp [0x00000A1C]
|
||||
get_unused_task_id: jmp [0x00000A20]
|
||||
|
||||
; memory jump table
|
||||
allocate_memory: jmp [0x00000B10]
|
||||
free_memory: jmp [0x00000B14]
|
||||
allocate_memory: jmp [0x00000B10]
|
||||
free_memory: jmp [0x00000B14]
|
||||
|
|
|
@ -26,6 +26,8 @@ jump_table:
|
|||
data.32 new_task
|
||||
data.32 yield_task
|
||||
data.32 end_current_task
|
||||
data.32 get_current_task_id
|
||||
data.32 get_unused_task_id
|
||||
|
||||
; memory jump table
|
||||
org.pad 0x00000B10
|
||||
|
|
|
@ -106,10 +106,33 @@ get_unused_task_id_loop:
|
|||
inc r0
|
||||
cmp r0, 32
|
||||
iflt jmp get_unused_task_id_loop
|
||||
; if we reach this point, then add task IDs are used
|
||||
; if we reach this point, then all task IDs are used
|
||||
mov r0, 0
|
||||
ret
|
||||
|
||||
; get the task ID of the currently running task
|
||||
; inputs:
|
||||
; none
|
||||
; outputs:
|
||||
; r0: task ID
|
||||
get_current_task_id:
|
||||
push r2
|
||||
push r3
|
||||
push r4
|
||||
push r5
|
||||
push r6
|
||||
|
||||
mov r0, current_task
|
||||
call task_load
|
||||
mov r0, r2
|
||||
|
||||
pop r6
|
||||
pop r5
|
||||
pop r4
|
||||
pop r3
|
||||
pop r2
|
||||
ret
|
||||
|
||||
task_load:
|
||||
mov r2, [r0] ; task ID
|
||||
add r0, 4
|
||||
|
|
Loading…
Reference in New Issue
Block a user