Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

thread.h File Reference

#include <setjmp.h>
#include "l4_types.h"
#include "activation.h"
#include "config.h"
#include "deadline_timeout.h"
#include "mem_layout.h"
#include "preemption.h"
#include "receiver.h"
#include "sender.h"
#include "space.h"
#include "thread_lock.h"
#include "trap_state.h"
#include "fpu_alloc.h"
#include "timeout.h"
#include "fpu_state.h"
#include "gdt.h"
#include "entry_frame.h"
#include "task.h"
#include "mod32.h"
#include "map_util.h"
#include "lock_guard.h"
#include "kdb_ke.h"
#include "logdefs.h"
#include "regdefs.h"
#include "std_macros.h"
#include "vmem_alloc.h"
#include "warn.h"
#include "jdb_trace.h"
#include "cpu_lock.h"
#include "kmem.h"
#include <cstdio>
#include "processor.h"

Go to the source code of this file.

Functions

Threadcurrent_thread ()
 Currently executing thread.
FIASCO_FASTCALL int thread_page_fault (Address pfa, Mword error_code, Address ip, Mword flags, Return_frame *regs)
 The low-level page fault handler called from entry.S.
FIASCO_FASTCALL int thread_handle_trap (Trap_state *ts)
 The catch-all trap entry point.
FIASCO_FASTCALL void thread_timer_interrupt (Address ip)
void thread_timer_interrupt_stop (void)
 Extra version of timer interrupt handler which is used when the jdb is active to prevent busy waiting.
void thread_timer_interrupt_slow (void)
 Slow version of timer interrupt.
void sys_thread_switch_wrapper ()
void sys_fpage_unmap_wrapper ()
void sys_id_nearest_wrapper ()
void sys_thread_ex_regs_wrapper ()
void sys_task_new_wrapper ()
void sys_thread_schedule_wrapper ()
void sys_ipc_wrapper ()
void ipc_short_cut_wrapper ()
void sys_ipc_log_wrapper (void)
void sys_ipc_trace_wrapper (void)
void sys_fpage_unmap_log_wrapper (void)

Variables

void(* syscall_table [])()


Function Documentation

Thread * current_thread  )  [inline]
 

Currently executing thread.

Returns:
currently executing thread.

void ipc_short_cut_wrapper  ) 
 

void sys_fpage_unmap_log_wrapper void   ) 
 

void sys_fpage_unmap_wrapper  ) 
 

void sys_id_nearest_wrapper  ) 
 

void sys_ipc_log_wrapper void   ) 
 

void sys_ipc_trace_wrapper void   ) 
 

void sys_ipc_wrapper  ) 
 

void sys_task_new_wrapper  ) 
 

void sys_thread_ex_regs_wrapper  ) 
 

void sys_thread_schedule_wrapper  ) 
 

void sys_thread_switch_wrapper  ) 
 

FIASCO_FASTCALL int thread_handle_trap Trap_state ts  ) 
 

The catch-all trap entry point.

Called by assembly code when a CPU trap (that's not specially handled, such as system calls) occurs. Just forwards the call to Thread::handle_slow_trap().

Parameters:
state trap state
Returns:
0 if trap has been consumed by handler; -1 if trap could not be handled.

FIASCO_FASTCALL int thread_page_fault Address  pfa,
Mword  error_code,
Address  ip,
Mword  flags,
Return_frame regs
 

The low-level page fault handler called from entry.S.

We're invoked with interrupts turned off. Apart from turning on interrupts in almost all cases (except for kernel page faults in TCB area), just forwards the call to Thread::handle_page_fault().

Parameters:
pfa page-fault virtual address
error_code CPU error code
Returns:
true if page fault could be resolved, false otherwise

FIASCO_FASTCALL void thread_timer_interrupt Address  ip  ) 
 

void thread_timer_interrupt_slow void   ) 
 

Slow version of timer interrupt.

Activated on every clock tick. Checks if something related to debugging is to do. After returning from this function, the real timer interrupt handler is called.

void thread_timer_interrupt_stop void   ) 
 

Extra version of timer interrupt handler which is used when the jdb is active to prevent busy waiting.


Variable Documentation

void(* syscall_table[])()
 


Generated on Mon Sep 26 14:20:13 2005 for Fiasco by  doxygen 1.4.2