From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH RFC 05/18] OvmfPkg/XenbusDxe: Open PciIo protocol. Date: Wed, 16 Jul 2014 13:39:36 -0400 Message-ID: <20140716173936.GG30483@laptop.dumpdata.com> References: <1405523747-5024-1-git-send-email-anthony.perard@citrix.com> <1405523747-5024-6-git-send-email-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1405523747-5024-6-git-send-email-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Anthony PERARD Cc: EDK2 devel , Xen Devel List-Id: xen-devel@lists.xenproject.org On Wed, Jul 16, 2014 at 04:15:34PM +0100, Anthony PERARD wrote: > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Anthony PERARD Could you describe a bit why you need to use it? I think I know why - that is you need to poke at its IO ports but it would be good to mention that in here. > --- > OvmfPkg/XenbusDxe/XenbusDxe.c | 16 ++++++++++++++++ > OvmfPkg/XenbusDxe/XenbusDxe.h | 1 + > 2 files changed, 17 insertions(+) > > diff --git a/OvmfPkg/XenbusDxe/XenbusDxe.c b/OvmfPkg/XenbusDxe/XenbusDxe.c > index 63ea31b..ba5e8f4 100644 > --- a/OvmfPkg/XenbusDxe/XenbusDxe.c > +++ b/OvmfPkg/XenbusDxe/XenbusDxe.c > @@ -290,11 +290,25 @@ XenbusDxeDriverBindingStart ( > { > EFI_STATUS Status; > XENBUS_DEVICE *Dev; > + EFI_PCI_IO_PROTOCOL *PciIo; > + > + Status = gBS->OpenProtocol ( > + ControllerHandle, > + &gEfiPciIoProtocolGuid, > + (VOID **)&PciIo, > + This->DriverBindingHandle, > + ControllerHandle, > + EFI_OPEN_PROTOCOL_BY_DRIVER > + ); > + if (EFI_ERROR (Status)) { > + return Status; > + } > > Dev = AllocateZeroPool (sizeof (*Dev)); > Dev->Signature = XENBUS_DEVICE_SIGNATURE; > Dev->This = This; > Dev->ControllerHandle = ControllerHandle; > + Dev->PciIo = PciIo; > > Status = XenHyperpageInit (Dev); > ASSERT_EFI_ERROR (Status); > @@ -351,5 +365,7 @@ XenbusDxeDriverBindingStop ( > > gBS->CloseEvent (Dev->ExitBootEvent); > > + gBS->CloseProtocol(ControllerHandle, &gEfiPciIoProtocolGuid, > + This->DriverBindingHandle, ControllerHandle); > return EFI_SUCCESS; > } > diff --git a/OvmfPkg/XenbusDxe/XenbusDxe.h b/OvmfPkg/XenbusDxe/XenbusDxe.h > index 6140f94..d57e3c8 100644 > --- a/OvmfPkg/XenbusDxe/XenbusDxe.h > +++ b/OvmfPkg/XenbusDxe/XenbusDxe.h > @@ -84,6 +84,7 @@ struct _XENBUS_DEVICE { > UINT32 Signature; > EFI_DRIVER_BINDING_PROTOCOL *This; > EFI_HANDLE ControllerHandle; > + EFI_PCI_IO_PROTOCOL *PciIo; > EFI_EVENT ExitBootEvent; > > VOID *Hyperpage; > -- > Anthony PERARD > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel