StdIn, StdOut, StdErr, etc...).\r
\r
Copyright 2016 Dell Inc.\r
- Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2013 Hewlett-Packard Development Company, L.P.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
return (EFI_SUCCESS);\r
}\r
\r
+/**\r
+ File style interface for Mem (GetInfo).\r
+\r
+ @param This Protocol instance pointer.\r
+ @param InformationType Type of information to return in Buffer.\r
+ @param BufferSize On input size of buffer, on output amount of data in buffer.\r
+ @param Buffer The buffer to return data.\r
+\r
+ @retval EFI_SUCCESS Data was returned.\r
+ @retval EFI_UNSUPPORT InformationType is not supported.\r
+ @retval EFI_NO_MEDIA The device has no media.\r
+ @retval EFI_DEVICE_ERROR The device reported an error.\r
+ @retval EFI_VOLUME_CORRUPTED The file system structures are corrupted.\r
+ @retval EFI_WRITE_PROTECTED The device is write protected.\r
+ @retval EFI_ACCESS_DENIED The file was open for read only.\r
+ @retval EFI_BUFFER_TOO_SMALL Buffer was too small; required size returned in BufferSize.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+FileInterfaceMemGetInfo(\r
+ IN EFI_FILE_PROTOCOL *This,\r
+ IN EFI_GUID *InformationType,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ )\r
+{\r
+ EFI_FILE_INFO *FileInfo;\r
+\r
+ if (CompareGuid (InformationType, &gEfiFileInfoGuid)) {\r
+ if (*BufferSize < sizeof (EFI_FILE_INFO)) {\r
+ *BufferSize = sizeof (EFI_FILE_INFO);\r
+ return EFI_BUFFER_TOO_SMALL;\r
+ }\r
+ if (Buffer == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ FileInfo = (EFI_FILE_INFO *)Buffer;\r
+ FileInfo->Size = sizeof (*FileInfo);\r
+ ZeroMem (FileInfo, sizeof (*FileInfo));\r
+ FileInfo->FileSize = ((EFI_FILE_PROTOCOL_MEM*)This)->FileSize;\r
+ FileInfo->PhysicalSize = FileInfo->FileSize;\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+ return EFI_UNSUPPORTED;\r
+}\r
+\r
/**\r
File style interface for Mem (Write).\r
\r
FileInterface->Close = FileInterfaceMemClose;\r
FileInterface->GetPosition = FileInterfaceMemGetPosition;\r
FileInterface->SetPosition = FileInterfaceMemSetPosition;\r
- FileInterface->GetInfo = FileInterfaceNopGetInfo;\r
+ FileInterface->GetInfo = FileInterfaceMemGetInfo;\r
FileInterface->SetInfo = FileInterfaceNopSetInfo;\r
FileInterface->Flush = FileInterfaceNopGeneric;\r
FileInterface->Delete = FileInterfaceNopGeneric;\r