#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().
1.5.5