Introduction   API Reference   Files   Index  

Fiasco extensions
[L4 System Calls]

Kernel debugger extensions of the Fiasco L4 implementation. More...

Data Structures

struct  l4_tracebuffer_status_t
 Tracebuffer status. More...

Defines

#define LOG_EVENT_CONTEXT_SWITCH   0
 Event: context switch.
#define LOG_EVENT_IPC_SHORTCUT   1
 Event: IPC shortcut.
#define LOG_EVENT_IRQ_RAISED   2
 Event: IRQ occurred.
#define LOG_EVENT_TIMER_IRQ   3
 Event: Timer IRQ occurred.
#define LOG_EVENT_THREAD_EX_REGS   4
 Event: thread_ex_regs.
#define LOG_EVENT_TRAP   5
 Event: Trap occured.
#define LOG_EVENT_PF_RES   6
 Event: Pagefpault resolved.
#define LOG_EVENT_SCHED   7
 Event: Scheduling context loaded, saved or invalidated.
#define LOG_EVENT_PREEMPTION   8
 Event: Preemption IPC sent.
#define LOG_EVENT_ID_NEAREST   9
 Event: ID nearest.
#define LOG_EVENT_TASK_NEW   10
 Event: New task created.
#define LOG_EVENT_MAX_EVENTS   16
 Maximum number of events.

Enumerations

enum  l4_timeout_abs_validity {
  L4_TIMEOUT_ABS_V1_ms = 0, L4_TIMEOUT_ABS_V2_ms, L4_TIMEOUT_ABS_V4_ms, L4_TIMEOUT_ABS_V8_ms,
  L4_TIMEOUT_ABS_V16_ms, L4_TIMEOUT_ABS_V32_ms, L4_TIMEOUT_ABS_V64_ms, L4_TIMEOUT_ABS_V128_ms,
  L4_TIMEOUT_ABS_V256_ms, L4_TIMEOUT_ABS_V512_ms, L4_TIMEOUT_ABS_V1_s, L4_TIMEOUT_ABS_V2_s,
  L4_TIMEOUT_ABS_V4_s, L4_TIMEOUT_ABS_V8_s, L4_TIMEOUT_ABS_V16_s, L4_TIMEOUT_ABS_V32_s
}
 Timeout validities

times are actually 2^x values (e.g. More...


Functions

void fiasco_profile_start (void)
 Start profiling.
void fiasco_profile_stop_and_dump (void)
 Stop profiling and dump result to console.
void fiasco_profile_stop (void)
 Stop profiling.
void fiasco_watchdog_enable (void)
 Enable Fiasco watchdog.
void fiasco_watchdog_disable (void)
 Disable Fiasco watchdog.
void fiasco_watchdog_takeover (void)
 Disable automatic resetting of watchdog.
void fiasco_watchdog_giveback (void)
 Reenable automatic resetting of watchdog.
void fiasco_watchdog_touch (void)
 Reset watchdog from userland.
void fiasco_ldt_set (void *ldt, unsigned int size, unsigned int entry_number_start, unsigned int task_nr)
 Set LDT segments descriptors.
void fiasco_gdt_set (void *desc, unsigned int size, unsigned int entry_number_start, l4_threadid_t tid)
 Set GDT segment descriptors.
unsigned fiasco_gdt_get_entry_offset (void)
 Return the offset of the entry in the GDT.
l4_tracebuffer_status_tfiasco_tbuf_get_status (void)
 Return tracebuffer status.
l4_addr_t fiasco_tbuf_get_status_phys (void)
 Return the physical address of the tracebuffer status struct.
l4_umword_t fiasco_tbuf_log (const char *text)
 Create new tracebuffer entry with describing <text>.
l4_umword_t fiasco_tbuf_log_3val (const char *text, unsigned v1, unsigned v2, unsigned v3)
 Create new tracebuffer entry with describing <text> and three additional values.
l4_umword_t fiasco_tbuf_log_binary (const unsigned char *data)
 Create new tracebuffer entry with binary data.
void fiasco_tbuf_clear (void)
 Clear tracebuffer.
void fiasco_tbuf_dump (void)
 Dump tracebuffer to kernel console.

Detailed Description

Kernel debugger extensions of the Fiasco L4 implementation.


Enumeration Type Documentation

Timeout validities

times are actually 2^x values (e.g.

2ms -> 2048µs)

Definition at line 54 of file __timeout.h.


Function Documentation

void fiasco_watchdog_takeover ( void   )  [inline]

Disable automatic resetting of watchdog.

User is responsible to call fiasco_watchdog_touch from time to time to ensure that the watchdog does not trigger.

Definition at line 377 of file kdebug.h.

void fiasco_watchdog_touch ( void   )  [inline]

Reset watchdog from userland.

This function must be called from time to time to prevent the watchdog from triggering if the watchdog is activated and if fiasco_watchdog_takeover was performed.

Definition at line 389 of file kdebug.h.

void fiasco_ldt_set ( void *  ldt,
unsigned int  size,
unsigned int  entry_number_start,
unsigned int  task_nr 
) [inline]

Set LDT segments descriptors.

Parameters:
ldt Pointer to LDT hardware descriptors.
size Size of the descriptor in bytes (multiple of 8).
entry_number_start Entry number to start.
task_nr Task to set the segment for.

Definition at line 59 of file segment.h.

void fiasco_gdt_set ( void *  desc,
unsigned int  size,
unsigned int  entry_number_start,
l4_threadid_t  tid 
) [inline]

Set GDT segment descriptors.

Fiasco supports 3 consecutive entries, starting at FIASCO_GDT_ENTRY_OFFSET.

Parameters:
desc Pointer to GDT descriptors.
size Size of the descriptors in bytes (multiple of 8).
entry_number_start Entry number to start (valid values: 0-2).
tid Thread ID to set the GDT entry for.

l4_tracebuffer_status_t * fiasco_tbuf_get_status ( void   )  [inline]

Return tracebuffer status.

Returns:
Pointer to tracebuffer status struct.

Definition at line 198 of file ktrace.h.

l4_addr_t fiasco_tbuf_get_status_phys ( void   )  [inline]

Return the physical address of the tracebuffer status struct.

Returns:
physical address of status struct.

Definition at line 206 of file ktrace.h.

l4_umword_t fiasco_tbuf_log ( const char *  text  )  [inline]

Create new tracebuffer entry with describing <text>.

Parameters:
text Logging text
Returns:
Pointer to tracebuffer entry

Definition at line 214 of file ktrace.h.

l4_umword_t fiasco_tbuf_log_3val ( const char *  text,
unsigned  v1,
unsigned  v2,
unsigned  v3 
) [inline]

Create new tracebuffer entry with describing <text> and three additional values.

Parameters:
text Logging text
v1 first value
v2 second value
v3 third value
Returns:
Pointer to tracebuffer entry

Definition at line 224 of file ktrace.h.

l4_umword_t fiasco_tbuf_log_binary ( const unsigned char *  data  )  [inline]

Create new tracebuffer entry with binary data.

Parameters:
data binary data
Returns:
Pointer to tracebuffer entry

Definition at line 258 of file ktrace.h.


Fiasco/L4 System Call C-Bindings Reference Manual,  © 1996-2008