1251881Speter/*
2251881Speter * Copyright (c) 2009 Apple Inc. All rights reserved.
3251881Speter *
4251881Speter * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5251881Speter *
6251881Speter * This file contains Original Code and/or Modifications of Original Code
7251881Speter * as defined in and that are subject to the Apple Public Source License
8251881Speter * Version 2.0 (the 'License'). You may not use this file except in
9251881Speter * compliance with the License. The rights granted to you under the License
10251881Speter * may not be used to create, or enable the creation or redistribution of,
11251881Speter * unlawful or unlicensed copies of an Apple operating system, or to
12251881Speter * circumvent, violate, or enable the circumvention or violation of, any
13251881Speter * terms of an Apple operating system software license agreement.
14251881Speter *
15251881Speter * Please obtain a copy of the License at
16251881Speter * http://www.opensource.apple.com/apsl/ and read it before using this file.
17251881Speter *
18251881Speter * The Original Code and all software distributed under the License are
19251881Speter * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20251881Speter * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21251881Speter * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22251881Speter * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23251881Speter * Please see the License for the specific language governing rights and
24251881Speter * limitations under the License.
25251881Speter *
26251881Speter * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27251881Speter */
28251881Speter
29251881Speter#ifndef _VM_VM_MAP_STORE_H_RB
30251881Speter#define _VM_VM_MAP_STORE_H_RB
31251881Speter
32251881Speter#include <vm/vm_map_store.h>
33251881Speter
34251881SpeterRB_PROTOTYPE_SC(__private_extern__, rb_head, vm_map_store, entry, rb_node_compare);
35251881Speter
36251881Spetervoid vm_map_store_init_rb( struct vm_map_header*  );
37251881Speterint rb_node_compare(struct vm_map_store *, struct vm_map_store *);
38251881Spetervoid vm_map_store_walk_rb( struct _vm_map*, struct vm_map_entry**, struct vm_map_entry**);
39251881Speterboolean_t vm_map_store_lookup_entry_rb( struct _vm_map*, vm_map_offset_t, struct vm_map_entry**);
40251881Spetervoid 	vm_map_store_entry_link_rb( struct vm_map_header*, struct vm_map_entry*, struct vm_map_entry*);
41251881Spetervoid	vm_map_store_entry_unlink_rb( struct vm_map_header*, struct vm_map_entry*);
42251881Spetervoid	vm_map_store_copy_insert_rb( struct _vm_map*, struct vm_map_entry*, struct vm_map_copy*);
43251881Spetervoid	vm_map_store_copy_reset_rb( struct vm_map_copy*, struct vm_map_entry*, int);
44251881Spetervoid	update_first_free_rb(struct _vm_map*, struct vm_map_entry*);
45251881Speter
46251881Speter#endif /* _VM_VM_MAP_STORE_RB_H */
47251881Speter