1f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu/*
2f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * Copyright 2007 Nouveau Project
3f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu *
4f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * Permission is hereby granted, free of charge, to any person obtaining a
5f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * copy of this software and associated documentation files (the "Software"),
6f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * to deal in the Software without restriction, including without limitation
7f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * and/or sell copies of the Software, and to permit persons to whom the
9f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * Software is furnished to do so, subject to the following conditions:
10f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu *
11f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * The above copyright notice and this permission notice shall be included in
12f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * all copies or substantial portions of the Software.
13f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu *
14f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
19f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu * SOFTWARE.
21f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu */
22f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
23f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu#ifndef __NOUVEAU_RESOURCE_H__
24f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu#define __NOUVEAU_RESOURCE_H__
25f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
26f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryustruct nouveau_resource {
27f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu	struct nouveau_resource *prev;
28f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu	struct nouveau_resource *next;
29f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
30f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu	int in_use;
31f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu	void *priv;
32f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
33f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu	unsigned int start;
34f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu	unsigned int size;
35f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu};
36f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
37f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryuint
38f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryunouveau_resource_init(struct nouveau_resource **heap, unsigned start,
39f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu		      unsigned size);
40f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
41f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryuint
42f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryunouveau_resource_alloc(struct nouveau_resource *heap, unsigned size, void *priv,
43f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu		       struct nouveau_resource **);
44f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
45f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryuvoid
46f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryunouveau_resource_free(struct nouveau_resource **);
47f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu
48f0352d4fde4ec179ffe04c3f834199d3bad36087Ho-Eun Ryu#endif
49