content: # Copyright(c) The Maintainers of Nanvix.
  # Licensed under the MIT License.
  
  [package]
  name = "kernel"
  version.workspace = true
  license-file.workspace = true
  edition.workspace = true
  authors.workspace = true
  description = "Nanvix Kernel"
  homepage.workspace = true
  
  [[bin]]
  name = "kernel"
  path = "src/kmain.rs"
  
  [dependencies]
  arch = { workspace = true }
  bitmap = { workspace = true }
  cfg-if = { workspace = true }
  config = { workspace = true, optional = true }
  type-safe = { workspace = true }
  raw-array = { workspace = true }
  slab = { workspace = true }
  sys = { workspace = true }
  hyperlight-common = { workspace = true, optional = true }
  hyperlight-guest = { workspace = true, optional = true }
  static_assert = { workspace = true }
  
  [build-dependencies]
  cc = { workspace = true }
  cfg-if = { workspace = true }
  
  [features]
  default = ["microvm"]
  
  # Machine Types
  hyperlight = [
      "arch/hyperlight",
      "putb",
      "puts",
      "stdio",
      "acpi",
      "cpuid",
      "ioapic",
      "madt",
      "msr",
      "pic",
      "pit",
      "xapic",
      "dep:hyperlight-common",
      "dep:hyperlight-guest",
      "dep:config",
      "config/hyperlight",
  ]
  microvm = [
      "arch/microvm",
      "putb",
      "stdio",
      "acpi",
      "cpuid",
      "ioapic",
      "madt",
      "msr",
      "pic",
      "pit",
      "xapic",
      "dep:config",
      "config/microvm",
  ]
  pc = [
      "arch/pc",
      "putb",
      "bios",
      "cmos",
      "mboot",
      "pit",
      "warn",
      "acpi",
      "cpuid",
      "ioapic",
      "madt",
      "msr",
      "pic",
      "xapic",
      "dep:config",
      "config/pc",
  ]
  qemu-pc = ["arch/qemu-pc", "pc"]
  qemu-pc-smp = ["arch/qemu-pc-smp", "qemu-pc", "smp"]
  qemu-baremetal = ["arch/qemu-baremetal", "pc"]
  qemu-baremetal-smp = ["arch/qemu-baremetal-smp", "qemu-baremetal", "smp"]
  qemu-isapc = ["arch/qemu-isapc", "pc"]
  
  # Architecture Features
  acpi = []
  cpuid = []
  ioapic = []
  madt = []
  msr = []
  pic = []
  xapic = []
  
  # Platform Features
  smp = []
  bios = []
  cmos = []
  mboot = []
  pit = []
  putb = []
  puts = []
  stdio = []
  
  # Interface Features
  kcall = []
  
  # Logging Features
  trace = ["debug"]
  debug = ["info"]
  info = ["warn"]
  warn = ["error"]
  error = ["panic"]
  panic = []
  