original files of m241
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
/* pcmciaLib.h - PCMCIA library header */
|
||||
|
||||
/* Copyright 1984-1996, 2010 Wind River Systems, Inc. */
|
||||
/* Copyright (c) 1994 David A. Hinds -- All Rights Reserved */
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
01d,29apr10,pad Moved extern C statement after include statements.
|
||||
01c,16jan97,hdn added two new members to PCMCIA_CTRL.
|
||||
01b,22feb96,hdn cleaned up.
|
||||
01a,19jan95,hdn written based on David Hinds's version 2.2.3.
|
||||
*/
|
||||
|
||||
#ifndef __INCpcmciah
|
||||
#define __INCpcmciah
|
||||
|
||||
#include "vwModNum.h"
|
||||
|
||||
/* pcmciaLib status codes */
|
||||
|
||||
#define S_pcmciaLib_BATTERY_DEAD (M_pcmciaLib | 1)
|
||||
#define S_pcmciaLib_BATTERY_WARNING (M_pcmciaLib | 2)
|
||||
|
||||
#ifndef _ASMLANGUAGE
|
||||
|
||||
#include "dllLib.h"
|
||||
#include "blkIo.h"
|
||||
#include "sysLib.h"
|
||||
#include "dosFsLib.h"
|
||||
#include "drv/pcmcia/pccardLib.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define DOS_ID_OFFSET 3
|
||||
#define FIRST_PARTITION_SECTOR_OFFSET (0x1be + 8)
|
||||
#define VXDOS "VXDOS"
|
||||
#define VXEXT "VXEXT"
|
||||
|
||||
#define PCMCIA_MAX_ARGS 6 /* max args to task level call */
|
||||
#define PCMCIA_MAX_MSGS 10 /* max number of PCMCIA event msgs */
|
||||
#define MAX_SOCKETS 8 /* XXX */
|
||||
#define PCMCIA_CIS_WINDOW 0 /* memory window for CIS */
|
||||
|
||||
typedef struct pcmciaCard /* for PC card */
|
||||
{
|
||||
int type; /* card type */
|
||||
int sock; /* socket no. */
|
||||
int ctrl; /* controller no. */
|
||||
BOOL detected; /* TRUE if a card is detected */
|
||||
BOOL installed; /* TRUE if a driver is installed */
|
||||
BOOL changed; /* TRUE if a card is changed */
|
||||
int regBase; /* config register base */
|
||||
int regMask; /* config register mask */
|
||||
int cardStatus; /* card status */
|
||||
int initStatus; /* init status */
|
||||
FUNCPTR cscIntr; /* CSC interrupt handler */
|
||||
FUNCPTR showRtn; /* show routine */
|
||||
DL_LIST cisTupleList; /* CIS tuple link list */
|
||||
DL_LIST cisConfigList; /* CIS config tuple link list */
|
||||
PCCARD_RESOURCE *pResource; /* resources for the card */
|
||||
BLK_DEV *pBlkDev; /* booting for block device */
|
||||
NETIF *pNetIf; /* booting for ethernet device */
|
||||
DOS_VOL_DESC *pDos; /* DOS file system volume descriptor */
|
||||
} PCMCIA_CARD;
|
||||
|
||||
typedef struct pcmciaChip /* for PCMCIA host adapter chip */
|
||||
{
|
||||
int type; /* type of PCMCIA adapter chip */
|
||||
char *name; /* name of PCMCIA adapter chip */
|
||||
BOOL installed; /* TRUE if it is installed */
|
||||
int socks; /* number of sockets supported */
|
||||
int flags; /* */
|
||||
int intLevel; /* CSC interrupt level */
|
||||
int memWindows; /* number of memory windows */
|
||||
int ioWindows; /* number of io windows */
|
||||
FUNCPTR reset; /* reset routine */
|
||||
FUNCPTR status; /* status routine */
|
||||
FUNCPTR flagGet; /* flag get routine */
|
||||
FUNCPTR flagSet; /* flag set routine */
|
||||
FUNCPTR cscOn; /* CSC on routine */
|
||||
FUNCPTR cscOff; /* CSC off routine */
|
||||
FUNCPTR cscPoll; /* CSC poll routine */
|
||||
FUNCPTR irqGet; /* IRQ get routine */
|
||||
FUNCPTR irqSet; /* IRQ set routine */
|
||||
FUNCPTR iowinGet; /* io window get routine */
|
||||
FUNCPTR iowinSet; /* io window set routine */
|
||||
FUNCPTR memwinGet; /* memory window get routine */
|
||||
FUNCPTR memwinSet; /* memory window set routine */
|
||||
FUNCPTR showRtn; /* show routine */
|
||||
} PCMCIA_CHIP;
|
||||
|
||||
typedef struct pcmciaCtrl
|
||||
{
|
||||
int socks; /* number of sockets */
|
||||
int memBase; /* mapping memory base addr */
|
||||
PCMCIA_CHIP chip; /* chip structure */
|
||||
PCMCIA_CARD card[MAX_SOCKETS]; /* card structure */
|
||||
} PCMCIA_CTRL;
|
||||
|
||||
typedef struct pcmciaIowin
|
||||
{
|
||||
int window;
|
||||
int flags;
|
||||
int extraws;
|
||||
int start;
|
||||
int stop;
|
||||
} PCMCIA_IOWIN;
|
||||
|
||||
typedef struct pcmciaMemwin
|
||||
{
|
||||
int window;
|
||||
int flags;
|
||||
int extraws;
|
||||
int start;
|
||||
int stop;
|
||||
int cardstart;
|
||||
} PCMCIA_MEMWIN;
|
||||
|
||||
typedef struct pcmciaAdapter
|
||||
{
|
||||
int type; /* type of a PCMCIA adapter chip */
|
||||
int ioBase; /* IO base address */
|
||||
int intVec; /* CSC interrupt vector */
|
||||
int intLevel; /* CSC interrupt level */
|
||||
FUNCPTR initRtn; /* initialize routine */
|
||||
FUNCPTR showRtn; /* show routine */
|
||||
} PCMCIA_ADAPTER;
|
||||
|
||||
typedef struct pcmciaMsg
|
||||
{
|
||||
VOIDFUNCPTR func; /* pointer to function to invoke */
|
||||
int arg [PCMCIA_MAX_ARGS]; /* args for function */
|
||||
} PCMCIA_MSG;
|
||||
|
||||
/* supported PCMCIA host adapter chip type */
|
||||
|
||||
#define PCMCIA_PCIC 0x01
|
||||
#define PCMCIA_TCIC 0x02
|
||||
|
||||
/* supported PC card type */
|
||||
|
||||
#define PCCARD_SRAM 0x01
|
||||
#define PCCARD_ATA 0x02
|
||||
#define PCCARD_LAN_ELT 0x03
|
||||
|
||||
/* configuration register number */
|
||||
|
||||
#define CONFIG_OPTION_REG 0
|
||||
#define CONFIG_STATUS_REG 1
|
||||
#define PIN_REPLACEMENT_REG 2
|
||||
#define SOCKET_COPY_REG 3
|
||||
|
||||
/* bits in configuration option register */
|
||||
|
||||
#define COPTION_SRESET 0x80
|
||||
#define COPTION_LEVIRQ 0x40
|
||||
|
||||
/* bits in configuration status register */
|
||||
|
||||
#define CSTATUS_CHANGED 0x80
|
||||
#define CSTATUS_SIGCHG 0x40
|
||||
#define CSTATUS_IOIS8 0x20
|
||||
#define CSTATUS_AUDIO 0x08
|
||||
#define CSTATUS_PWRDWN 0x04
|
||||
#define CSTATUS_INTR 0x02
|
||||
|
||||
/* bits in pin replacement register */
|
||||
|
||||
#define PINREP_CBVD1 0x80
|
||||
#define PINREP_CBVD2 0x40
|
||||
#define PINREP_CRDYBSY 0x20
|
||||
#define PINREP_CWPROT 0x10
|
||||
#define PINREP_RBVD1 0x08
|
||||
#define PINREP_RBVD2 0x04
|
||||
#define PINREP_RRDYBSY 0x02
|
||||
#define PINREP_RWPROT 0x01
|
||||
|
||||
/* definitions for card status flags */
|
||||
|
||||
#define PC_WRPROT 0x001
|
||||
#define PC_CARDLOCK 0x002
|
||||
#define PC_NO_CARD 0x004
|
||||
#define PC_IS_CARD 0x008
|
||||
#define PC_BATDEAD 0x010
|
||||
#define PC_BATWARN 0x020
|
||||
#define PC_READY 0x040
|
||||
#define PC_DETECT 0x080
|
||||
#define PC_POWERON 0x100
|
||||
#define PC_GPI 0x200
|
||||
#define PC_STSCHG 0x400
|
||||
|
||||
/* various card configuration flags */
|
||||
|
||||
#define PC_PWR_OFF 0x00
|
||||
#define PC_VCC_MASK 0x03
|
||||
#define PC_VCC_3V 0x01
|
||||
#define PC_VCC_5V 0x02
|
||||
#define PC_VPP_MASK 0x0C
|
||||
#define PC_VPP_5V 0x04
|
||||
#define PC_VPP_12V 0x08
|
||||
#define PC_PWR_AUTO 0x10
|
||||
#define PC_IOCARD 0x20
|
||||
#define PC_RESET 0x40
|
||||
|
||||
/* flags for I/O port and memory windows */
|
||||
|
||||
#define MAP_ACTIVE 0x01
|
||||
#define MAP_16BIT 0x02
|
||||
#define MAP_0WS 0x04
|
||||
#define MAP_CS16 0x08
|
||||
#define MAP_WRPROT 0x10
|
||||
#define MAP_ATTRIB 0x20
|
||||
|
||||
/* function declarations */
|
||||
|
||||
#if defined(__STDC__) || defined(__cplusplus)
|
||||
|
||||
extern STATUS pcmciaInit (void);
|
||||
extern STATUS pcmciaJobAdd (VOIDFUNCPTR func, int arg1, int arg2,
|
||||
int arg3, int arg4, int arg5, int arg6);
|
||||
extern void pcmciad (void);
|
||||
extern void pcmciaShowInit (void);
|
||||
extern void pcmciaShow (int sock);
|
||||
|
||||
#else
|
||||
|
||||
extern STATUS pcmciaInit ();
|
||||
extern STATUS pcmciaJobAdd ();
|
||||
extern void pcmciad ();
|
||||
extern void pcmciaShowInit ();
|
||||
extern void pcmciaShow ();
|
||||
|
||||
#endif /* __STDC__ */
|
||||
|
||||
#endif /* _ASMLANGUAGE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __INCpcmciah */
|
||||
Reference in New Issue
Block a user