Builds were fine, the result didn't work. Adding proper EFIAPIs fixed
that, so should be okay everywhere.

On Wed, 2019-01-30 at 16:20 +0100, Ard Biesheuvel wrote:
> On Wed, 30 Jan 2019 at 16:15, Ryszard Knop <
> ryszard.k...@linux.intel.com> wrote:
> > I'm going through all the protocols we have defined/used and in
> > Decode.c/h there's [E1000]UndiApiEntry for PXE/UNDI callbacks. I've
> > tested an X64 GCC build under OVMF and these calls were broken due
> > to
> > mismatched calling conventions. Did this work correctly for your
> > builds
> > on your platforms?
> > 
> 
> Do you mean the builds were broken? Or the resulting builds didn't
> work?
> 
> In any case, that issue only exists on X64, since there are different
> SysV and MS calling conventions. and GCC uses the former by default.
> On ARM, there is no such difference.
> 
> > Reviewed-by: Ryszard Knop <ryszard.k...@linux.intel.com>
> > 
> > On Tue, 2018-11-06 at 18:58 +0100, ard.biesheuvela wrote:
> > > Contributed-under: TianoCore Contribution Agreement 1.1
> > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> > > ---
> > >  IntelUndiPkg/GigUndiDxe/AdapterInformation.c  | 3 +++
> > >  IntelUndiPkg/GigUndiDxe/ComponentName.c       | 2 ++
> > >  IntelUndiPkg/GigUndiDxe/ComponentName.h       | 1 +
> > >  IntelUndiPkg/GigUndiDxe/DriverConfiguration.c | 3 +++
> > >  IntelUndiPkg/GigUndiDxe/DriverDiagnostics.c   | 1 +
> > >  IntelUndiPkg/GigUndiDxe/DriverHealth.c        | 2 ++
> > >  IntelUndiPkg/GigUndiDxe/StartStop.c           | 2 ++
> > >  7 files changed, 14 insertions(+)
> > > 
> > > diff --git a/IntelUndiPkg/GigUndiDxe/AdapterInformation.c
> > > b/IntelUndiPkg/GigUndiDxe/AdapterInformation.c
> > > index 8918c538e447..1cece79911b1 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/AdapterInformation.c
> > > +++ b/IntelUndiPkg/GigUndiDxe/AdapterInformation.c
> > > @@ -123,6 +123,7 @@ GetIpv6SupportInformationBlock (
> > >  **/
> > >  STATIC
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GetInformation (
> > >    IN  EFI_ADAPTER_INFORMATION_PROTOCOL *This,
> > >    IN  EFI_GUID *                        InformationType,
> > > @@ -188,6 +189,7 @@ GetInformation (
> > >  **/
> > >  STATIC
> > >  EFI_STATUS
> > > +EFIAPI
> > >  SetInformation (
> > >    IN  EFI_ADAPTER_INFORMATION_PROTOCOL *This,
> > >    IN  EFI_GUID *                        InformationType,
> > > @@ -234,6 +236,7 @@ SetInformation (
> > >  **/
> > >  STATIC
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GetSupportedTypes (
> > >    IN  EFI_ADAPTER_INFORMATION_PROTOCOL *This,
> > >    OUT EFI_GUID **                       InfoTypesBuffer,
> > > diff --git a/IntelUndiPkg/GigUndiDxe/ComponentName.c
> > > b/IntelUndiPkg/GigUndiDxe/ComponentName.c
> > > index 70baf00f4a5d..2bf9bbfbe0e4 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/ComponentName.c
> > > +++ b/IntelUndiPkg/GigUndiDxe/ComponentName.c
> > > @@ -112,6 +112,7 @@ ComponentNameInitializeControllerName (
> > >                                      language specified by
> > > Language.
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  ComponentNameGetDriverName (
> > >    IN  EFI_COMPONENT_NAME_PROTOCOL *This,
> > >    IN  CHAR8 *                      Language,
> > > @@ -182,6 +183,7 @@ ComponentNameGetDriverName (
> > >                                      language specified by
> > > Language.
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  ComponentNameGetControllerName (
> > >    IN  EFI_COMPONENT_NAME_PROTOCOL
> > > *                               This,
> > >    IN  EFI_HANDLE                                                
> > >   Co
> > > ntrollerHandle,
> > > diff --git a/IntelUndiPkg/GigUndiDxe/ComponentName.h
> > > b/IntelUndiPkg/GigUndiDxe/ComponentName.h
> > > index 5a3d414c6970..0b93a5410fc0 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/ComponentName.h
> > > +++ b/IntelUndiPkg/GigUndiDxe/ComponentName.h
> > > @@ -65,6 +65,7 @@ ComponentNameInitializeControllerName (
> > >                                      language specified by
> > > Language.
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  ComponentNameGetDriverName (
> > >    IN  EFI_COMPONENT_NAME_PROTOCOL *This,
> > >    IN  CHAR8 *                      Language,
> > > diff --git a/IntelUndiPkg/GigUndiDxe/DriverConfiguration.c
> > > b/IntelUndiPkg/GigUndiDxe/DriverConfiguration.c
> > > index 20d40ab672ef..99e086d81044 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/DriverConfiguration.c
> > > +++ b/IntelUndiPkg/GigUndiDxe/DriverConfiguration.c
> > > @@ -310,6 +310,7 @@ GigUndiDriverConfigurationDisplayMenu (
> > >     @retval   EFI_SUCCESS       Configuration was successful
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GigUndiDriverConfigurationSetOptions (
> > >    IN EFI_DRIVER_CONFIGURATION_PROTOCOL *          This,
> > >    IN
> > > EFI_HANDLE                                   ControllerHandle,
> > > @@ -418,6 +419,7 @@ GigUndiDriverConfigurationSetOptions (
> > >     @retval   EFI_SUCCESS   Always returned
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GigUndiDriverConfigurationOptionsValid (
> > >    IN EFI_DRIVER_CONFIGURATION_PROTOCOL *   This,
> > >    IN EFI_HANDLE                            ControllerHandle,
> > > @@ -442,6 +444,7 @@ GigUndiDriverConfigurationOptionsValid (
> > >     @retval   EFI_SUCCESS       Configuration was successful
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GigUndiDriverConfigurationForceDefaults (
> > >    IN EFI_DRIVER_CONFIGURATION_PROTOCOL *                   This,
> > >    IN
> > > EFI_HANDLE                                            ControllerH
> > > andl
> > > e,
> > > diff --git a/IntelUndiPkg/GigUndiDxe/DriverDiagnostics.c
> > > b/IntelUndiPkg/GigUndiDxe/DriverDiagnostics.c
> > > index aceb015e480f..f6152cd24c59 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/DriverDiagnostics.c
> > > +++ b/IntelUndiPkg/GigUndiDxe/DriverDiagnostics.c
> > > @@ -1394,6 +1394,7 @@ Error:
> > >                                      ChildHandle did not pass the
> > > diagnostic.
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GigUndiDriverDiagnosticsRunDiagnostics (
> > >    IN EFI_DRIVER_DIAGNOSTICS_PROTOCOL *           This,
> > >    IN
> > > EFI_HANDLE                                  ControllerHandle,
> > > diff --git a/IntelUndiPkg/GigUndiDxe/DriverHealth.c
> > > b/IntelUndiPkg/GigUndiDxe/DriverHealth.c
> > > index b5b7db5fd814..ea306843679a 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/DriverHealth.c
> > > +++ b/IntelUndiPkg/GigUndiDxe/DriverHealth.c
> > > @@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE
> > > POSSIBILITY OF SUCH DAMAGE.
> > >     @retval      !EFI_SUCCESS      Failure to retrieve health
> > > status
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  GetHealthStatus (
> > >    IN  EFI_DRIVER_HEALTH_PROTOCOL *     This,
> > >    IN  EFI_HANDLE                       ControllerHandle,
> > > OPTIONAL
> > > @@ -119,6 +120,7 @@ GetHealthStatus (
> > >     @retval   EFI_UNSUPPORTED   This function is unsupported
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  Repair (
> > >    IN  EFI_DRIVER_HEALTH_PROTOCOL                *This,
> > >    IN  EFI_HANDLE                                ControllerHandle
> > > ,
> > > diff --git a/IntelUndiPkg/GigUndiDxe/StartStop.c
> > > b/IntelUndiPkg/GigUndiDxe/StartStop.c
> > > index 32bed7ce288d..a788da247e6d 100644
> > > --- a/IntelUndiPkg/GigUndiDxe/StartStop.c
> > > +++ b/IntelUndiPkg/GigUndiDxe/StartStop.c
> > > @@ -38,6 +38,7 @@ EFI_GUID gEfiStartStopProtocolGuid =
> > > EFI_DRIVER_STOP_PROTOCOL_GUID;
> > >     @retval   EFI_SUCCESS   Driver is stopped successfully
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  StopDriver (
> > >    IN EFI_DRIVER_STOP_PROTOCOL *This
> > >    )
> > > @@ -62,6 +63,7 @@ StopDriver (
> > >     @retval   EFI_SUCCESS   If driver has restarted successfully
> > >  **/
> > >  EFI_STATUS
> > > +EFIAPI
> > >  StartDriver (
> > >    IN EFI_DRIVER_STOP_PROTOCOL *This
> > >    )

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to