# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//src/devices/bus/drivers/pci/pci.gni")

declare_args() {
  # Enable debug output in the ACPI library (used by the ACPI bus driver).
  acpica_debug_output = false
}

group("headers") {
  public_configs = [
    ":headers.config",
    ":disable_warnings",
  ]
}

config("headers.config") {
  visibility = [ ":headers" ]
  include_dirs = [ "include" ]

  # UBSan warns on a few instances of misaligned loads. Define this macro to
  # perform byte-by-byte accesses.
  defines = [ "ACPI_MISALIGNMENT_NOT_SUPPORTED" ]
}

# Disable warnings we won't fix in third-party code.  Putting this in a
# separate config rather than directly in the target gets these flags
# correctly ordered after the $zx/public/gn/config:default_warnings flags.
config("disable_warnings") {
  visibility = [ ":*" ]

  cflags = [
    "-Wno-implicit-fallthrough",
    "-Wno-incompatible-pointer-types-discards-qualifiers",
    "-Wno-null-pointer-arithmetic",
  ]
}

static_library("acpica") {
  public_deps = [ ":headers" ]

  # Local sources use #include "acpi.h", not #include <acpica/acpi.h>.
  include_dirs = [ "source/include" ]

  configs += [
    ":disable_warnings",

    # TODO(41663): UBSan has found an instance of undefined behavior in this target.
    # Disable UBSan for this target temporarily until it is migrated into CI/CQ.
    "//build/config:temporarily_disable_ubsan_do_not_use",
    # TODO(fxb/58162): delete the below and fix compiler warnings
    "//build/config:Wno-conversion",
  ]

  # We need to specify -fno-strict-aliasing, since ACPICA has a habit of
  # violating strict aliasing rules in some of its macros.  Rewriting this
  # code would increase the maintenance cost of bringing in the latest
  # upstream ACPICA, so instead we mitigate the problem with a compile-time
  # flag.  We take the more conservative approach of disabling
  # strict-aliasing-based optimizations, rather than disabling warnings.
  cflags = [ "-fno-strict-aliasing" ]

  sources = [
    "$zx/system/ulib/acpica/osfuchsia.cc",
    "source/common/ahids.c",
    "source/common/ahpredef.c",
    "source/common/ahtable.c",
    "source/common/dmtbdump.c",
    "source/common/dmtbdump1.c",
    "source/common/dmtbdump2.c",
    "source/common/dmtbdump3.c",
    "source/common/dmtbinfo.c",
    "source/common/dmtbinfo1.c",
    "source/common/dmtbinfo2.c",
    "source/common/dmtbinfo3.c",
    "source/components/dispatcher/dsargs.c",
    "source/components/dispatcher/dscontrol.c",
    "source/components/dispatcher/dsdebug.c",
    "source/components/dispatcher/dsfield.c",
    "source/components/dispatcher/dsinit.c",
    "source/components/dispatcher/dsmethod.c",
    "source/components/dispatcher/dsmthdat.c",
    "source/components/dispatcher/dsobject.c",
    "source/components/dispatcher/dsopcode.c",
    "source/components/dispatcher/dspkginit.c",
    "source/components/dispatcher/dsutils.c",
    "source/components/dispatcher/dswexec.c",
    "source/components/dispatcher/dswload.c",
    "source/components/dispatcher/dswload2.c",
    "source/components/dispatcher/dswscope.c",
    "source/components/dispatcher/dswstate.c",
    "source/components/events/evevent.c",
    "source/components/events/evglock.c",
    "source/components/events/evgpe.c",
    "source/components/events/evgpeblk.c",
    "source/components/events/evgpeinit.c",
    "source/components/events/evgpeutil.c",
    "source/components/events/evhandler.c",
    "source/components/events/evmisc.c",
    "source/components/events/evregion.c",
    "source/components/events/evrgnini.c",
    "source/components/events/evsci.c",
    "source/components/events/evxface.c",
    "source/components/events/evxfevnt.c",
    "source/components/events/evxfgpe.c",
    "source/components/events/evxfregn.c",
    "source/components/executer/exconcat.c",
    "source/components/executer/exconfig.c",
    "source/components/executer/exconvrt.c",
    "source/components/executer/excreate.c",
    "source/components/executer/exdebug.c",
    "source/components/executer/exdump.c",
    "source/components/executer/exfield.c",
    "source/components/executer/exfldio.c",
    "source/components/executer/exmisc.c",
    "source/components/executer/exmutex.c",
    "source/components/executer/exnames.c",
    "source/components/executer/exoparg1.c",
    "source/components/executer/exoparg2.c",
    "source/components/executer/exoparg3.c",
    "source/components/executer/exoparg6.c",
    "source/components/executer/exprep.c",
    "source/components/executer/exregion.c",
    "source/components/executer/exresnte.c",
    "source/components/executer/exresolv.c",
    "source/components/executer/exresop.c",
    "source/components/executer/exserial.c",
    "source/components/executer/exstore.c",
    "source/components/executer/exstoren.c",
    "source/components/executer/exstorob.c",
    "source/components/executer/exsystem.c",
    "source/components/executer/extrace.c",
    "source/components/executer/exutils.c",
    "source/components/hardware/hwacpi.c",
    "source/components/hardware/hwesleep.c",
    "source/components/hardware/hwgpe.c",
    "source/components/hardware/hwpci.c",
    "source/components/hardware/hwregs.c",
    "source/components/hardware/hwsleep.c",
    "source/components/hardware/hwtimer.c",
    "source/components/hardware/hwvalid.c",
    "source/components/hardware/hwxface.c",
    "source/components/hardware/hwxfsleep.c",
    "source/components/namespace/nsaccess.c",
    "source/components/namespace/nsalloc.c",
    "source/components/namespace/nsarguments.c",
    "source/components/namespace/nsconvert.c",
    "source/components/namespace/nsdump.c",
    "source/components/namespace/nsdumpdv.c",
    "source/components/namespace/nseval.c",
    "source/components/namespace/nsinit.c",
    "source/components/namespace/nsload.c",
    "source/components/namespace/nsnames.c",
    "source/components/namespace/nsobject.c",
    "source/components/namespace/nsparse.c",
    "source/components/namespace/nspredef.c",
    "source/components/namespace/nsprepkg.c",
    "source/components/namespace/nsrepair.c",
    "source/components/namespace/nsrepair2.c",
    "source/components/namespace/nssearch.c",
    "source/components/namespace/nsutils.c",
    "source/components/namespace/nswalk.c",
    "source/components/namespace/nsxfeval.c",
    "source/components/namespace/nsxfname.c",
    "source/components/namespace/nsxfobj.c",
    "source/components/parser/psargs.c",
    "source/components/parser/psloop.c",
    "source/components/parser/psobject.c",
    "source/components/parser/psopcode.c",
    "source/components/parser/psopinfo.c",
    "source/components/parser/psparse.c",
    "source/components/parser/psscope.c",
    "source/components/parser/pstree.c",
    "source/components/parser/psutils.c",
    "source/components/parser/pswalk.c",
    "source/components/parser/psxface.c",
    "source/components/resources/rsaddr.c",
    "source/components/resources/rscalc.c",
    "source/components/resources/rscreate.c",
    "source/components/resources/rsdumpinfo.c",
    "source/components/resources/rsinfo.c",
    "source/components/resources/rsio.c",
    "source/components/resources/rsirq.c",
    "source/components/resources/rslist.c",
    "source/components/resources/rsmemory.c",
    "source/components/resources/rsmisc.c",
    "source/components/resources/rsserial.c",
    "source/components/resources/rsutils.c",
    "source/components/resources/rsxface.c",
    "source/components/tables/tbdata.c",
    "source/components/tables/tbfadt.c",
    "source/components/tables/tbfind.c",
    "source/components/tables/tbinstal.c",
    "source/components/tables/tbprint.c",
    "source/components/tables/tbutils.c",
    "source/components/tables/tbxface.c",
    "source/components/tables/tbxfload.c",
    "source/components/tables/tbxfroot.c",
    "source/components/utilities/utaddress.c",
    "source/components/utilities/utalloc.c",
    "source/components/utilities/utascii.c",
    "source/components/utilities/utbuffer.c",
    "source/components/utilities/utcache.c",
    "source/components/utilities/utclib.c",
    "source/components/utilities/utcopy.c",
    "source/components/utilities/utdebug.c",
    "source/components/utilities/utdecode.c",
    "source/components/utilities/utdelete.c",
    "source/components/utilities/uterror.c",
    "source/components/utilities/uteval.c",
    "source/components/utilities/utexcep.c",
    "source/components/utilities/utglobal.c",
    "source/components/utilities/uthex.c",
    "source/components/utilities/utids.c",
    "source/components/utilities/utinit.c",
    "source/components/utilities/utlock.c",
    "source/components/utilities/utmath.c",
    "source/components/utilities/utmisc.c",
    "source/components/utilities/utmutex.c",
    "source/components/utilities/utnonansi.c",
    "source/components/utilities/utobject.c",
    "source/components/utilities/utosi.c",
    "source/components/utilities/utownerid.c",
    "source/components/utilities/utpredef.c",
    "source/components/utilities/utresdecode.c",
    "source/components/utilities/utresrc.c",
    "source/components/utilities/utstate.c",
    "source/components/utilities/utstring.c",
    "source/components/utilities/utstrsuppt.c",
    "source/components/utilities/utstrtoul64.c",
    "source/components/utilities/uttrack.c",
    "source/components/utilities/utuuid.c",
    "source/components/utilities/utxface.c",
    "source/components/utilities/utxferror.c",
    "source/components/utilities/utxfinit.c",
    "source/components/utilities/utxfmutex.c",
  ]
  deps = [
    "//src/devices/pci/lib/pci",
    "//src/lib/ddk",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/zircon-internal",
    "//zircon/public/lib/bitmap",
  ]
  defines = [ "_ALL_SOURCE" ]
  if (acpica_debug_output) {
    defines += [ "ACPI_DEBUG_OUTPUT" ]
  }
  if (platform_enable_user_pci) {
    defines += [ "ENABLE_USER_PCI" ]
  }
}
