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