00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <iodef.h>
00012 #include <irpdef.h>
00013 #include <ucbdef.h>
00014 #include <ccbdef.h>
00015 #include <linux/sched.h>
00016 #include <exe_routines.h>
00017
00018 int acp_std_access(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00019 return exe_qioacppkt(i,p,u);
00020 }
00021
00022 int acp_std_readblk(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00023
00024
00025
00026 int blocks;
00027 i->irp_l_sts|=IRP$M_FUNC;
00028 blocks=(i->irp_l_qio_p2+511)/512;
00029 i->irp_l_abcnt=0;
00030 i->irp_l_obcnt=i->irp$l_qio_p2;
00031 if (i->irp_v_fcode<IO$_LOGICAL)
00032 return exe_qiodrvpkt(i,p,u);
00033 else
00034 return exe_qioacppkt(i,p,u);
00035
00036 }
00037
00038 void acp_std_writeblk(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00039 int blocks;
00040 i->irp_l_sts|=IRP$M_FUNC;
00041 blocks=(i->irp_l_qio_p2+511)/512;
00042 i->irp_l_abcnt=0;
00043 i->irp_l_obcnt=i->irp$l_qio_p2;
00044 if (i->irp_v_fcode<IO$_LOGICAL)
00045 return exe_qiodrvpkt(i,p,u);
00046 else
00047 return exe_qioacppkt(i,p,u);
00048
00049 }
00050
00051 void acp_std_accessnet(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00052 }
00053
00054 void acp_std_deaccess(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00055 return exe_qioacppkt(i,p,u);
00056 }
00057
00058 void acp_std_modify(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00059 return exe_qioacppkt(i,p,u);
00060 }
00061
00062 void acp_std_mount(struct _irp * i, struct _pcb * p, struct _ucb * u, struct _ccb * c) {
00063 return exe_qioacppkt(i,p,u);
00064 }
00065
00066
00067
00068