linux/drivers/char/agp/backend.c

/*
 * AGPGART driver backend routines.
 * Copyright (C) 2004 Silicon Graphics, Inc.
 * Copyright (C) 2002-2003 Dave Jones.
 * 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, DAVE JONES, 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.
 *
 * TODO:
 * - Allocate more than order 0 pages to avoid too much linear map splitting.
 */
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/pagemap.h>
#include <linux/miscdevice.h>
#include <linux/pm.h>
#include <linux/agp_backend.h>
#include <linux/agpgart.h>
#include <linux/vmalloc.h>
#include <asm/io.h>
#include "agp.h"

/* Due to XFree86 brain-damage, we can't go to 1.0 until they
 * fix some real stupidity. It's only by chance we can bump
 * past 0.99 at all due to some boolean logic error. */
#define AGPGART_VERSION_MAJOR
#define AGPGART_VERSION_MINOR
static const struct agp_version agp_current_version =;

struct agp_bridge_data *(*agp_find_bridge)(struct pci_dev *) =;

struct agp_bridge_data *agp_bridge;
LIST_HEAD();
EXPORT_SYMBOL();
EXPORT_SYMBOL();
EXPORT_SYMBOL();

/**
 *	agp_backend_acquire  -  attempt to acquire an agp backend.
 *	@pdev: the PCI device
 *
 */
struct agp_bridge_data *agp_backend_acquire(struct pci_dev *pdev)
{}
EXPORT_SYMBOL();


/**
 *	agp_backend_release  -  release the lock on the agp backend.
 *	@bridge: the AGP backend to release
 *
 *	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(struct agp_bridge_data *bridge)
{}
EXPORT_SYMBOL();


static const struct {} maxes_table[] =;

static int agp_find_max(void)
{}


static int agp_backend_initialize(struct agp_bridge_data *bridge)
{}

/* cannot be __exit b/c as it could be called from __init code */
static void agp_backend_cleanup(struct agp_bridge_data *bridge)
{}

/* When we remove the global variable agp_bridge from all drivers
 * then agp_alloc_bridge and agp_generic_find_bridge need to be updated
 */

struct agp_bridge_data *agp_alloc_bridge(void)
{}
EXPORT_SYMBOL();


void agp_put_bridge(struct agp_bridge_data *bridge)
{}
EXPORT_SYMBOL();


int agp_add_bridge(struct agp_bridge_data *bridge)
{}
EXPORT_SYMBOL_GPL();


void agp_remove_bridge(struct agp_bridge_data *bridge)
{}
EXPORT_SYMBOL_GPL();

int agp_off;
int agp_try_unsupported_boot;
EXPORT_SYMBOL();
EXPORT_SYMBOL();

static int __init agp_init(void)
{}

static void __exit agp_exit(void)
{}

#ifndef MODULE
static __init int agp_setup(char *s)
{}
__setup();
#endif

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS_MISCDEV();

module_init();
module_exit(agp_exit);