/* Copyright 2016 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "console.h" #include "device_state.h" #include "hooks.h" int device_get_state(enum device_type device) { return device_states[device].state; } int device_set_state(enum device_type device, enum device_state state) { device_states[device].state = state; if (state != DEVICE_STATE_UNKNOWN && device_states[device].last_known_state != state) { device_states[device].last_known_state = state; return 1; } return 0; } static void check_device_state(void) { int i; for (i = 0; i < DEVICE_COUNT; i++) board_update_device_state(i); } DECLARE_HOOK(HOOK_SECOND, check_device_state, HOOK_PRIO_DEFAULT); static void print_state(const char *name, enum device_state state) { ccprintf("%-9s %s\n", name, state == DEVICE_STATE_ON ? "on" : state == DEVICE_STATE_OFF ? "off" : "unknown"); } static int command_devices(int argc, char **argv) { int i; for (i = 0; i < DEVICE_COUNT; i++) print_state(device_states[i].name, device_states[i].state); return EC_SUCCESS; } DECLARE_SAFE_CONSOLE_COMMAND(devices, command_devices, "", "Get the device states");