Back to index

libdrm  2.4.37
rbo.h
Go to the documentation of this file.
00001 /*
00002  * Copyright © 2011 Red Hat
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a
00005  * copy of this software and associated documentation files (the "Software"),
00006  * to deal in the Software without restriction, including without limitation
00007  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00008  * and/or sell copies of the Software, and to permit persons to whom the
00009  * Software is furnished to do so, subject to the following conditions:
00010  *
00011  * The above copyright notice and this permission notice (including the next
00012  * paragraph) shall be included in all copies or substantial portions of the
00013  * Software.
00014  *
00015  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00016  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00017  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00018  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00019  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00020  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
00021  * IN THE SOFTWARE.
00022  *
00023  * Authors:
00024  *    Jerome Glisse <j.glisse@gmail.com>
00025  */
00026 #ifndef RBO_H
00027 #define RBO_H
00028 
00029 #include "list.h"
00030 
00031 struct rbo {
00032     struct list_head    list;
00033     int                 fd;
00034     unsigned            refcount;
00035     unsigned            mapcount;
00036     unsigned            handle;
00037     unsigned            size;
00038     unsigned            alignment;
00039     void                *data;
00040 };
00041 
00042 struct rbo *rbo(int fd, unsigned handle, unsigned size,
00043                 unsigned alignment, void *ptr);
00044 int rbo_map(struct rbo *bo);
00045 void rbo_unmap(struct rbo *bo);
00046 struct rbo *rbo_incref(struct rbo *bo);
00047 struct rbo *rbo_decref(struct rbo *bo);
00048 int rbo_wait(struct rbo *bo);
00049 
00050 #endif