# 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("$zx/kernel/params.gni")

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

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

config("headers.config") {
  visibility = [ ":headers" ]
  include_dirs = [ "source/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 direclty 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" ]
  if (is_gcc) {
    cflags += [ "-Wno-format-signedness" ]
    cflags_c = [
      "-Wno-discarded-qualifiers",

      # Disable this to prevent GCC warning on strncpy() copies into char[4]
      # strings.
      "-Wno-stringop-truncation",
    ]
  } else {
    cflags += [
      "-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/acpica" ]

  configs += [ ":disable_warnings" ]

  # 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 = [
    "source/components/hardware/hwregs.c",
    "source/components/hardware/hwsleep.c",
    "source/components/hardware/hwvalid.c",
    "source/components/hardware/hwxface.c",
    "source/components/hardware/hwxfsleep.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/tbxfroot.c",
    "source/components/utilities/utalloc.c",
    "source/components/utilities/utexcep.c",
    "source/components/utilities/utglobal.c",
    "source/components/utilities/utmisc.c",
    "source/components/utilities/utstring.c",
    "source/components/utilities/utxferror.c",
  ]

  if (is_kernel) {
    sources += [ "$zx/kernel/lib/acpica/oszircon.cc" ]
    deps = [
      "$zx/kernel/platform/pc:headers",
      "$zx/kernel/vm:headers",
    ]
  } else {
    sources += [
      "$zx/system/ulib/acpica/osfuchsia.cc",
      "source/common/ahids.c",
      "source/common/ahpredef.c",
      "source/common/ahtable.c",
      "source/common/getopt.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/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/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/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/hwtimer.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/tbxfload.c",
      "source/components/utilities/utaddress.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/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/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/utprint.c",
      "source/components/utilities/utresrc.c",
      "source/components/utilities/utstate.c",
      "source/components/utilities/uttrack.c",
      "source/components/utilities/utuuid.c",
      "source/components/utilities/utxface.c",
      "source/components/utilities/utxfinit.c",
      "source/components/utilities/utxfmutex.c",
    ]
    deps = [
      "$zx/system/dev/lib/pci",
      "$zx/system/ulib/ddk",
      "$zx/system/ulib/fbl",
      "$zx/system/ulib/zircon-internal",
    ]
    defines = [ "_ALL_SOURCE" ]
    if (enable_acpi_debug) {
      defines += [ "ACPI_DEBUG_OUTPUT" ]
    }
  }

  # 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.
  if (!is_gcc) {
    cflags += [ "-fno-sanitize=undefined" ]
  }
}
