Lines Matching defs:DriverEntry

297   @param  DriverEntry             EFI_SMM_DRIVER_ENTRY instance
305 IN OUT EFI_SMM_DRIVER_ENTRY *DriverEntry
332 Fv = DriverEntry->Fv;
333 NameGuid = &DriverEntry->FileName;
334 FilePath = DriverEntry->FvFileDevicePath;
529 // Save Image EntryPoint in DriverEntry
531 DriverEntry->ImageEntryPoint = ImageContext.EntryPoint;
532 DriverEntry->ImageBuffer = DstBuffer;
533 DriverEntry->NumberOfPage = PageCount;
538 Status = gBS->AllocatePool (EfiBootServicesData, sizeof (EFI_LOADED_IMAGE_PROTOCOL), (VOID **)&DriverEntry->LoadedImage);
551 DriverEntry->LoadedImage->Revision = EFI_LOADED_IMAGE_PROTOCOL_REVISION;
552 DriverEntry->LoadedImage->ParentHandle = gSmmCorePrivate->SmmIplImageHandle;
553 DriverEntry->LoadedImage->SystemTable = gST;
554 DriverEntry->LoadedImage->DeviceHandle = DeviceHandle;
559 Status = gBS->AllocatePool (EfiBootServicesData, GetDevicePathSize (FilePath), (VOID **)&DriverEntry->LoadedImage->FilePath);
567 CopyMem (DriverEntry->LoadedImage->FilePath, FilePath, GetDevicePathSize (FilePath));
569 DriverEntry->LoadedImage->ImageBase = (VOID *)(UINTN)DriverEntry->ImageBuffer;
570 DriverEntry->LoadedImage->ImageSize = ImageContext.ImageSize;
571 DriverEntry->LoadedImage->ImageCodeType = EfiRuntimeServicesCode;
572 DriverEntry->LoadedImage->ImageDataType = EfiRuntimeServicesData;
577 DriverEntry->ImageHandle = NULL;
579 &DriverEntry->ImageHandle,
580 &gEfiLoadedImageProtocolGuid, DriverEntry->LoadedImage,
584 PERF_START (DriverEntry->ImageHandle, "LoadImage:", NULL, Tick);
585 PERF_END (DriverEntry->ImageHandle, "LoadImage:", NULL, 0);
654 Preprocess dependency expression and update DriverEntry to reflect the
655 state of Before and After dependencies. If DriverEntry->Before
656 or DriverEntry->After is set it will never be cleared.
658 @param DriverEntry DriverEntry element to update .
665 IN EFI_SMM_DRIVER_ENTRY *DriverEntry
670 Iterator = DriverEntry->Depex;
671 DriverEntry->Dependent = TRUE;
674 DriverEntry->Before = TRUE;
676 DriverEntry->After = TRUE;
679 if (DriverEntry->Before || DriverEntry->After) {
680 CopyMem (&DriverEntry->BeforeAfterGuid, Iterator + 1, sizeof (EFI_GUID));
690 @param DriverEntry Driver to work on.
700 IN EFI_SMM_DRIVER_ENTRY *DriverEntry
708 Fv = DriverEntry->Fv;
712 // (Note: DriverEntry->Depex is in DXE memory)
716 DriverEntry->Fv,
717 &DriverEntry->FileName,
720 &DriverEntry->Depex,
721 (UINTN *)&DriverEntry->DepexSize,
729 DriverEntry->DepexProtocolError = TRUE;
734 DriverEntry->Depex = NULL;
735 DriverEntry->Dependent = TRUE;
736 DriverEntry->DepexProtocolError = FALSE;
743 SmmPreProcessDepex (DriverEntry);
744 DriverEntry->DepexProtocolError = FALSE;
773 EFI_SMM_DRIVER_ENTRY *DriverEntry;
795 DriverEntry = CR (
807 if (DriverEntry->ImageHandle == NULL) {
808 Status = SmmLoadImage (DriverEntry);
818 DriverEntry->Initialized = TRUE;
819 DriverEntry->Scheduled = FALSE;
820 RemoveEntryList (&DriverEntry->ScheduledLink);
829 DriverEntry->Scheduled = FALSE;
830 DriverEntry->Initialized = TRUE;
831 RemoveEntryList (&DriverEntry->ScheduledLink);
836 &DriverEntry->ImageHandle,
837 sizeof (DriverEntry->ImageHandle)
848 PERF_START (DriverEntry->ImageHandle, "StartImage:", NULL, 0);
849 Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)DriverEntry->ImageEntryPoint)(DriverEntry->ImageHandle, gST);
850 PERF_END (DriverEntry->ImageHandle, "StartImage:", NULL, 0);
852 SmmFreePages(DriverEntry->ImageBuffer, DriverEntry->NumberOfPage);
858 &DriverEntry->ImageHandle,
859 sizeof (DriverEntry->ImageHandle)
882 DriverEntry = CR (Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);
884 if (DriverEntry->DepexProtocolError){
888 Status = SmmGetDepexSectionAndPreProccess (DriverEntry);
891 if (DriverEntry->Dependent) {
892 if (SmmIsSchedulable (DriverEntry)) {
893 SmmInsertOnScheduledQueueWhileProcessingBeforeAndAfter (DriverEntry);
905 DriverEntry = CR (Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);
907 if (!DriverEntry->Initialized){
938 EFI_SMM_DRIVER_ENTRY *DriverEntry;
944 DriverEntry = CR(Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);
945 if (DriverEntry->Before && DriverEntry->Dependent && DriverEntry != InsertedDriverEntry) {
946 DEBUG ((DEBUG_DISPATCH, "Evaluate SMM DEPEX for FFS(%g)\n", &DriverEntry->FileName));
947 DEBUG ((DEBUG_DISPATCH, " BEFORE FFS(%g) = ", &DriverEntry->BeforeAfterGuid));
948 if (CompareGuid (&InsertedDriverEntry->FileName, &DriverEntry->BeforeAfterGuid)) {
953 SmmInsertOnScheduledQueueWhileProcessingBeforeAndAfter (DriverEntry);
973 DriverEntry = CR(Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);
974 if (DriverEntry->After && DriverEntry->Dependent && DriverEntry != InsertedDriverEntry) {
975 DEBUG ((DEBUG_DISPATCH, "Evaluate SMM DEPEX for FFS(%g)\n", &DriverEntry->FileName));
976 DEBUG ((DEBUG_DISPATCH, " AFTER FFS(%g) = ", &DriverEntry->BeforeAfterGuid));
977 if (CompareGuid (&InsertedDriverEntry->FileName, &DriverEntry->BeforeAfterGuid)) {
982 SmmInsertOnScheduledQueueWhileProcessingBeforeAndAfter (DriverEntry);
1089 Add an entry to the mDiscoveredList. Allocate memory to store the DriverEntry,
1091 in DriverEntry. Pre-process the Depex to set the Before and After state.
1115 EFI_SMM_DRIVER_ENTRY *DriverEntry;
1121 DriverEntry = AllocateZeroPool (sizeof (EFI_SMM_DRIVER_ENTRY));
1122 ASSERT (DriverEntry != NULL);
1124 DriverEntry->Signature = EFI_SMM_DRIVER_ENTRY_SIGNATURE;
1125 CopyGuid (&DriverEntry->FileName, DriverName);
1126 DriverEntry->FvHandle = FvHandle;
1127 DriverEntry->Fv = Fv;
1128 DriverEntry->FvFileDevicePath = SmmFvToDevicePath (Fv, FvHandle, DriverName);
1130 SmmGetDepexSectionAndPreProccess (DriverEntry);
1132 InsertTailList (&mDiscoveredList, &DriverEntry->Link);
1185 EFI_SMM_DRIVER_ENTRY *DriverEntry;
1315 DriverEntry = CR(Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);
1316 if (CompareGuid (&DriverEntry->FileName, &AprioriFile[Index]) &&
1317 (FvHandle == DriverEntry->FvHandle)) {
1318 DriverEntry->Dependent = FALSE;
1319 DriverEntry->Scheduled = TRUE;
1320 InsertTailList (&mScheduledQueue, &DriverEntry->ScheduledLink);
1321 DEBUG ((DEBUG_DISPATCH, "Evaluate SMM DEPEX for FFS(%g)\n", &DriverEntry->FileName));
1382 EFI_SMM_DRIVER_ENTRY *DriverEntry;
1385 DriverEntry = CR(Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE);
1386 if (DriverEntry->Dependent) {
1387 DEBUG ((DEBUG_LOAD, "SMM Driver %g was discovered but not loaded!!\n", &DriverEntry->FileName));