/* Copyright 1999-2002 Johan Rydberg, jrydberg@rtmk.org. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __pager_extern_h #define __pager_extern_h 1 /* Supply the kernel with data for OBJECT. OFFSET is the offset into the object. ADDRESS points to the data in current tasks address space. SIZE is the amount of data that user supplys. If DEALLOC_P is true, the region [ADDRESS, ADDRESS+SIZE) is deallocated. LOCK_VALUE specifes locking of pages. If PRECIOUS_P is true, the page is flushed back to the pager before destroyed. */ void memory_object_data_supply (struct ipc_port *pager_request, vm_offset_t offset, vm_offset_t address, vm_size_t size, int dealloc_p, vm_prot_t lock_value, int precious_p); /* Make region [OFFSET, OFFSET+SIZE) of memory object PAGER_REQUEST unavailable. Unavailable pages will be zero-filled. */ void memory_object_data_unavail (struct ipc_port *pager_request, vm_offset_t offset, vm_size_t size); /* Set attributes for PAGER_REQUEST. Announce object as ready if READY_P is true. If CACHE_P is true, the object can persist. COPY_STRATEGY specifices copy strategy for object. */ kern_return_t memory_object_set_attributes (struct ipc_port *pager_request, int ready_p, int cache_p, int copy_strategy); /* Change attributes for PAGER_REQUEST. If CACHE_P is true, the object can persist. COPY_STRATEGY specifies copy strategy for object. ??? should we send reply? */ kern_return_t memory_object_change_attributes (struct ipc_port *pager_request, int cache_p, int copy_strategy); #endif /* pager-extern.h */