delayed_preempt.c File Reference

Delayed Preemption Emulation. More...

Go to the source code of this file.

Defines

#define CONFIG_LOG_DP   0
 Log delayed preemption calls.
#define CONFIG_LOG_TIMEOUT   1
 Log timeouts.
#define CONFIG_LOG_TO_KERN   1
 Log timeouts to Fiasco tracebuffer (1) or Log (0).

Functions

int l4cpu_dp_reserve_task (int *duration)
 Delayed Preemption: Reserve a duration for the whole task.
int l4cpu_dp_active (void)
 Return if DP is currently running.
int l4cpu_dp_begin (void)
 Delayed preemption: Start a delayed preemption

After making a dp reservation with l4cpu_dp_reserve_task(), a thread can start an uninterruptible execution. Calls to this function may be nested, and the last call to l4cpu_dp_end() actually leaves the uninterruptible section.

int l4cpu_dp_end (void)
 Delayed preemption: End a delayed preemption

When calling this function, and un-nesting all previous calls to l4cpu_dp_begin(), the thread may be preempted by the kernel again.


Variables

static int dp_duration
static volatile l4_int32_t preempt_counter
static volatile l4_cpu_time_t preempt_start
static l4thread_t thread = L4THREAD_INVALID_ID
static void * pc


Detailed Description

Delayed Preemption Emulation.

Date:
09/22/2004
Author:
Jork Loeser <jork.loeser@inf.tu-dresden.de>

Definition in file delayed_preempt.c.


Define Documentation

#define CONFIG_LOG_DP   0

Log delayed preemption calls.

Definition at line 22 of file delayed_preempt.c.

Referenced by l4cpu_dp_begin(), and l4cpu_dp_end().

#define CONFIG_LOG_TIMEOUT   1

Log timeouts.

Definition at line 25 of file delayed_preempt.c.

#define CONFIG_LOG_TO_KERN   1

Log timeouts to Fiasco tracebuffer (1) or Log (0).

Definition at line 28 of file delayed_preempt.c.

Referenced by l4cpu_dp_end().


Function Documentation

int l4cpu_dp_active ( void   ) 

Return if DP is currently running.

Definition at line 53 of file delayed_preempt.c.

References preempt_counter.


Variable Documentation

int dp_duration [static]

Definition at line 31 of file delayed_preempt.c.

Referenced by l4cpu_dp_end(), and l4cpu_dp_reserve_task().

void* pc [static]

Definition at line 37 of file delayed_preempt.c.

Referenced by l4cpu_dp_begin(), and l4cpu_dp_end().

volatile l4_int32_t preempt_counter [static]

Definition at line 32 of file delayed_preempt.c.

Referenced by l4cpu_dp_active(), l4cpu_dp_begin(), and l4cpu_dp_end().

volatile l4_cpu_time_t preempt_start [static]

Definition at line 33 of file delayed_preempt.c.

Referenced by l4cpu_dp_begin(), and l4cpu_dp_end().

l4thread_t thread = L4THREAD_INVALID_ID [static]


CPU reservation server Reference Manual, written by Jork Loeser  © 2004