> Andrew, > > Good questions. > > 1) I agree with your observations on the GUIDs associated with the Debug > Port. The UEFI Specification defines the GUID for the messaging device path > and the UEFI Variable to be the same value as the Debug Port Protocol Guid. > We could remove the 2 GUIDs from the .DEC file with no side effects but I do > not like that the developer has to know the GUIDs are the same and use the > Debug Port Protocol GUID in the INF when the device path or UEFI Variable are > needed. I think I would prefer to see the following 2 #defines removed: > > #define gEfiDebugPortVariableGuid gEfiDebugPortProtocolGuid > #define gEfiDebugPortDevicePathGuid gEfiDebugPortProtocolGuid > > And instead, have a proper declaration of the externs for these 2 GUIDs. > This also means the INF files that only list the Debug Port Protocol Guid > will have to be updated to list all of the Debug Port related guids the > module uses or the build will break. >
Works for me. > 2) The GUID values for the SAL services are defined in > ExtendedSalServiceClasses.h because those are the defines used to make ESAL > calls. We never use the &GuidCName when making an ESAL call. Instead, the > GUID HI and GUID LO values are used in two 64-bit parameters to pass the GUID > by value instead of by reference to avoid the physical/virtual issues with > pointers in ESAL calls Itanium. Since the &GuidCName form should never be > used in C code, it did not make sense to declare the GuidCName for these > GUIDs in the .h file. This breaks the build if a developer ever attempts to > use &GuidCName form. > Thanks, it seems this knowledge has bit rotted out of my brain..... Thanks, Andrew > Best regards, > > Mike > > -----Original Message----- > From: Andrew Fish [mailto:[email protected]] > Sent: Friday, June 21, 2013 10:41 AM > To: [email protected] > Subject: [edk2] [MdePkg Maintainer] .DEC questions > > Mike, > > I don't understand why gEfiDebugPortVariableGuid and > gEfiDebugPortDevicePathGuid are in the .DEC file since they can not exist in > linked code. If you use these GUIDs in the code you need to add > gEfiDebugPortProtocolGuid to your INF file to get your code to compile. > Adding gEfiDebugPortVariableGuid or gEfiDebugPortDevicePathGuid to an INF > file does nothing? > > // > // DEBUGPORT variable definitions... > // > #define EFI_DEBUGPORT_VARIABLE_NAME L"DEBUGPORT" > #define EFI_DEBUGPORT_VARIABLE_GUID EFI_DEBUGPORT_PROTOCOL_GUID > #define gEfiDebugPortVariableGuid gEfiDebugPortProtocolGuid > // > // DebugPort device path definitions... > // > #define DEVICE_PATH_MESSAGING_DEBUGPORT EFI_DEBUGPORT_PROTOCOL_GUID > #define gEfiDebugPortDevicePathGuid gEfiDebugPortProtocolGuid > > Also the following GUIDs only exist in the .dec and they are not define in > Include/Protocol/ExtendedSalServiceClasses.h. > gEfiExtendedSalBaseIoServicesProtocolGuid > gEfiExtendedSalStallServicesProtocolGuid > gEfiExtendedSalRtcServicesProtocolGuid > gEfiExtendedSalVariableServicesProtocolGuid > gEfiExtendedSalMtcServicesProtocolGuid > gEfiExtendedSalResetServicesProtocolGuid > gEfiExtendedSalStatusCodeServicesProtocolGuid > gEfiExtendedSalFvBlockServicesProtocolGuid > gEfiExtendedSalMpServicesProtocolGuid > gEfiExtendedSalPalServicesProtocolGuid > gEfiExtendedSalBaseServicesProtocolGuid > gEfiExtendedSalMcaServicesProtocolGuid > gEfiExtendedSalPciServicesProtocolGuid > gEfiExtendedSalCacheServicesProtocolGuid > gEfiExtendedSalMcaLogServicesProtocolGuid > > Is there some reason for this? > > > Thanks, > > Andrew Fish > > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
