Main Page   Data Structures   File List   Data Fields   Globals   Related Pages  

include/critsec.h File Reference

Interface: critical section management. More...

#include <config.h>
#include <sys/tm.h>

Include dependency graph for critsec.h:

Go to the source code of this file.

Data Structures

struct  critsec
 critical section data structure. More...


Defines

#define __critsec_h__
#define initialize_critical_section(cs)   (cs)->count=0
 initialize critical section. More...

#define leave_critical_section(cs)   locked_decrement(&(cs)->count)
 leave critical section. More...

#define destroy_critical_section(cs)
 destroy critical section (does nothing). More...


Typedefs

typedef critsec critsec_t
 critical section type definition. More...


Functions

int locked_decrement (unsigned char *counter)
 decrement counter without interruption. More...

wakeup_t wait_critical_section (wakeup_t data)
 wakeup when critical section is available. More...

int enter_critical_section (critsec_t *cs)
 enter critical section. More...


Detailed Description

Interface: critical section management.

Author:
Joseph A. Woolley <jawoolley@users.sourceforge.net>
Defines types and functions to implement critical sections.

Definition in file critsec.h.


Define Documentation

#define __critsec_h__
 

Definition at line 29 of file critsec.h.

#define destroy_critical_section cs   
 

destroy critical section (does nothing).

currently there are no resources that are dynamically allocated.

Parameters:
cs  pointer to critical section (critsec_t)
See also:
initialize_critical_section , enter_critical_section , leave_critical_section

Definition at line 112 of file critsec.h.

#define initialize_critical_section cs       (cs)->count=0
 

initialize critical section.

sets count field of critical section to zero

Parameters:
cs  pointer to critical section (critsec_t)
Returns:
always 0
See also:
enter_critical_section , leave_critical_section , destroy_critical_section

Definition at line 80 of file critsec.h.

#define leave_critical_section cs       locked_decrement(&(cs)->count)
 

leave critical section.

allow other tasks to enter critical regions of code protected by this critical section.

Parameters:
cs  pointer to critical section (critsec_t)
Returns:
results of locked_decrement (always 0)
See also:
initialize_critical_section , enter_critical_section , destroy_critical_section

Definition at line 102 of file critsec.h.


Typedef Documentation

typedef struct critsec critsec_t
 

critical section type definition.

Definition at line 52 of file critsec.h.


Function Documentation

int enter_critical_section critsec_t   cs
 

enter critical section.

block other tasks if they attempt to enter a region of code protected by the same critical section.

Parameters:
cs  pointer to critical section (critsec_t)
Returns:
1 if successful, 0 if failure
See also:
initialize_critical_section , leave_critical_section , destroy_critical_section

int locked_decrement unsigned char *    counter
 

decrement counter without interruption.

locks interrupts except NMI, decrements count then restores interrupts.

Parameters:
counter  the counter resource to be decremented
Returns:
always 0 (currently)
See also:
locked_increment

wakeup_t wait_critical_section wakeup_t    data
 

wakeup when critical section is available.

wakeup function used to sleep a task until a critical section is available. called while processing an interrupt, so interrupts are already disabled.

Returns:
0 to continue waiting, non-zero to wakeup task.
See also:
enter_critical_section


brickOS is released under the Mozilla Public License.
Original code copyright 1998-2002 by the authors.

Generated on Tue Dec 10 00:09:01 2002 for brickOS C by doxygen 1.2.15