Added a new system call sys_timer.

sys_timer accumulates timer ticks into seconds, minutes, hours and days.
It's left to the user to calculate from days into a date. It is not yet
known if the calculation is even roughly correct.

Reduced 2 kmem_reclaim/grant calls into one kmem_control call.
This commit is contained in:
Bahadir Balban
2008-04-18 00:46:29 +01:00
parent 73058dc249
commit a87914910c
12 changed files with 122 additions and 133 deletions

View File

@@ -83,27 +83,28 @@ END_PROC(l4_unmap)
/*
* System call that grants a set of pages to the kernel.
* @r0 = physical pfn, @r1 = number of pages
* @r0 = physical pfn, @r1 = number of pages, @r2 = whether to
* grant or reclaim kernel memory. grant = 1, reclaim = 0.
*/
BEGIN_PROC(l4_kmem_grant)
BEGIN_PROC(l4_kmem_control)
stmfd sp!, {lr}
ldr r12, =__l4_kmem_grant
ldr r12, =__l4_kmem_control
mov lr, pc
ldr pc, [r12]
ldmfd sp!, {pc} @ Restore original lr and return.
END_PROC(l4_kmem_grant)
END_PROC(l4_kmem_control)
/*
* System call that reclaims a set of pages from the kernel.
* @r0 = ptr to physical pfn, @r1 = ptr to number of pages
* System call that gets or sets the time info structure.
* @r0 = ptr to time structure @r1 = set or get. set = 1, get = 0.
*/
BEGIN_PROC(l4_kmem_reclaim)
BEGIN_PROC(l4_time)
stmfd sp!, {lr}
ldr r12, =__l4_kmem_reclaim
ldr r12, =__l4_time
mov lr, pc
ldr pc, [r12]
ldmfd sp!, {pc} @ Restore original lr and return.
END_PROC(l4_kmem_reclaim)
END_PROC(l4_time)
/*
* System call that controls thread creation, destruction and modification.

View File

@@ -23,8 +23,8 @@ __l4_thread_control_t __l4_thread_control = 0;
__l4_ipc_control_t __l4_ipc_control = 0;
__l4_space_control_t __l4_space_control = 0;
__l4_exchange_registers_t __l4_exchange_registers = 0;
__l4_kmem_grant_t __l4_kmem_grant = 0;
__l4_kmem_reclaim_t __l4_kmem_reclaim = 0;
__l4_kmem_control_t __l4_kmem_control = 0;
__l4_time_t __l4_time = 0;
struct kip *kip;
@@ -120,8 +120,8 @@ void __l4_init(void)
__l4_space_control= (__l4_space_control_t)kip->space_control;
__l4_exchange_registers =
(__l4_exchange_registers_t)kip->exchange_registers;
__l4_kmem_grant = (__l4_kmem_grant_t)kip->kmem_grant;
__l4_kmem_reclaim = (__l4_kmem_reclaim_t)kip->kmem_reclaim;
__l4_kmem_control = (__l4_kmem_control_t)kip->kmem_control;
__l4_time = (__l4_time_t)kip->time;
utcb_init();
}