return EFI_INVALID_PARAMETER;\r
}\r
\r
- InstructionBuffer = AllocatePool (sizeof (EBC_INSTRUCTION_BUFFER));\r
+ InstructionBuffer = EbcAllocatePoolForThunk (sizeof (EBC_INSTRUCTION_BUFFER));\r
if (InstructionBuffer == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
return EFI_UNSUPPORTED;\r
}\r
\r
+/**\r
+ Allocates a buffer of type EfiBootServicesCode.\r
+\r
+ @param AllocationSize The number of bytes to allocate.\r
+\r
+ @return A pointer to the allocated buffer or NULL if allocation fails.\r
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+EbcAllocatePoolForThunk (\r
+ IN UINTN AllocationSize\r
+ )\r
+{\r
+ VOID *Buffer;\r
+ EFI_STATUS Status;\r
+\r
+ Status = gBS->AllocatePool (EfiBootServicesCode, AllocationSize, &Buffer);\r
+ if (EFI_ERROR (Status)) {\r
+ return NULL;\r
+ }\r
+ return Buffer;\r
+}\r
CR(a, EBC_PROTOCOL_PRIVATE_DATA, EbcProtocol, EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE)\r
\r
\r
+/**\r
+ Allocates a buffer of type EfiBootServicesCode.\r
+\r
+ @param AllocationSize The number of bytes to allocate.\r
+\r
+ @return A pointer to the allocated buffer or NULL if allocation fails.\r
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+EbcAllocatePoolForThunk (\r
+ IN UINTN AllocationSize\r
+ );\r
+\r
#endif // #ifndef _EBC_INT_H_\r
\r
ThunkSize = sizeof(mInstructionBufferTemplate);\r
\r
- Ptr = AllocatePool (sizeof(mInstructionBufferTemplate));\r
+ Ptr = EbcAllocatePoolForThunk (sizeof(mInstructionBufferTemplate));\r
\r
if (Ptr == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
//\r
Size = EBC_THUNK_SIZE + EBC_THUNK_ALIGNMENT - 1;\r
ThunkSize = Size;\r
- Ptr = AllocatePool (Size);\r
+ Ptr = EbcAllocatePoolForThunk (Size);\r
\r
if (Ptr == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
\r
ThunkSize = sizeof(mInstructionBufferTemplate);\r
\r
- Ptr = AllocatePool (sizeof(mInstructionBufferTemplate));\r
+ Ptr = EbcAllocatePoolForThunk (sizeof(mInstructionBufferTemplate));\r
\r
if (Ptr == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r