Subversion Repositories Kolibri OS

Rev

Rev 5271 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5271 serge 1
#ifndef __DRM_LEGACY_H__
2
#define __DRM_LEGACY_H__
3
 
4
/*
5
 * Copyright (c) 2014 David Herrmann 
6
 *
7
 * Permission is hereby granted, free of charge, to any person obtaining a
8
 * copy of this software and associated documentation files (the "Software"),
9
 * to deal in the Software without restriction, including without limitation
10
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11
 * and/or sell copies of the Software, and to permit persons to whom the
12
 * Software is furnished to do so, subject to the following conditions:
13
 *
14
 * The above copyright notice and this permission notice shall be included in
15
 * all copies or substantial portions of the Software.
16
 *
17
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20
 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
21
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
 * OTHER DEALINGS IN THE SOFTWARE.
24
 */
25
 
26
/*
27
 * This file contains legacy interfaces that modern drm drivers
28
 * should no longer be using. They cannot be removed as legacy
29
 * drivers use them, and removing them are API breaks.
30
 */
31
#include 
32
#include 
33
 
34
struct agp_memory;
35
struct drm_device;
36
struct drm_file;
37
 
38
/*
39
 * Generic DRM Contexts
40
 */
41
 
42
#define DRM_KERNEL_CONTEXT		0
43
#define DRM_RESERVED_CONTEXTS		1
44
 
6084 serge 45
void drm_legacy_ctxbitmap_init(struct drm_device *dev);
5271 serge 46
void drm_legacy_ctxbitmap_cleanup(struct drm_device *dev);
47
void drm_legacy_ctxbitmap_free(struct drm_device *dev, int ctx_handle);
48
void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file);
49
 
50
int drm_legacy_resctx(struct drm_device *d, void *v, struct drm_file *f);
51
int drm_legacy_addctx(struct drm_device *d, void *v, struct drm_file *f);
52
int drm_legacy_getctx(struct drm_device *d, void *v, struct drm_file *f);
53
int drm_legacy_switchctx(struct drm_device *d, void *v, struct drm_file *f);
54
int drm_legacy_newctx(struct drm_device *d, void *v, struct drm_file *f);
55
int drm_legacy_rmctx(struct drm_device *d, void *v, struct drm_file *f);
56
 
57
int drm_legacy_setsareactx(struct drm_device *d, void *v, struct drm_file *f);
58
int drm_legacy_getsareactx(struct drm_device *d, void *v, struct drm_file *f);
59
 
60
/*
61
 * Generic Buffer Management
62
 */
63
 
64
#define DRM_MAP_HASH_OFFSET 0x10000000
65
 
66
int drm_legacy_addmap_ioctl(struct drm_device *d, void *v, struct drm_file *f);
67
int drm_legacy_rmmap_ioctl(struct drm_device *d, void *v, struct drm_file *f);
68
int drm_legacy_addbufs(struct drm_device *d, void *v, struct drm_file *f);
69
int drm_legacy_infobufs(struct drm_device *d, void *v, struct drm_file *f);
70
int drm_legacy_markbufs(struct drm_device *d, void *v, struct drm_file *f);
71
int drm_legacy_freebufs(struct drm_device *d, void *v, struct drm_file *f);
72
int drm_legacy_mapbufs(struct drm_device *d, void *v, struct drm_file *f);
73
int drm_legacy_dma_ioctl(struct drm_device *d, void *v, struct drm_file *f);
74
 
75
void drm_legacy_vma_flush(struct drm_device *d);
76
 
77
/*
78
 * AGP Support
79
 */
80
 
81
struct drm_agp_mem {
82
	unsigned long handle;
83
	struct agp_memory *memory;
84
	unsigned long bound;
85
	int pages;
86
	struct list_head head;
87
};
88
 
89
/*
90
 * Generic Userspace Locking-API
91
 */
92
 
93
int drm_legacy_i_have_hw_lock(struct drm_device *d, struct drm_file *f);
94
int drm_legacy_lock(struct drm_device *d, void *v, struct drm_file *f);
95
int drm_legacy_unlock(struct drm_device *d, void *v, struct drm_file *f);
96
int drm_legacy_lock_free(struct drm_lock_data *lock, unsigned int ctx);
97
 
98
/* DMA support */
99
int drm_legacy_dma_setup(struct drm_device *dev);
100
void drm_legacy_dma_takedown(struct drm_device *dev);
101
void drm_legacy_free_buffer(struct drm_device *dev,
102
			    struct drm_buf * buf);
103
void drm_legacy_reclaim_buffers(struct drm_device *dev,
104
				struct drm_file *filp);
105
 
106
/* Scatter Gather Support */
107
void drm_legacy_sg_cleanup(struct drm_device *dev);
108
int drm_legacy_sg_alloc(struct drm_device *dev, void *data,
109
			struct drm_file *file_priv);
110
int drm_legacy_sg_free(struct drm_device *dev, void *data,
111
		       struct drm_file *file_priv);
112
 
113
#endif /* __DRM_LEGACY_H__ */