# Copyright 2020 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("//build/zbi/kernel_cmdline.gni")

kernel_cmdline("blobfs.cache-eviction-policy--NEVER_EVICT") {
  args = [ "blobfs.cache-eviction-policy=NEVER_EVICT" ]
}

kernel_cmdline("console.shell--true") {
  args = [ "console.shell=true" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("console.shell--false") {
  args = [ "console.shell=false" ]
}

kernel_cmdline("devmgr.log-to-debuglog--true") {
  args = [ "devmgr.log-to-debuglog=true" ]
}

kernel_cmdline("kernel.enable-debugging-syscalls--true") {
  args = [ "kernel.enable-debugging-syscalls=true" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("kernel.enable-debugging-syscalls--false") {
  args = [ "kernel.enable-debugging-syscalls=false" ]
}

kernel_cmdline("kernel.enable-serial-syscalls--true") {
  args = [ "kernel.enable-serial-syscalls=true" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("kernel.enable-serial-syscalls--output-only") {
  args = [ "kernel.enable-serial-syscalls=output-only" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("kernel.enable-serial-syscalls--false") {
  args = [ "kernel.enable-serial-syscalls=false" ]
}

kernel_cmdline("kernel.halt-on-panic--true") {
  args = [ "kernel.halt-on-panic=true" ]
}

kernel_cmdline("kernel.oom.behavior--jobkill") {
  args = [ "kernel.oom.behavior=jobkill" ]
}

kernel_cmdline("kernel.oom.behavior--reboot") {
  args = [ "kernel.oom.behavior=reboot" ]
}

kernel_cmdline("kernel.serial--legacy") {
  args = [ "kernel.serial=legacy" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("kernel.serial--acpi") {
  args = [ "kernel.serial=acpi" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("kernel.serial--none") {
  args = [ "kernel.serial=none" ]
}

kernel_cmdline("netsvc.all-features--true") {
  args = [ "netsvc.all-features=true" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("netsvc.disable--false") {
  args = [ "netsvc.disable=false" ]
  deps = [ "//build/validate:non_production_tag" ]
}

kernel_cmdline("netsvc.disable--true") {
  args = [ "netsvc.disable=true" ]
}

kernel_cmdline("virtcon.hide-on-boot") {
  args = [ "virtcon.hide-on-boot" ]
}

kernel_cmdline("virtcon.disable--true") {
  args = [ "virtcon.disable=true" ]
}

kernel_cmdline("virtcon.keep-log-visible--true") {
  args = [ "virtcon.keep-log-visible=true" ]
}

kernel_cmdline("ktrace.grpmask-0") {
  args = [ "ktrace.grpmask=0" ]
}

kernel_cmdline("kernel.pmm-checker.enable--false") {
  args = [ "kernel.pmm-checker.enable=false" ]
}
