home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 October / VPR9710A.ISO / BENCH / DJ1SRC_K / 105 / PAGING.H < prev    next >
C/C++ Source or Header  |  1997-05-02  |  2KB  |  75 lines

  1. /* This is file PAGING.H */
  2. /*
  3.    ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
  4.    **
  5.    ** This file is distributed under the terms listed in the document
  6.    ** "copying.dj", available from DJ Delorie at the address above.
  7.    ** A copy of "copying.dj" should accompany this file; if not, a copy
  8.    ** should be available from where this file was obtained.  This file
  9.    ** may not be distributed without a verbatim copy of "copying.dj".
  10.    **
  11.    ** This file is distributed WITHOUT ANY WARRANTY; without even the implied
  12.    ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13.  */
  14. /* 1997/05/01 modified by Kimio Itoh(kitoh@nn.iij4u.or.jp) 
  15.    for reduce binary size and for dead code elimination.
  16.    and merged paging.h, valloc.h and dalloc.h
  17.  */
  18.  
  19. #ifndef _PAGING_H_
  20. #define _PAGING_H_
  21.  
  22. /* active if set */
  23. #define PT_P    0x001            /* present (else not) */
  24. #define PT_W    0x002            /* writable (else read-only) */
  25. #define    PT_U    0x004            /* user mode (else kernel mode) */
  26. #define PT_A    0x020            /* accessed (else not) */
  27. #define PT_D    0x040            /* dirty (else clean) */
  28. #define PT_I    0x200            /* Initialized (else not read from a.out file yet) */
  29. #define PT_S    0x400            /* Swappable (else not) */
  30. #define    PT_C    0x800            /* Candidate for swapping */
  31.  
  32. #define EMU_TEXT 0xb0000000L
  33.  
  34. /*  If not present and initialized, page is in swap file.
  35.    **  If not present and not initialized, page is in a.out file.
  36.  */
  37.  
  38. word32 __pascal paging_brk(word32 b);
  39. word32 paging_sbrk(int32 b);
  40. int __pascal page_is_valid(word32 vaddr);
  41. int page_in(void);
  42. void page_out_everything(void);
  43. void page_in_everything(void);
  44. void __pascal paging_set_file(char *fname);
  45.  
  46. int __fastcall emu_install(char *filename);        /* returns 1 if installed, 0 if not */
  47.  
  48. #endif
  49. /* This is file VALLOC.H */
  50. #ifndef _VALLOC_H_
  51. #define _VALLOC_H_
  52.  
  53. #define VA_640    0
  54. #define VA_1M    1
  55.  
  56. /*
  57.    ** These functions deal with page *numbers*
  58.    **  pn << 8  = segment number
  59.    **  pn << 12 = physical address
  60.    **  pn << 24 = seg:ofs
  61.  */
  62.  
  63. void xms_free(void);
  64.  
  65. extern int use_xms;
  66.  
  67. #endif
  68. /* This is file DALLOC.H */
  69. #ifndef _DALLOC_H_
  70. #define _DALLOC_H_
  71.  
  72. void dalloc_init(void);
  73. void dalloc_uninit(void);
  74. #endif
  75.