00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <system_data_cells.h>
00012 #include <ipldef.h>
00013 #include <ipl.h>
00014 #include <internals.h>
00015 #include <ssdef.h>
00016 #include <queue.h>
00017
00018 #include <linux/mm.h>
00019 #include <linux/slab.h>
00020
00021
00022
00023
00024
00025
00026
00027 void exe_instimq(struct _tqe * t) {
00028 static signed int times=-500;
00029 struct _tqe *tmp=exe_gl_tqfl->tqe$l_tqfl;
00030 int savipl=vmslock(&SPIN_TIMER,IPL__TIMER);
00031 #if 0
00032 times++;
00033 if (times>=0 && times<5) printk("%x %x %x\n",t,t->tqe_q_delta,t->tqe$q_time);
00034 if (times>=0 && times<5) printk("%x %x %x\n",exe_gl_tqfl,exe$gl_tqfl->tqe$q_delta,exe$gl_tqfl->tqe$q_time);
00035
00036 #endif
00037 while (tmp!=exe_gl_tqfl && t->tqe$q_time>tmp->tqe$q_time)
00038 tmp=tmp->tqe_l_tqfl;
00039
00040 insque(t,tmp->tqe_l_tqbl);
00041
00042 #if 0
00043 if (times>=0 && times<5) printk("%x %x %x\n",exe_gl_tqfl,exe$gl_tqfl->tqe$q_delta,exe$gl_tqfl->tqe$q_time);
00044 #endif
00045 vmsunlock(&SPIN_TIMER,savipl);
00046 }
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 void exe_std_rmvtimq(int acmode, int reqid, int remval, int ipid) {
00057
00058 struct _tqe *tmp=exe_gl_tqfl->tqe$l_tqfl,*next;
00059
00060 while (tmp && tmp!=exe_gl_tqfl) {
00061 next=tmp->tqe_l_tqfl;
00062 if (reqid && reqid==tmp->tqe_l_astprm) {
00063 remque(tmp,0);
00064 kfree(tmp);
00065 }
00066 if (ipid && ipid==tmp->tqe_l_pid) {
00067 if (tmp->tqe_b_rqtype==remval) {
00068 remque(tmp,0);
00069 kfree(tmp);
00070 }
00071 }
00072 tmp=next;
00073 cont:
00074 {
00075 }
00076 }
00077 }
00078
00079 int exe_std_chkrdacces (struct _arb *arb, struct _orb *orb, struct _pcb *pcb, struct _ucb *ucb) {
00080
00081 return SS__NORMAL;
00082 }
00083
00084 int exe_std_chkwrtacces (struct _arb *arb, struct _orb *orb, struct _pcb *pcb, struct _ucb *ucb) {
00085
00086 return SS__NORMAL;
00087 }
00088
00089 int exe_std_debit_bytcnt_alo(int debit, struct _pcb *pcb, int *alosize_p,void **pool_p) {
00090
00091 *pool_p=kmalloc(debit,GFP_KERNEL);
00092 return SS__NORMAL;
00093 }
00094
00095 int exe_prober_simple(void * addr) {
00096 char * p = addr;
00097 char c = * p;
00098 return c;
00099 }
00100