Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

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