[edk2,edk2-staging,18/19] IntelUndiPkg/GigUndiDxe: add missing EFIAPI modifiers

Message ID 20181106175833.26964-19-ard.biesheuvel@linaro.org
State New
Headers show
Series
  • IntelUndiPkg/GigUndiDxe: build fixes for AARCH64/ARM/GCC
Related show

Commit Message

Ard Biesheuvel Nov. 6, 2018, 5:58 p.m.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@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(+)

-- 
2.19.1

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

Comments

Ryszard Knop Jan. 30, 2019, 3:15 p.m. | #1
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?

Reviewed-by: Ryszard Knop <ryszard.knop@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                                            ControllerHandl

> 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
Ard Biesheuvel Jan. 30, 2019, 3:20 p.m. | #2
On Wed, 30 Jan 2019 at 16:15, Ryszard Knop <ryszard.knop@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.knop@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                                            ControllerHandl

> > 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
Ryszard Knop Jan. 30, 2019, 3:31 p.m. | #3
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.knop@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.knop@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
Ard Biesheuvel Jan. 30, 2019, 3:33 p.m. | #4
On Wed, 30 Jan 2019 at 16:31, Ryszard Knop <ryszard.knop@linux.intel.com> wrote:
>

> Builds were fine, the result didn't work. Adding proper EFIAPIs fixed

> that, so should be okay everywhere.

>


Right. No I didn't spot that - I did build tests of all architectures,
and boot tests on 64-bit ARM. (I don't have x86 hardware with PCIe
slots)

> On Wed, 2019-01-30 at 16:20 +0100, Ard Biesheuvel wrote:

> > On Wed, 30 Jan 2019 at 16:15, Ryszard Knop <

> > ryszard.knop@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.knop@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

Patch

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                                                  ControllerHandle,
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                                            ControllerHandle,
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
   )