91 lines
1.6 KiB
C
91 lines
1.6 KiB
C
/*++
|
|
|
|
Copyright (c) 1990, 1991 Microsoft Corporation
|
|
|
|
|
|
Module Name:
|
|
|
|
hwheap.c
|
|
|
|
Abstract:
|
|
|
|
This is the Mca hardware detection module. Its main function is
|
|
to detect various mca related hardware.
|
|
|
|
Author:
|
|
|
|
Shie-Lin Tzong (shielint) 21-Jan-92
|
|
|
|
|
|
Environment:
|
|
|
|
Real mode.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "hwdetect.h"
|
|
|
|
//
|
|
// Define the size of POS data = ( slot 0 - 8 + VideoSubsystem) * (2 id bytes + 4 POS bytes)
|
|
//
|
|
|
|
#define POS_DATA_SIZE (10 * 6)
|
|
|
|
#if !defined(_GAMBIT_)
|
|
extern
|
|
VOID
|
|
CollectPs2PosData (
|
|
FPVOID Buffer
|
|
);
|
|
#endif // _GAMBIT_
|
|
|
|
VOID
|
|
GetMcaPosData(
|
|
FPVOID Buffer,
|
|
FPULONG Size
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This routine collects all the mca slot POS and Id information
|
|
and stores it in the caller supplied Buffer and
|
|
returns the size of the data.
|
|
|
|
Arguments:
|
|
|
|
|
|
Buffer - A pointer to a PVOID to recieve the address of configuration
|
|
data.
|
|
|
|
Size - a pointer to a ULONG to receive the size of the configuration
|
|
data.
|
|
|
|
Return Value:
|
|
|
|
None.
|
|
|
|
--*/
|
|
|
|
{
|
|
FPUCHAR ConfigurationData;
|
|
ULONG Length;
|
|
|
|
Length = POS_DATA_SIZE + DATA_HEADER_SIZE;
|
|
ConfigurationData = (FPVOID)HwAllocateHeap(Length, FALSE);
|
|
#if !defined(_GAMBIT_)
|
|
CollectPs2PosData(ConfigurationData + DATA_HEADER_SIZE);
|
|
#endif
|
|
HwSetUpFreeFormDataHeader((FPHWRESOURCE_DESCRIPTOR_LIST)ConfigurationData,
|
|
0,
|
|
0,
|
|
0,
|
|
(ULONG)POS_DATA_SIZE
|
|
);
|
|
*(FPULONG)Buffer = PtrToUlong(ConfigurationData);
|
|
*Size = Length;
|
|
}
|