00001
00002
00003
00004
00005
00006 #include<linux/linkage.h>
00007 #include<linux/sched.h>
00008 #include <linux/vmalloc.h>
00009 #include <system_data_cells.h>
00010 #include<descrip.h>
00011 #include<gsddef.h>
00012 #include<ipldef.h>
00013 #include<phddef.h>
00014 #include<rdedef.h>
00015 #include<secdef.h>
00016 #include<seciddef.h>
00017 #include<va_rangedef.h>
00018 #include<wsldef.h>
00019
00020
00021
00022
00023
00024 int mmg_vfysecflg(void) {
00025
00026 }
00027
00028 int exe_dgblsc(void) {
00029
00030 }
00031
00032 mmg_gsdscn(void * input_gsnam, unsigned long long * input_ident, int section_flags, char *return_gsnam, unsigned long long *return_ident, struct _gsd **gsd) {
00033 struct _pcb * p = ctl_gl_pcb;
00034 struct _gsd * head, * tmp;
00035 struct dsc_descriptor * dsc = input_gsnam;
00036 if (section_flags&SEC_M_SYSGBL) {
00037 head=&exe_gl_gsdsysfl;
00038 } else {
00039 head=&exe_gl_gsdgrpfl;
00040 }
00041 for (tmp=head->gsd_l_gsdfl;tmp!=head;tmp=tmp->gsd$l_gsdfl) {
00042 if (section_flags&SEC_M_SYSGBL) {} else {
00043 if (p->pcb_l_uic!=tmp->gsd$l_pcbuic) {
00044 goto end;
00045 }
00046 }
00047 if (0!=strncmp(*(char**)&tmp->gsd_t_gsdnam,dsc->dsc$a_pointer,dsc->dsc$w_length)) {
00048 goto end;
00049 }
00050
00051 #if 0
00052
00053 if (tmp->gsd_l_ident->secid$l_version!=((struct _secid *)input_ident)->secid$l_version) {
00054 goto end;
00055 }
00056 #endif
00057
00058 if (gsd) *gsd=tmp;
00059 return;
00060
00061 end:
00062 {
00063 }
00064 }
00065 if (gsd) *gsd=0;
00066 return 0;
00067 }
00068