#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) |
Definition in file exception_init.c.
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
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 | |||
) |
Definition at line 215 of file sysqioreq.c.
Referenced by block_read_full_page2(), block_read_full_page3(), bread(), exe_qiow_wrap(), and generic_direct_IO().
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
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().