linux/drivers/char/agp/agp.h

/*
 * AGPGART
 * Copyright (C) 2004 Silicon Graphics, Inc.
 * Copyright (C) 2002-2004 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, 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_BACKEND_PRIV_H
#define _AGP_BACKEND_PRIV_H

#include <asm/agp.h>	/* for flush_agp_cache() */

#define PFX

//#define AGP_DEBUG 1
#ifdef AGP_DEBUG
#define DBG
#else
#define DBG(x,y...)
#endif

extern struct agp_bridge_data *agp_bridge;

enum aper_size_type {};

struct gatt_mask {};

#define AGP_PAGE_DESTROY_UNMAP
#define AGP_PAGE_DESTROY_FREE

struct aper_size_info_8 {};

struct aper_size_info_16 {};

struct aper_size_info_32 {};

struct aper_size_info_lvl2 {};

struct aper_size_info_fixed {};

struct agp_bridge_driver {};

struct agp_bridge_data {};

#define KB(x)
#define MB(x)
#define GB(x)

#define A_SIZE_8(x)
#define A_SIZE_16(x)
#define A_SIZE_32(x)
#define A_SIZE_LVL2(x)
#define A_SIZE_FIX(x)
#define A_IDX8(bridge)
#define A_IDX16(bridge)
#define A_IDX32(bridge)
#define MAXKEY

#define PGE_EMPTY(b, p)


struct agp_device_ids {};

/* Driver registration */
struct agp_bridge_data *agp_alloc_bridge(void);
void agp_put_bridge(struct agp_bridge_data *bridge);
int agp_add_bridge(struct agp_bridge_data *bridge);
void agp_remove_bridge(struct agp_bridge_data *bridge);

/* Generic routines. */
void agp_generic_enable(struct agp_bridge_data *bridge, u32 mode);
int agp_generic_create_gatt_table(struct agp_bridge_data *bridge);
int agp_generic_free_gatt_table(struct agp_bridge_data *bridge);
struct agp_memory *agp_create_memory(int scratch_pages);
int agp_generic_insert_memory(struct agp_memory *mem, off_t pg_start, int type);
int agp_generic_remove_memory(struct agp_memory *mem, off_t pg_start, int type);
struct agp_memory *agp_generic_alloc_by_type(size_t page_count, int type);
void agp_generic_free_by_type(struct agp_memory *curr);
struct page *agp_generic_alloc_page(struct agp_bridge_data *bridge);
int agp_generic_alloc_pages(struct agp_bridge_data *agp_bridge,
			    struct agp_memory *memory, size_t page_count);
void agp_generic_destroy_page(struct page *page, int flags);
void agp_generic_destroy_pages(struct agp_memory *memory);
void agp_free_key(int key);
int agp_num_entries(void);
u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 mode, u32 command);
void agp_device_command(u32 command, bool agp_v3);
int agp_3_5_enable(struct agp_bridge_data *bridge);
void global_cache_flush(void);
void get_agp_version(struct agp_bridge_data *bridge);
unsigned long agp_generic_mask_memory(struct agp_bridge_data *bridge,
				      dma_addr_t phys, int type);
int agp_generic_type_to_mask_type(struct agp_bridge_data *bridge,
				  int type);
struct agp_bridge_data *agp_generic_find_bridge(struct pci_dev *pdev);

/* generic functions for user-populated AGP memory types */
struct agp_memory *agp_generic_alloc_user(size_t page_count, int type);
void agp_alloc_page_array(size_t size, struct agp_memory *mem);
static inline void agp_free_page_array(struct agp_memory *mem)
{}


/* generic routines for agp>=3 */
int agp3_generic_fetch_size(void);
void agp3_generic_tlbflush(struct agp_memory *mem);
int agp3_generic_configure(void);
void agp3_generic_cleanup(void);

/* GATT allocation. Returns/accepts GATT kernel virtual address. */
#define alloc_gatt_pages(order)
#define free_gatt_pages(table, order)

/* aperture sizes have been standardised since v3 */
#define AGP_GENERIC_SIZES_ENTRIES
extern const struct aper_size_info_16 agp3_generic_sizes[];

extern int agp_off;
extern int agp_try_unsupported_boot;

long compat_agp_ioctl(struct file *file, unsigned int cmd, unsigned long arg);

/* Chipset independent registers (from AGP Spec) */
#define AGP_APBASE
#define AGP_APERTURE_BAR

#define AGPSTAT
#define AGPCMD
#define AGPNISTAT
#define AGPCTRL
#define AGPAPSIZE
#define AGPNEPG
#define AGPGARTLO
#define AGPGARTHI
#define AGPNICMD

#define AGP_MAJOR_VERSION_SHIFT
#define AGP_MINOR_VERSION_SHIFT

#define AGPSTAT_RQ_DEPTH
#define AGPSTAT_RQ_DEPTH_SHIFT

#define AGPSTAT_CAL_MASK
#define AGPSTAT_ARQSZ
#define AGPSTAT_ARQSZ_SHIFT

#define AGPSTAT_SBA
#define AGPSTAT_AGP_ENABLE
#define AGPSTAT_FW
#define AGPSTAT_MODE_3_0

#define AGPSTAT2_1X
#define AGPSTAT2_2X
#define AGPSTAT2_4X

#define AGPSTAT3_RSVD
#define AGPSTAT3_8X
#define AGPSTAT3_4X

#define AGPCTRL_APERENB
#define AGPCTRL_GTLBEN

#define AGP2_RESERVED_MASK
#define AGP3_RESERVED_MASK

#define AGP_ERRATA_FASTWRITES
#define AGP_ERRATA_SBA
#define AGP_ERRATA_1X

#endif	/* _AGP_BACKEND_PRIV_H */