# 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("//zircon/system/ulib/hwreg/hwreg_asm_header.gni")

source_set("threads") {
  testonly = true
  sources = [
    "register-set.S",
    "register-set.cc",
    "threads.cc",
  ]
  deps = [
    ":register-set-asm",
    ":thread-functions",
    "//zircon/kernel/lib/arch",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/mini-process",
    "//zircon/system/ulib/runtime",
    "//zircon/system/ulib/test-exceptions",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxtest",
  ]
}

source_set("thread-functions") {
  testonly = true
  visibility = [ ":*" ]
  sources = [ "thread-functions/thread-functions.cc" ]
  configs += [ "//build/config/sanitizers:no_sanitizers" ]
  deps = [ "//zircon/system/ulib/runtime" ]
}

hwreg_asm_header("register-set-asm") {
  visibility = [ ":*" ]
  testonly = true

  output_name = "register-set-asm.h"
  sources = [ "gen-register-set-asm.cc" ]
}
