www.pudn.com > sdio-2.6.18-full.rar > hif_internal.h
/* * Copyright (c) 2004-2006 Atheros Communications Inc. * All rights reserved. * $ATH_LICENSE_AR6K0$ * */ #include#include #include #include #include "../include/athdefs.h" #include "../include/athtypes.h" #include "../include/osapi.h" #include "../include/hif.h" #define MANUFACTURER_ID_BASE 0x100 #define FUNCTION_CLASS 0x0 #define MANUFACTURER_CODE 0x271 #define BUS_REQUEST_MAX_NUM 32 #define SDIO_CLOCK_FREQUENCY_DEFAULT 24000000 #define SDIO_CLOCK_FREQUENCY_REDUCED 12000000 #define SDWLAN_ENABLE_DISABLE_TIMEOUT 20 #define FLAGS_CARD_ENAB 0x02 #define FLAGS_CARD_IRQ_UNMSK 0x04 #define HIF_MBOX_BLOCK_SIZE 128 #define HIF_MBOX_BASE_ADDR 0x800 #define HIF_MBOX_WIDTH 0x800 #define HIF_MBOX0_BLOCK_SIZE 1 #define HIF_MBOX1_BLOCK_SIZE HIF_MBOX_BLOCK_SIZE #define HIF_MBOX2_BLOCK_SIZE HIF_MBOX_BLOCK_SIZE #define HIF_MBOX3_BLOCK_SIZE HIF_MBOX_BLOCK_SIZE #define HIF_MBOX_START_ADDR(mbox) \ HIF_MBOX_BASE_ADDR + mbox * HIF_MBOX_WIDTH #define HIF_MBOX_END_ADDR(mbox) \ HIF_MBOX_START_ADDR(mbox) + HIF_MBOX_WIDTH - 1 struct hif_device { SDDEVICE *handle; }; typedef struct target_function_context { SDFUNCTION function; /* function description of the bus driver */ OS_SEMAPHORE instanceSem; /* instance lock. Unused */ SDLIST instanceList; /* list of instances. Unused */ } TARGET_FUNCTION_CONTEXT; typedef struct bus_request { A_BOOL free; SDREQUEST *request; } BUS_REQUEST; BOOL hifDeviceInserted(SDFUNCTION *function, SDDEVICE *device); void hifDeviceRemoved(SDFUNCTION *function, SDDEVICE *device); SDREQUEST * hifAllocateDeviceRequest(SDDEVICE *device); void hifFreeDeviceRequest(SDREQUEST *request); void hifRWCompletionHandler(SDREQUEST *request); void hifIRQHandler(void *context); HIF_DEVICE * addHifDevice(SDDEVICE *handle); HIF_DEVICE * getHifDevice(SDDEVICE *handle); void delHifDevice(SDDEVICE *handle);