NT4/private/ntos/dd/pcmcia/extern.h
2020-09-30 17:12:29 +02:00

313 lines
5.3 KiB
C

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
extern.h
Abstract:
External definitions for intermodule functions.
Revision History:
6-Apr-95
Databook support added.
--*/
//
// Intel PCIC (82365SL) and compatible routines.
//
BOOLEAN
PcicInitializePcmciaSocket(
IN PSOCKET SocketPtr
);
UCHAR
PcicReadController(
IN PUCHAR Base,
IN USHORT Socket,
IN UCHAR PcicRegister
);
VOID
PcicWriteController(
IN PUCHAR Base,
IN USHORT Socket,
IN UCHAR PcicRegister,
IN UCHAR DataByte
);
BOOLEAN
PcicReadAttributeMemory(
IN PSOCKET SocketPtr,
IN PUCHAR *TupleBuffer,
IN PULONG TupleBufferSize
);
BOOLEAN
PcicReadCIS(
IN PUCHAR Base,
IN USHORT Socket,
IN PUCHAR *TupleBuffer,
IN PULONG TupleBufferSize
);
BOOLEAN
PcicDetectCardInSocket(
IN PSOCKET SocketPtr
);
BOOLEAN
PcicDetectCardChanged(
IN PSOCKET SocketPtr
);
VOID
PcicProcessConfigureRequest(
IN PSOCKET SocketPtr,
IN PVOID ConfigRequest,
IN PUCHAR Base
);
VOID
PcicEnableDisableAttributeMemory(
IN PSOCKET SocketPtr,
IN ULONG CardBase,
IN BOOLEAN Enable
);
VOID
PcicEnableControllerInterrupt(
IN PSOCKET SocketPtr,
IN ULONG Irq
);
BOOLEAN
PcicPCCardReady(
IN PSOCKET SocketPtr
);
NTSTATUS
PcicDetect(
IN PDEVICE_EXTENSION DeviceExtension
);
VOID
PcicGetRegisters(
IN PDEVICE_EXTENSION DeviceExtension,
IN PSOCKET SocketPtr,
IN PUCHAR Buffer
);
VOID
PcicSetPower(
IN PSOCKET SocketPtr,
IN BOOLEAN Enable
);
//
// Support routines for pcmcia work.
//
VOID
PcmciaLogError(
IN PDEVICE_EXTENSION DeviceExtension,
IN ULONG ErrorCode,
IN ULONG UniqueId,
IN ULONG Argument
);
//
// Registry access to the firmware tree.
//
VOID
PcmciaProcessFirmwareTree(
IN PDEVICE_EXTENSION DeviceExtension
);
VOID
PcmciaConstructSerialTreeEntry(
IN PDEVICE_EXTENSION DeviceExtension,
IN PSOCKET_CONFIGURATION SocketConfiguration
);
NTSTATUS
PcmciaConstructFirmwareEntry(
IN PDEVICE_EXTENSION DeviceExtension,
IN PSOCKET_CONFIGURATION SocketConfiguration
);
VOID
PcmciaConstructRegistryEntry(
IN PDEVICE_EXTENSION DeviceExtension,
IN PSOCKET_DATA SocketData,
IN PSOCKET_CONFIGURATION SocketConfiguration
);
VOID
PcmciaReportResources(
IN PDEVICE_EXTENSION deviceExtension,
OUT BOOLEAN *conflictDetected
);
VOID
PcmciaUnReportResources(
IN PDEVICE_EXTENSION DeviceExtension
);
NTSTATUS
PcmciaCheckDatabaseInformation(
PDEVICE_EXTENSION DeviceExtension,
PSOCKET Socket,
PSOCKET_DATA SocketData
);
NTSTATUS
PcmciaCheckNetworkRegistryInformation(
PDEVICE_EXTENSION DeviceExtension,
PSOCKET Socket,
PSOCKET_DATA SocketData,
PSOCKET_CONFIGURATION SocketConfiguration
);
NTSTATUS
PcmciaCheckSerialRegistryInformation(
PDEVICE_EXTENSION DeviceExtension,
PSOCKET Socket,
PSOCKET_DATA SocketData,
PSOCKET_CONFIGURATION SocketConfig
);
VOID
PcmciaRegistryMemoryWindow(
PDEVICE_EXTENSION DeviceExtension
);
//
// Tuple processing routines.
//
PSOCKET_DATA
PcmciaParseCardData(
IN PUCHAR TupleData
);
VOID
PcmciaCheckForRecognizedDevice(
PSOCKET_DATA SocketData
);
//
// General detection and support.
//
PUCHAR
PcmciaAllocateOpenMemoryWindow(
IN PDEVICE_EXTENSION DeviceExtension,
IN ULONG Start,
IN PULONG Mapped,
IN PULONG Physical
);
BOOLEAN
PcmciaDetectDevicePresence(
IN ULONG IoPortBase,
IN ULONG Length,
IN UCHAR DeviceType
);
BOOLEAN
PcmciaDetectMca();
VOID
PcmciaDetectSpecialHardware(
IN PDEVICE_EXTENSION DeviceExtension
);
//
// Databook TCIC2 and compatible routines.
//
BOOLEAN
TcicInitializePcmciaSocket(
IN PSOCKET SocketPtr //johnk - 4/6/95
);
BOOLEAN
TcicReadAttributeMemory(
IN PSOCKET SocketPtr, //johnk - 4/6/95
IN PUCHAR *TupleBuffer,
IN PULONG TupleBufferSize
);
BOOLEAN
TcicReadCIS(
IN PSOCKET socketPtr,
IN PUCHAR *TupleBuffer,
IN PULONG TupleBufferSize
);
BOOLEAN
TcicDetectCardInSocket(
IN PSOCKET SocketPtr //johnk - 4/6/95
);
BOOLEAN //johnk - new function 4/6/95
TcicDetectCardChanged(
IN PSOCKET SocketPtr
);
VOID
TcicProcessConfigureRequest(
IN PSOCKET SocketPtr,
IN PVOID ConfigRequest,
IN PUCHAR Base
);
VOID
TcicEnableControllerInterrupt(
IN PSOCKET SocketPtr, //johnk - 4/6/95
IN ULONG Irq
);
BOOLEAN
TcicPCCardReady(
IN PSOCKET SocketPtr //johnk - 4/6/95
);
NTSTATUS
TcicDetect(
IN PDEVICE_EXTENSION DeviceExtension
);
VOID
TcicGetRegisters(
IN PDEVICE_EXTENSION DeviceExtension,
IN PSOCKET SocketPtr, //johnk - 4/6/95
IN PUCHAR Buffer
);
VOID
TcicSetPower(
IN PSOCKET SocketPtr,
IN BOOLEAN Enable
);
VOID
TcicGetControllerProperties (
IN PSOCKET socketPtr,
IN PUSHORT pIoPortBase,
IN PUSHORT pIoPortSize
);
ULONG
TcicGetIrqMask(
IN PDEVICE_EXTENSION deviceExtension
);