sys/src/exception_init.c File Reference

misc important hairy system routines More...

#include <ssdef.h>
#include <starlet.h>
#include <iosbdef.h>
#include <exe_routines.h>
#include <misc_routines.h>
#include <linux/linkage.h>
#include <asm/unistd.h>
#include "../../starlet/src/sysdep.h"

Go to the source code of this file.

Functions

int exe_synch (unsigned int efn, struct _iosb *iosb)
 wait until event flag set and eventual iosb flag too - see 5.2 6.3.6.3
int exe_clrast (void)
 to be executed after lower mode asts
asmlinkage int exe_qio (unsigned int efn, unsigned short int chan, unsigned int func, struct _iosb *iosb, void(*astadr)(__unknown_params), long astprm, void *p1, long p2, long p3, long p4, long p5, long p6)
 initiating device action - see 5.2 21.6.1
asmlinkage int exe_qiow (unsigned int efn, unsigned short int chan, unsigned int func, struct _iosb *iosb, void(*astadr)(__unknown_params), long astprm, void *p1, long p2, long p3, long p4, long p5, long p6)
asmlinkage void exe_cmkrnl_not (int(*routine)(), int *args)
asmlinkage void exe_cmexec_not (int(*routine)(), int *args)


Detailed Description

misc important hairy system routines

Author:
Roar Thronęs

Definition in file exception_init.c.


Function Documentation

int exe_clrast ( void   ) 

to be executed after lower mode asts

Definition at line 47 of file exception_init.c.

References cmod_astexit().

asmlinkage void exe_cmexec_not ( int(*)()  routine,
int *  args 
)

Definition at line 274 of file exception_init.c.

asmlinkage void exe_cmkrnl_not ( int(*)()  routine,
int *  args 
)

Definition at line 266 of file exception_init.c.

asmlinkage int exe_qio ( unsigned int  efn,
unsigned short int  chan,
unsigned int  func,
struct _iosb iosb,
void(*)(__unknown_params)  astadr,
long  astprm,
void *  p1,
long  p2,
long  p3,
long  p4,
long  p5,
long  p6 
)

initiating device action - see 5.2 21.6.1

Parameters:
efn event flag
chan i/o channel
func function
iosb i/o status block
astadr ast routine
astprm ast parameter
p1-p6 

clear event flag

verify channel number TODO redo

access mode check - MISSING

access or deaccess pending in ccb_l_wind stuff - MISSING

device spooled stuff - MISSING

access check verify - MISSING

check fdt mask to get buffer or whatever type - MISSING TODO check

check func code legality - MISSING

some check for offline device - MISSING

if iosb nonzero check iosb writeable - TODO redo

raise ipl

check proc quota - MISSING

allocate irp

initialize irp

do not set bufio if function code does not say buffered - MISSING

set quota bit - MISSING

if astadr nonzero charge quota - MISSING

if ccb_l_wind nonzero store in irp - MISSING

ccb increase outstanding i/o count - MISSING

some more device access checks - MISSING

diagnostic buffer - MISSING

do preprocessing - MISSING TODO check it

TODO does it do one or more functions

call i/o function

invoke event flag poster

if error, do abortio - MISSING

Definition at line 250 of file sysqioreq.c.

Referenced by exe_qio_wrap().

asmlinkage int exe_qiow ( unsigned int  efn,
unsigned short int  chan,
unsigned int  func,
struct _iosb iosb,
void(*)(__unknown_params)  astadr,
long  astprm,
void *  p1,
long  p2,
long  p3,
long  p4,
long  p5,
long  p6 
)

int exe_synch ( unsigned int  efn,
struct _iosb iosb 
)

wait until event flag set and eventual iosb flag too - see 5.2 6.3.6.3

Parameters:
efn event flag number
iosb io status block

Definition at line 27 of file exception_init.c.

References exe_clref(), _iosb::iosb_w_status, SS__NORMAL, and sys_waitfr().

Referenced by exe_enqw(), exe_getdviw(), exe_getjpiw(), exe_getlkiw(), exe_getsyiw(), exe_qiow(), and sys_qiow().


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