00001
00002
00003
00004
00005
00006 #include <ssdef.h>
00007 #include <irpdef.h>
00008 #include <system_data_cells.h>
00009 #include <linux/sched.h>
00010 #include <linux/slab.h>
00011 #include <sch_routines.h>
00012
00013 int exe_std_writechk (struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb, void *buf, int bufsiz) {
00014
00015 if (bufsiz < 0) return SS__BADPARAM;
00016 irp->irp_l_bcnt=bufsiz;
00017 return SS__NORMAL;
00018 }
00019
00020 int exe_std_readchk (struct _irp *irp, struct _pcb *pcb, struct _ucb *ucb, void *buf, int bufsiz) {
00021
00022 if (bufsiz < 0) return SS__BADPARAM;
00023 irp->irp_l_bcnt=bufsiz;
00024 return SS__NORMAL;
00025 }
00026
00027 int exe_std_iorsnwait (struct _irp * irp, struct _pcb * pcb, struct _ucb * ucb, struct _ccb * ccb, int qio_sts, int rsn) {
00028 kfree(irp);
00029 pcb->pcb_l_efwm=rsn;
00030 sch_gl_resmask|=(1<<rsn);
00031 return sch_wait(pcb,sch$gq_mwait);
00032 }
00033