## @file
# Safe Integer Library
#
# This library provides helper functions to prevent integer overflow during
# type conversion, addition, subtraction, and multiplication.
#
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
# Copyright (c) 2017, Microsoft Corporation
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>

#
# All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseSafeIntLib
  FILE_GUID                      = 4EA91BFA-3482-4930-B136-70679C6CE489
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = SafeIntLib

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 ARM AARCH64 RISCV64 LOONGARCH64
#

[Sources]
  SafeIntLib.c

[Sources.Ia32, Sources.ARM]
  SafeIntLib32.c

[Sources.X64, Sources.AARCH64, Sources.RISCV64, Sources.LOONGARCH64]
  SafeIntLib64.c

[Sources.EBC]
  SafeIntLibEbc.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseLib
