ftp.nice.ch/pub/next/developer/languages/c/djgpp-NS.s.tar.gz#/djgpp/go32/paging.h

This is paging.h in view mode; [Download] [Up]

/* This is file PAGING.H */
/*
** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
**
** This file is distributed under the terms listed in the document
** "copying.dj", available from DJ Delorie at the address above.
** A copy of "copying.dj" should accompany this file; if not, a copy
** should be available from where this file was obtained.  This file
** may not be distributed without a verbatim copy of "copying.dj".
**
** This file is distributed WITHOUT ANY WARRANTY; without even the implied
** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

#ifndef _PAGING_H_
#define _PAGING_H_

/* active if set */
#define PT_P	0x001	/* present (else not) */
#define PT_W	0x002	/* writable (else read-only) */
#define	PT_U	0x004	/* user mode (else kernel mode) */
#define PT_A	0x020	/* accessed (else not) */
#define PT_D	0x040	/* dirty (else clean) */
#define PT_I	0x200	/* Initialized (else not read from a.out file yet) */
#define PT_S	0x400	/* Swappable (else not) */
#define	PT_C	0x800	/* Candidate for swapping */

#define EMU_TEXT 0xb0000000L

/*  If not present and initialized, page is in swap file.
**  If not present and not initialized, page is in a.out file.
*/

void paging_set_file(char *fname);
word32 ptr2linear(void far *ptr);
word32 paging_brk(word32 b);
word32 paging_sbrk(int32 b);
word32 stack_used(void);
void clearDPMIstate(void);

int page_in(void);
unsigned page_out(int);
int page_is_valid(word32 vaddr);
void page_in_everything(void);
void page_out_everything(void);

int emu_install(char *filename); /* returns 1 if installed, 0 if not */
word32 emu_start_ip(void);

typedef struct AREAS {
  word32 first_addr;	/* in linear space, not program space */
  word32 last_addr;	/* in linear space, not program space */
  word32 foffset;	/* corresponding to first_addr; -1 = zero fill only */
  word16 fileno;	/* which file to get pages from */
  word16 filler;
  } AREAS;

typedef enum {
  A_text,
  A_data,
  A_bss,
  A_arena,
  A_stack,
  A_vga,
  A_syms,
  A_syms2,
  A_emu,
  A_max
} AREA_TYPES;
#define MAX_AREA        9
extern AREAS areas[MAX_AREA];

void loadAout(const AREAS* areas);

#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.