/************************************************************************** * * Copyright (c) 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA * All Rights Reserved. * Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA * All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. * **************************************************************************/ /* * Authors: Thomas Hellstrom */ #ifndef _TTM_USEROBJ_API_H_ #define _TTM_USEROBJ_API_H_ #include "psb_ttm_placement_user.h" #include "psb_ttm_fence_user.h" #include "ttm/ttm_object.h" #include "psb_ttm_fence_api.h" #include "ttm/ttm_bo_api.h" struct ttm_lock; /* * User ioctls. */ extern int ttm_pl_create_ioctl(struct ttm_object_file *tfile, struct ttm_bo_device *bdev, struct ttm_lock *lock, void *data); extern int ttm_pl_ub_create_ioctl(struct ttm_object_file *tfile, struct ttm_bo_device *bdev, struct ttm_lock *lock, void *data); extern int ttm_pl_reference_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_pl_unref_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_pl_synccpu_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_pl_setstatus_ioctl(struct ttm_object_file *tfile, struct ttm_lock *lock, void *data); extern int ttm_pl_waitidle_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_fence_signaled_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_fence_finish_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_fence_unref_ioctl(struct ttm_object_file *tfile, void *data); extern int ttm_fence_user_create(struct ttm_fence_device *fdev, struct ttm_object_file *tfile, uint32_t fence_class, uint32_t fence_types, uint32_t create_flags, struct ttm_fence_object **fence, uint32_t * user_handle); extern struct ttm_buffer_object *ttm_buffer_object_lookup(struct ttm_object_file *tfile, uint32_t handle); extern int ttm_pl_verify_access(struct ttm_buffer_object *bo, struct ttm_object_file *tfile); extern int ttm_buffer_object_create(struct ttm_bo_device *bdev, unsigned long size, enum ttm_bo_type type, uint32_t flags, uint32_t page_alignment, unsigned long buffer_start, bool interruptible, struct file *persistant_swap_storage, struct ttm_buffer_object **p_bo); extern int psb_ttm_bo_check_placement(struct ttm_buffer_object *bo, struct ttm_placement *placement); #endif