FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
linux/include/linux/agpgart.h at multikernel-arm · multikernel/linux · GitHub
multikernel
/
linux
Public
forked from
torvalds/linux
Notifications
You must be signed in to change notification settings
Fork
15
Star
180
Code
Issues
27
Pull requests
5
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
linux
/
include
/
linux
/
agpgart.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
128 lines (113 loc) · 3.79 KB
Breadcrumbs
linux
/
include
/
linux
/
agpgart.h
Copy path
File metadata and controls
128 lines (113 loc) · 3.79 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*
* AGPGART module version 0.99
* Copyright (C) 1999 Jeff Hartmann
* Copyright (C) 1999 Precision Insight, Inc.
* Copyright (C) 1999 Xi Graphics, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*/
#ifndef
_AGP_H
#define
_AGP_H
1
#include
<linux/mutex.h>
#include
<linux/agp_backend.h>
#include
<uapi/linux/agpgart.h>
struct
agp_info
{
struct
agp_version
version
;
/* version of the driver */
u32
bridge_id
;
/* bridge vendor/device */
u32
agp_mode
;
/* mode info of bridge */
unsigned long
aper_base
;
/* base of aperture */
size_t
aper_size
;
/* size of aperture */
size_t
pg_total
;
/* max pages (swap + system) */
size_t
pg_system
;
/* max pages (system) */
size_t
pg_used
;
/* current pages used */
};
struct
agp_setup
{
u32
agp_mode
;
/* mode info of bridge */
};
/*
* The "prot" down below needs still a "sleep" flag somehow ...
*/
struct
agp_segment
{
off_t
pg_start
;
/* starting page to populate */
size_t
pg_count
;
/* number of pages */
int
prot
;
/* prot flags for mmap */
};
struct
agp_segment_priv
{
off_t
pg_start
;
size_t
pg_count
;
pgprot_t
prot
;
};
struct
agp_region
{
pid_t
pid
;
/* pid of process */
size_t
seg_count
;
/* number of segments */
struct
agp_segment
*
seg_list
;
};
struct
agp_allocate
{
int
key
;
/* tag of allocation */
size_t
pg_count
;
/* number of pages */
u32
type
;
/* 0 == normal, other devspec */
u32
physical
;
/* device specific (some devices
* need a phys address of the
* actual page behind the gatt
* table) */
};
struct
agp_bind
{
int
key
;
/* tag of allocation */
off_t
pg_start
;
/* starting page to populate */
};
struct
agp_unbind
{
int
key
;
/* tag of allocation */
u32
priority
;
/* priority for paging out */
};
struct
agp_client
{
struct
agp_client
*
next
;
struct
agp_client
*
prev
;
pid_t
pid
;
int
num_segments
;
struct
agp_segment_priv
*
*
segments
;
};
struct
agp_controller
{
struct
agp_controller
*
next
;
struct
agp_controller
*
prev
;
pid_t
pid
;
int
num_clients
;
struct
agp_memory
*
pool
;
struct
agp_client
*
clients
;
};
#define
AGP_FF_ALLOW_CLIENT
0
#define
AGP_FF_ALLOW_CONTROLLER
1
#define
AGP_FF_IS_CLIENT
2
#define
AGP_FF_IS_CONTROLLER
3
#define
AGP_FF_IS_VALID
4
struct
agp_file_private
{
struct
agp_file_private
*
next
;
struct
agp_file_private
*
prev
;
pid_t
my_pid
;
unsigned long
access_flags
;
/* long req'd for set_bit --RR */
};
struct
agp_front_data
{
struct
mutex
agp_mutex
;
struct
agp_controller
*
current_controller
;
struct
agp_controller
*
controllers
;
struct
agp_file_private
*
file_priv_list
;
bool
used_by_controller
;
bool
backend_acquired
;
};
#endif
/* _AGP_H */
Back
|
FazBrowse Home
|
New Git URL