sys/src/syswait.c File Reference

wait for event More...

#include <linux/sched.h>
#include <linux/smp.h>
#include <cebdef.h>
#include <cpudef.h>
#include <ipldef.h>
#include <ssdef.h>
#include <system_data_cells.h>
#include <misc_routines.h>
#include <sch_routines.h>
#include <ipl.h>
#include <internals.h>
#include <queue.h>

Go to the source code of this file.

Functions

int exe_wait (unsigned int efn, unsigned int mask, int waitallflag, void *dummy)
 waiting for av event flag - See 5.2 9.6
int exe_waitfr (unsigned int efn)
int exe_wflor (unsigned int efn, unsigned int mask)
int exe_wfland (unsigned int efn, unsigned int mask)


Detailed Description

wait for event

Author:
Roar Thronęs

Definition in file syswait.c.


Function Documentation

int exe_wait ( unsigned int  efn,
unsigned int  mask,
int  waitallflag,
void *  dummy 
)

waiting for av event flag - See 5.2 9.6

Most is implemented, but not some waitqueues, due to some forgotten problems. Must verify that common event flags works properly. Also something in the top of exe_wait modifies the return stack.

Parameters:
efn event flag number
mask event flag mask
waitallflag should wait for all set in mask
dummy for the stack return address change

set ipl 2

legal efn check

determine event flag cluster

test if common event flag and existance

sched spinlock

find waitqueue

if the wait condition is not satisfied

unlock sched

if the wait condition is satisfied

handle waitall flag

TODO: check if waitall and mask is handled right

handle waitall set sts flag

TODO: check if this insque still has problems. should it be here

if unsatisfied, fix the return address

jump sch_wait

Definition at line 35 of file syswait.c.

References _pcb, _ceb::ceb_l_wqfl, ctl_gl_pcb, fixup_hib_pc(), getefc(), getefcp(), IPL__ASTDEL, IPL__SCHED, sch_gq_lefwq, sch_wait(), SPIN_SCHED, SS__ILLEFC, SS__NORMAL, SS__UNASEFC, and _wqh::wqh_l_wqfl.

Referenced by exe_waitfr(), exe_wfland(), and exe_wflor().

int exe_waitfr ( unsigned int  efn  ) 

Definition at line 117 of file syswait.c.

References exe_wait().

int exe_wfland ( unsigned int  efn,
unsigned int  mask 
)

Definition at line 125 of file syswait.c.

References exe_wait().

int exe_wflor ( unsigned int  efn,
unsigned int  mask 
)

Definition at line 121 of file syswait.c.

References exe_wait().


Generated on Fri Oct 9 10:26:05 2009 for FreeVMS by  doxygen 1.5.5