Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
config.c
Abstract:
This module contains code for interpreting and manipulating the ARC firmware configuration tree in various ways.
Author:
John Vert (jvert) 7-Oct-1993
Environment:
Runs in the ARC environment.
Revision History:
--*/ #include "setupldr.h"
#include "stdio.h"
#define MAX_FLOPPIES 4
PCONFIGURATION_COMPONENT_DATA FloppyData[MAX_FLOPPIES]; ULONG NumFloppies=0;
//
// definition for function callbacks
//
//
// Local prototypes
//
BOOLEAN EnumerateFloppies( IN PCONFIGURATION_COMPONENT_DATA ConfigData );
BOOLEAN SlFindFloppy( IN ULONG FloppyNumber, OUT PCHAR ArcName )
/*++
Routine Description:
Given a floppy number (0, 1, etc.) this routine computes the appropriate ARC name.
Arguments:
FloppyNumber - Supplies the floppy number.
ArcName - Returns the ARC name of the specified floppy device
Return Value:
TRUE - Floppy exists in the ARC firmware tree.
FALSE - Floppy was not found.
--*/
{ if (NumFloppies==0) { BlSearchConfigTree(BlLoaderBlock->ConfigurationRoot, PeripheralClass, FloppyDiskPeripheral, (ULONG)-1, EnumerateFloppies); }
if (FloppyNumber >= NumFloppies) { SlFatalError(SL_FLOPPY_NOT_FOUND,NumFloppies,FloppyNumber); }
BlGetPathnameFromComponent(FloppyData[FloppyNumber], ArcName); return(TRUE); }
BOOLEAN EnumerateFloppies( IN PCONFIGURATION_COMPONENT_DATA ConfigData )
/*++
Routine Description:
Callback routine for enumerating all the floppies in the ARC config tree.
Arguments:
ConfigData - Supplies a pointer to the floppies ARC component data.
Return Value:
TRUE - continue searching
FALSE - stop searching tree.
--*/
{ if (NumFloppies == MAX_FLOPPIES) { return(FALSE); }
FloppyData[NumFloppies++] = ConfigData;
return(TRUE); }
|