www.pudn.com > sdio-2.6.18-full.rar > ar6000_cs_internal.h


/*
 * Copyright (c) 2004-2006 Atheros Communications Inc.
 *
 *  Wireless Network driver for Atheros AR6001
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation;
 *
 *  Software distributed under the License is distributed on an "AS
 *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 *  implied. See the License for the specific language governing
 *  rights and limitations under the License.
 *
 *
 */
#ifndef _AR6000_CS_INTERNAL_H_
#define _AR6000_CS_INTERNAL_H_

#include "ar6000_cs.h"

/* Device structure maintained for each instance of the device
* in the driver.
*/
typedef struct _CFDEVICE_ {

	PCFFUNCTION pFunction; //Upper layer driver supporting this device.
	CF_PNP_INFO pId; // PNP Info for this device.
	void (*pIrqFunction)(void * pContext, A_BOOL *callDSR);/* interrupt routine, synchronous calls allowed */
    void * IrqContext;         /* irq context */
	struct tasklet_struct tasklet;

	A_UINT32 mem_start;
	A_UINT32 mem_end;
	A_UINT8 irq;

	void * backPtr; /* backptr to dev_link_t struct */

} CF_DEVICE;

struct ar6000_pccard {
	dev_link_t link;
	dev_node_t node;

	CF_DEVICE CfDevice;//ref. to the CFDevice structure for this device.
#ifdef POLLED_MODE
	struct timer_list poll_timer;
#endif
};

#ifdef KERNEL_2_4
typedef void irqreturn_t;
#define IRQ_NONE
#define IRQ_HANDLED
#endif

static void insert_dev_list(struct ar6000_pccard *);
static struct dev_link_t * remove_dev_list(struct ar6000_pccard *);
static void insert_drv_list(PCFFUNCTION);
static PCFFUNCTION remove_drv_list(PCFFUNCTION);

#endif //_AR6000_CS_INTERNAL_H_