|
POK(kernelpart)
|
Provides generic architecture interface for x86 architecture. More...
Go to the source code of this file.
Functions | |
| pok_ret_t | pok_arch_init () |
| pok_ret_t | pok_arch_preempt_disable () |
| pok_ret_t | pok_arch_preempt_enable () |
| pok_ret_t | pok_arch_idle () |
| pok_ret_t | pok_arch_event_register (uint8_t vector, void(*handler)(void)) |
| uint32_t | pok_thread_stack_addr (const uint8_t partition_id, const uint32_t local_thread_id) |
Provides generic architecture interface for x86 architecture.
Definition in file arch.c.
| pok_ret_t pok_arch_event_register | ( | uint8_t | vector, |
| void(*)(void) | handler | ||
| ) |
Register an event (for example, an interruption)
Attach the handler to the given trap number (vector).
Definition at line 60 of file arch.c.
{
pok_idt_set_gate (vector,
GDT_CORE_CODE_SEGMENT << 3,
(uint32_t)handler,
IDTE_TRAP,
3);
return (POK_ERRNO_OK);
}
Function that do nothing. Useful for the idle task for example.
Definition at line 50 of file arch.c.
{
while (1)
{
asm ("hlt");
}
return (POK_ERRNO_OK);
}
Function that initializes architecture concerns.
Initialize all SPARC managers (traps, syscalls, space).
Definition at line 30 of file arch.c.
{
pok_gdt_init ();
pok_event_init ();
return (POK_ERRNO_OK);
}
| uint32_t pok_thread_stack_addr | ( | const uint8_t | partition_id, |
| const uint32_t | local_thread_id | ||
| ) |
Returns the stack address for a the thread number N in a partition.
Compute the stack adress for the given thread.
Definition at line 72 of file arch.c.
{
return pok_partitions[partition_id].size - 4 - (local_thread_id * POK_USER_STACK_SIZE);
}