00001
00002
00003
00004
00005
00006 #include <asm/bitops.h>
00007 #include <linux/config.h>
00008 #include <pfldef.h>
00009 #include <ssdef.h>
00010
00011 #ifdef CONFIG_VMS
00012
00013 extern int myswapfile;
00014
00015 int mmg_allocpagfil1(int size, int * page) {
00016
00017 struct _pfl * pfl = myswapfile;
00018 if (pfl==0)
00019 return 0;
00020 if (pfl->pfl_l_frepagcnt==0)
00021 return 0;
00022 int bit=find_next_zero_bit(pfl->pfl_l_bitmap,pfl->pfl$l_bitmapsiz<<3,0);
00023 #if 0
00024 if (bit==0)
00025 return 0;
00026 bit--;
00027 #endif
00028 set_bit(bit,pfl->pfl_l_bitmap);
00029 *page=bit;
00030 pfl->pfl_l_frepagcnt--;
00031 return SS__NORMAL;
00032 }
00033
00034 int mmg_dallocpagfil1(int page) {
00035
00036 struct _pfl * pfl = myswapfile;
00037 if (pfl==0)
00038 return 0;
00039 test_and_clear_bit(page,pfl->pfl_l_bitmap);
00040 pfl->pfl_l_frepagcnt++;
00041 return SS__NORMAL;
00042 }
00043
00044 #endif
00045