Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
9424f367
Commit
9424f367
authored
Apr 25, 2003
by
Dave Jones
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AGPGART] Move function description comments from headers to the code they document.
parent
b1b90ea8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
136 deletions
+90
-136
drivers/char/agp/backend.c
drivers/char/agp/backend.c
+16
-0
drivers/char/agp/generic.c
drivers/char/agp/generic.c
+64
-9
include/linux/agp_backend.h
include/linux/agp_backend.h
+10
-127
No files found.
drivers/char/agp/backend.c
View file @
9424f367
...
...
@@ -48,6 +48,14 @@ struct agp_bridge_data agp_bridge_dummy = { .type = NOT_SUPPORTED };
struct
agp_bridge_data
*
agp_bridge
=
&
agp_bridge_dummy
;
EXPORT_SYMBOL
(
agp_bridge
);
/*
* agp_backend_acquire :
*
* This Function attempts to acquire the agp backend.
*
* returns -EBUSY if agp is in use,
* returns 0 if the caller owns the agp backend
*/
int
agp_backend_acquire
(
void
)
{
if
(
agp_bridge
->
type
==
NOT_SUPPORTED
)
...
...
@@ -60,6 +68,14 @@ int agp_backend_acquire(void)
return
0
;
}
/*
* agp_backend_release :
*
* This Function releases the lock on the agp backend.
*
* The caller must insure that the graphics aperture translation table is read for use
* by another entity. (Ensure that all memory it bound is unbound.)
*/
void
agp_backend_release
(
void
)
{
if
(
agp_bridge
->
type
==
NOT_SUPPORTED
)
...
...
drivers/char/agp/generic.c
View file @
9424f367
...
...
@@ -98,7 +98,15 @@ agp_memory *agp_create_memory(int scratch_pages)
}
EXPORT_SYMBOL
(
agp_create_memory
);
/*
* agp_free_memory :
*
* This function frees memory associated with an agp_memory pointer.
* It is the only function that can be called when the backend is not owned
* by the caller. (So it can free memory on client death.)
*
* It takes an agp_memory pointer as an argument.
*/
void
agp_free_memory
(
agp_memory
*
curr
)
{
size_t
i
;
...
...
@@ -126,7 +134,18 @@ EXPORT_SYMBOL(agp_free_memory);
#define ENTRIES_PER_PAGE (PAGE_SIZE / sizeof(unsigned long))
/*
* agp_allocate_memory :
*
* This function allocates a group of pages of a certain type.
*
* It takes a size_t argument of the number of pages, and an u32 argument of
* the type of memory to be allocated.
* Every agp bridge device will allow you to allocate AGP_NORMAL_MEMORY which
* maps to physical ram. Any other type is device dependent.
*
* It returns NULL whenever memory is unavailable.
*/
agp_memory
*
agp_allocate_memory
(
size_t
page_count
,
u32
type
)
{
int
scratch_pages
;
...
...
@@ -243,7 +262,15 @@ int agp_num_entries(void)
EXPORT_SYMBOL_GPL
(
agp_num_entries
);
/* Routine to copy over information structure */
/*
* agp_copy_info :
*
* This function copies information about the agp bridge device and the state of
* the agp backend into an agp_kern_info pointer.
*
* It takes an agp_kern_info pointer as an argument. The caller should insure
* that this pointer is valid.
*/
int
agp_copy_info
(
agp_kern_info
*
info
)
{
memset
(
info
,
0
,
sizeof
(
agp_kern_info
));
...
...
@@ -277,6 +304,18 @@ EXPORT_SYMBOL(agp_copy_info);
* They call device specific routines to actually write to the GATT.
*/
/*
* agp_bind_memory :
*
* This function binds an agp_memory structure into the graphics aperture
* translation table (GATT).
*
* It takes an agp_memory pointer and an offset into the graphics aperture
* translation table as arguments
*
* It returns -EINVAL if the pointer == NULL.
* It returns -EBUSY if the area of the table requested is already in use.
*/
int
agp_bind_memory
(
agp_memory
*
curr
,
off_t
pg_start
)
{
int
ret_val
;
...
...
@@ -301,6 +340,17 @@ int agp_bind_memory(agp_memory * curr, off_t pg_start)
EXPORT_SYMBOL
(
agp_bind_memory
);
/*
* agp_unbind_memory :
*
* This function removes an agp_memory structure from the graphics aperture
* translation table.
*
* It takes an agp_memory pointer as an argument.
*
* It returns -EINVAL if this piece of agp_memory is not currently bound to
* the graphics aperture translation table or if the agp_memory pointer == NULL
*/
int
agp_unbind_memory
(
agp_memory
*
curr
)
{
int
ret_val
;
...
...
@@ -608,8 +658,7 @@ int agp_generic_free_gatt_table(void)
/* Do not worry about freeing memory, because if this is
* called, then all agp memory is deallocated and removed
* from the table.
*/
* from the table. */
iounmap
(
agp_bridge
->
gatt_table
);
table
=
(
char
*
)
agp_bridge
->
gatt_table_real
;
...
...
@@ -732,10 +781,8 @@ EXPORT_SYMBOL(agp_generic_free_by_type);
/*
* Basic Page Allocation Routines -
* These routines handle page allocation
* and by default they reserve the allocated
* memory. They also handle incrementing the
* current_memory_agp value, Which is checked
* These routines handle page allocation and by default they reserve the allocated
* memory. They also handle incrementing the current_memory_agp value, Which is checked
* against a maximum value.
*/
...
...
@@ -775,6 +822,14 @@ EXPORT_SYMBOL(agp_generic_destroy_page);
/* End Basic Page Allocation Routines */
/*
* agp_enable :
*
* This function initializes the agp point-to-point connection.
*
* It takes an agp mode register as an argument
*/
void
agp_enable
(
u32
mode
)
{
if
(
agp_bridge
->
type
==
NOT_SUPPORTED
)
...
...
include/linux/agp_backend.h
View file @
9424f367
/*
* AGPGART module version 0.99
* AGPGART module version 0.100
* Copyright (C) 2002-2003 Dave Jones
* Copyright (C) 1999 Jeff Hartmann
* Copyright (C) 1999 Precision Insight, Inc.
* Copyright (C) 1999 Xi Graphics, Inc.
...
...
@@ -71,16 +72,11 @@ typedef struct _agp_kern_info {
}
agp_kern_info
;
/*
* The agp_memory structure has information
* about the block of agp memory allocated.
* A caller may manipulate the next and prev
* pointers to link each allocated item into
* a list. These pointers are ignored by the
* backend. Everything else should never be
* written to, but the caller may read any of
* the items to detrimine the status of this
* block of agp memory.
*
* The agp_memory structure has information about the block of agp memory
* allocated. A caller may manipulate the next and prev pointers to link
* each allocated item into a list. These pointers are ignored by the backend.
* Everything else should never be written to, but the caller may read any of
* the items to detrimine the status of this block of agp memory.
*/
typedef
struct
_agp_memory
{
...
...
@@ -100,126 +96,19 @@ typedef struct _agp_memory {
#define AGP_NORMAL_MEMORY 0
extern
void
agp_free_memory
(
agp_memory
*
);
/*
* agp_free_memory :
*
* This function frees memory associated with
* an agp_memory pointer. It is the only function
* that can be called when the backend is not owned
* by the caller. (So it can free memory on client
* death.)
*
* It takes an agp_memory pointer as an argument.
*
*/
extern
agp_memory
*
agp_allocate_memory
(
size_t
,
u32
);
/*
* agp_allocate_memory :
*
* This function allocates a group of pages of
* a certain type.
*
* It takes a size_t argument of the number of pages, and
* an u32 argument of the type of memory to be allocated.
* Every agp bridge device will allow you to allocate
* AGP_NORMAL_MEMORY which maps to physical ram. Any other
* type is device dependent.
*
* It returns NULL whenever memory is unavailable.
*
*/
extern
int
agp_copy_info
(
agp_kern_info
*
);
/*
* agp_copy_info :
*
* This function copies information about the
* agp bridge device and the state of the agp
* backend into an agp_kern_info pointer.
*
* It takes an agp_kern_info pointer as an
* argument. The caller should insure that
* this pointer is valid.
*
*/
extern
int
agp_bind_memory
(
agp_memory
*
,
off_t
);
/*
* agp_bind_memory :
*
* This function binds an agp_memory structure
* into the graphics aperture translation table.
*
* It takes an agp_memory pointer and an offset into
* the graphics aperture translation table as arguments
*
* It returns -EINVAL if the pointer == NULL.
* It returns -EBUSY if the area of the table
* requested is already in use.
*
*/
extern
int
agp_unbind_memory
(
agp_memory
*
);
/*
* agp_unbind_memory :
*
* This function removes an agp_memory structure
* from the graphics aperture translation table.
*
* It takes an agp_memory pointer as an argument.
*
* It returns -EINVAL if this piece of agp_memory
* is not currently bound to the graphics aperture
* translation table or if the agp_memory
* pointer == NULL
*
*/
extern
void
agp_enable
(
u32
);
/*
* agp_enable :
*
* This function initializes the agp point-to-point
* connection.
*
* It takes an agp mode register as an argument
*
*/
extern
int
agp_backend_acquire
(
void
);
/*
* agp_backend_acquire :
*
* This Function attempts to acquire the agp
* backend.
*
* returns -EBUSY if agp is in use,
* returns 0 if the caller owns the agp backend
*/
extern
void
agp_backend_release
(
void
);
/*
* agp_backend_release :
*
* This Function releases the lock on the agp
* backend.
*
* The caller must insure that the graphics
* aperture translation table is read for use
* by another entity. (Ensure that all memory
* it bound is unbound.)
*
* Interface between drm and agp code. When agp initializes, it makes
* the below structure available via inter_module_register(), drm might
* use it. Keith Owens <kaos@ocs.com.au> 28 Oct 2000.
*/
typedef
struct
{
void
(
*
free_memory
)(
agp_memory
*
);
agp_memory
*
(
*
allocate_memory
)(
size_t
,
u32
);
...
...
@@ -233,10 +122,4 @@ typedef struct {
extern
const
drm_agp_t
*
drm_agp_p
;
/*
* Interface between drm and agp code. When agp initializes, it makes
* the above structure available via inter_module_register(), drm might
* use it. Keith Owens <kaos@ocs.com.au> 28 Oct 2000.
*/
#endif
/* _AGP_BACKEND_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment