<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution.  The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0  http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
  <MsaHeader>
    <BaseName>DebugSupport</BaseName>
    <ModuleType>DXE_DRIVER</ModuleType>
    <ComponentType>BS_DRIVER</ComponentType>
    <Guid>911D584C-35F7-4955-BEF9-B452769DDC3A</Guid>
    <Version>0</Version>
    <Abstract>Component description file for DiskIo module.</Abstract>
    <Description>FIX ME!</Description>
    <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>
    <License>
      All rights reserved. This program and the accompanying materials
      are licensed and made available under the terms and conditions of the BSD License
      which accompanies this distribution.  The full text of the license may be found at
      http://opensource.org/licenses/bsd-license.php
      THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
      WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
    </License>
    <Specification>0</Specification>
    <Created>2006-03-12 17:09</Created>
    <Updated>2006-03-19 15:19</Updated>
  </MsaHeader>
  <LibraryClassDefinitions>
    <LibraryClass Usage="ALWAYS_CONSUMED">DebugLib</LibraryClass>
    <LibraryClass Usage="ALWAYS_CONSUMED">UefiDriverEntryPoint</LibraryClass>            
    <LibraryClass Usage="ALWAYS_CONSUMED">BaseMemoryLib</LibraryClass>
    <LibraryClass Usage="ALWAYS_CONSUMED">MemoryAllocationLib</LibraryClass>
    <LibraryClass Usage="ALWAYS_CONSUMED">UefiBootServicesTableLib</LibraryClass>
  </LibraryClassDefinitions>
  <SourceFiles>
    <Filename>DebugSupport.c</Filename>
    <Filename>DebugSupport.dxs</Filename>
    <Arch ArchType="IA32">
      <Filename>ia32\AsmFuncs.asm</Filename>
      <Filename>ia32\plDebugSupport.c</Filename>
    </Arch>
    <Arch ArchType="IPF">
      <Filename>ipf\AsmFuncs.s</Filename>
      <Filename>ipf\common.i</Filename>
      <Filename>ipf\ds64macros.i</Filename>
      <Filename>ipf\plDebugSupport.c</Filename>
    </Arch>
  </SourceFiles>
  <Includes>
    <PackageName>MdePkg</PackageName>
    <PackageName>EdkModulePkg</PackageName>
  </Includes>
  <Protocols>
    <Protocol Usage="SOMETIMES_PRODUCED">DebugSupport</Protocol>
    <Protocol Usage="ALWAYS_CONSUMED">LoadedImage</Protocol>
  </Protocols>
  <Externs>
    <Extern>
      <ModuleEntryPoint>InitializeDebugSupportDriver</ModuleEntryPoint>
    </Extern>
  </Externs>
</ModuleSurfaceArea>
