	ifnd LIBRARIES_VIRTUALMEM_I
LIBRARIES_VIRTUALMEM_I	SET	1

;
;  $VER: libraries/virtualmem.i 1.2 (7.8.1997)
;

	include "exec/types.i"

VIRTUALMEMNAME	macro
	dc.b "virtualmem.library",0
	even
		endm

VMEM_MINALLOC	equ	150

VMEMF_DONOTPAGE	equ	0
VMEMF_DONOTSWAP equ	1
VMEMF_PROTECT	equ	2

MKVF_VECMEMORY	equ	31

VMEMM_DONOTPAGE	equ	1<<VMEMF_DONOTPAGE
VMEMM_DONOTSWAP equ	1<<VMEMF_DONOTSWAP
VMEMM_PROTECT	equ	1<<VMEMF_PROTECT

MKVM_VECMEMORY	equ	1<<MKVF_VECMEMORY

	STRUCTURE VMemStat,0
	  ULONG vms_TotalBytes
	  ULONG vms_PagedBytes
	  ULONG vms_LockedBytes
	  ULONG vms_TotalObjects
	  ULONG vms_PagedObjects
	  ULONG vms_LockedObjects
	  ULONG vms_NextObject
	  LONG vms_SwapSize
          LABEL vms_SIZE

	STRUCTURE VMemPrefs,0
	  UBYTE vmp_Version
	  UBYTE vmp_pad_0
	  LONG vmp_SwapSize
	  LABEL vmp_SIZE

VMEMPREFS_VERSION	equ	1

;expects VirtualMemBase in a6
;trashes a0
LOCKVMEM	macro	; LOCKVMEM <from>[,to]
	move.l \0,a0
	jsr _LVOLockVMem(a6)
	ifnc '\1',''
	move.l d0,\1
	endc
	endm

;expects VirtualMemBase in a6
;trashes a0
UNLOCKVMEM	macro	; UNLOCKVMEM <from>
	move.l \0,a0
	jsr _LVOUnlockVMem(a6)
	endm

	endc
