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


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@file: sdio_memory_linux.h

@abstract: OS dependent include memory card function driver

#notes:

@notice: Copyright (c), 2004 Atheros Communications, Inc.
 *
 *  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.
 *
 *  Portions o this code were developed with information supplied from the
 *  SD Card Association Simplified Specifications. The following conditions and disclaimers may apply:
 *
 *   The following conditions apply to the release of the SD simplified specification (“Simplified
 *   Specification”) by the SD Card Association. The Simplified Specification is a subset of the complete
 *   SD Specification which is owned by the SD Card Association. This Simplified Specification is provided
 *   on a non-confidential basis subject to the disclaimers below. Any implementation of the Simplified
 *   Specification may require a license from the SD Card Association or other third parties.
 *   Disclaimers:
 *   The information contained in the Simplified Specification is presented only as a standard
 *   specification for SD Cards and SD Host/Ancillary products and is provided "AS-IS" without any
 *   representations or warranties of any kind. No responsibility is assumed by the SD Card Association for
 *   any damages, any infringements of patents or other right of the SD Card Association or any third
 *   parties, which may result from its use. No license is granted by implication, estoppel or otherwise
 *   under any patent or other rights of the SD Card Association or any third party. Nothing herein shall
 *   be construed as an obligation by the SD Card Association to disclose or distribute any technical
 *   information, know-how or other confidential information to any third party.
 *
 *
 *  The initial developers of the original code are Seung Yi and Paul Lever
 *
 *  sdio@atheros.com
 *
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#ifndef __SDIO_MEMORY_LINUX_H___
#define __SDIO_MEMORY_LINUX_H___



#define SDIO_MEMORY_BASE "sdmem"
#define SDIO_MEMORY_MAX_DEVICES 4
#define SDIO_MEMORY_MAJOR 0
//??#define SDIO_MEMORY_MAX_MINOR 4
#define SDIO_MEMORY_MAX_PARTITIONS 8
/* sector size is aribtary and matchs the Linux requests */
//??#define SDIO_MEMORY_SECTOR_SIZE 512

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
typedef sector_t SDSECTOR_SIZE;
#else
/* 2.4 */
typedef unsigned long SDSECTOR_SIZE;
#endif
/* driver configuration */
typedef struct _SDMEMORY_DRIVER_CONFIG {
    int     Major;              /* device's major number */
    struct device *pDevice;     /* the parent device we are on*/
}SDMEMORY_DRIVER_CONFIG, *PSDMEMORY_DRIVER_CONFIG;

/* per device configuration */
typedef struct _SDMEMORY_CONFIG {
    struct hci_dev *pHciDev;    /* the HCI device */
    struct gendisk *pGenDisk;   /* the disk definition */
    struct request_queue *pRequestQueue; /* request queue for disk requests*/
    spinlock_t RequestLock;     /* lock for the RequestQueue */
    spinlock_t DeviceLock;      /* lock for this device */
    atomic_t   OpenCount;       /* how many opens are current */
}SDMEMORY_CONFIG, *PSDMEMORY_CONFIG;


#endif /*__SDIO_MEMORY_LINUX_H___*/