Re: [edk2] what is way the to check available RT services

2015-07-27 Thread Parmeshwr_Prasad
Thanks Andrew.

-Original Message-
From: Andrew Fish [mailto:[email protected]]
Sent: Monday, July 27, 2015 9:21 PM
To: Prasad, Parmeshwr
Cc: [email protected]
Subject: Re: what is way the to check available RT services


> On Jul 27, 2015, at 12:33 AM, [email protected] wrote:
>
>
> Hi All,
>
> I wanted to know what is the way to know that particular RT is available in 
> my system or not ?
> What will be a piece of code for this.
>

The EFI_TABLE_HEADER has a Revision field you can check. So you can check the 
version in the EFI_RUNTIME_SERVICES table.

https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Uefi/UefiSpec.h

//
// EFI Runtime Services Table
//
#define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' 
','S','Y','S','T')
#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50)) #define 
EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40)) #define 
EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31)) #define 
EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30)) #define 
EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20)) #define 
EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10)) #define 
EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00)) #define 
EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10)) #define 
EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02))
#define EFI_SYSTEM_TABLE_REVISION EFI_2_50_SYSTEM_TABLE_REVISION
#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION

#define EFI_RUNTIME_SERVICES_SIGNATURE SIGNATURE_64 
('R','U','N','T','S','E','R','V')
#define EFI_RUNTIME_SERVICES_REVISION EFI_SPECIFICATION_VERSION

///
/// EFI Runtime Services Table.
///
typedef struct {
///
/// The table header for the EFI Runtime Services Table.
///
EFI_TABLE_HEADER Hdr;

//
// Time Services
//
EFI_GET_TIME GetTime;
EFI_SET_TIME SetTime;
EFI_GET_WAKEUP_TIME GetWakeupTime;
EFI_SET_WAKEUP_TIME SetWakeupTime;

//
// Virtual Memory Services
//
EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
EFI_CONVERT_POINTER ConvertPointer;

//
// Variable Services
//
EFI_GET_VARIABLE GetVariable;
EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
EFI_SET_VARIABLE SetVariable;

//
// Miscellaneous Services
//
EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
EFI_RESET_SYSTEM ResetSystem;

//
// UEFI 2.0 Capsule Services
//
EFI_UPDATE_CAPSULE UpdateCapsule;
EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;

//
// Miscellaneous UEFI 2.0 Service
//
EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
} EFI_RUNTIME_SERVICES;

Thanks,

Andrew Fish

> -Param
--
___
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel


Re: [edk2] what is way the to check available RT services

2015-07-27 Thread Andrew Fish

> On Jul 27, 2015, at 12:33 AM, [email protected] wrote:
> 
>  
> Hi All,
>  
> I wanted to know what is the way to know that particular RT is available in 
> my system or not ?
> What will be a piece of code for this.
>  

The EFI_TABLE_HEADER has a Revision field you can check. So you can check the 
version in the EFI_RUNTIME_SERVICES table. 

https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Uefi/UefiSpec.h

//
// EFI Runtime Services Table
//
#define EFI_SYSTEM_TABLE_SIGNATURE  SIGNATURE_64 ('I','B','I',' 
','S','Y','S','T')
#define EFI_2_50_SYSTEM_TABLE_REVISION  ((2 << 16) | (50))
#define EFI_2_40_SYSTEM_TABLE_REVISION  ((2 << 16) | (40))
#define EFI_2_31_SYSTEM_TABLE_REVISION  ((2 << 16) | (31))
#define EFI_2_30_SYSTEM_TABLE_REVISION  ((2 << 16) | (30))
#define EFI_2_20_SYSTEM_TABLE_REVISION  ((2 << 16) | (20))
#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2 << 16) | (10))
#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | (00))
#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | (10))
#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | (02))
#define EFI_SYSTEM_TABLE_REVISION   EFI_2_50_SYSTEM_TABLE_REVISION
#define EFI_SPECIFICATION_VERSION   EFI_SYSTEM_TABLE_REVISION

#define EFI_RUNTIME_SERVICES_SIGNATURE  SIGNATURE_64 
('R','U','N','T','S','E','R','V')
#define EFI_RUNTIME_SERVICES_REVISION   EFI_SPECIFICATION_VERSION

///
/// EFI Runtime Services Table.
///
typedef struct {
  ///
  /// The table header for the EFI Runtime Services Table.
  ///
  EFI_TABLE_HEADERHdr;

  //
  // Time Services
  //
  EFI_GET_TIMEGetTime;
  EFI_SET_TIMESetTime;
  EFI_GET_WAKEUP_TIME GetWakeupTime;
  EFI_SET_WAKEUP_TIME SetWakeupTime;

  //
  // Virtual Memory Services
  //
  EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
  EFI_CONVERT_POINTER ConvertPointer;

  //
  // Variable Services
  //
  EFI_GET_VARIABLEGetVariable;
  EFI_GET_NEXT_VARIABLE_NAME  GetNextVariableName;
  EFI_SET_VARIABLESetVariable;

  //
  // Miscellaneous Services
  //
  EFI_GET_NEXT_HIGH_MONO_COUNTGetNextHighMonotonicCount;
  EFI_RESET_SYSTEMResetSystem;

  //
  // UEFI 2.0 Capsule Services
  //
  EFI_UPDATE_CAPSULE  UpdateCapsule;
  EFI_QUERY_CAPSULE_CAPABILITIES  QueryCapsuleCapabilities;

  //
  // Miscellaneous UEFI 2.0 Service
  //
  EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
} EFI_RUNTIME_SERVICES;

Thanks,

Andrew Fish

> -Param


--
___
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel