mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 17:11:42 +00:00
This tests reboot-on-ap-shutdown. BUG=chrome-os-partner:19236 TEST=Pass the test BRANCH=None Change-Id: Ic1a07670f82646e85d014d52a2aba0835319c212 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/62855 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
66 lines
1.3 KiB
C
66 lines
1.3 KiB
C
/* Copyright (c) 2013 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.
|
|
*/
|
|
|
|
/* Chipset module for emulator */
|
|
|
|
#include <stdio.h>
|
|
#include "chipset.h"
|
|
#include "common.h"
|
|
#include "hooks.h"
|
|
#include "task.h"
|
|
#include "test_util.h"
|
|
|
|
static int chipset_state = CHIPSET_STATE_SOFT_OFF;
|
|
static int power_on_req;
|
|
static int power_off_req;
|
|
|
|
test_mockable void chipset_reset(int cold_reset)
|
|
{
|
|
fprintf(stderr, "Chipset reset!\n");
|
|
}
|
|
|
|
test_mockable void chipset_force_shutdown(void)
|
|
{
|
|
/* Do nothing */
|
|
}
|
|
|
|
test_mockable int chipset_in_state(int state_mask)
|
|
{
|
|
return state_mask & chipset_state;
|
|
}
|
|
|
|
void test_chipset_on(void)
|
|
{
|
|
if (chipset_in_state(CHIPSET_STATE_ON))
|
|
return;
|
|
power_on_req = 1;
|
|
task_wake(TASK_ID_CHIPSET);
|
|
}
|
|
|
|
void test_chipset_off(void)
|
|
{
|
|
if (chipset_in_state(CHIPSET_STATE_ANY_OFF))
|
|
return;
|
|
power_off_req = 1;
|
|
task_wake(TASK_ID_CHIPSET);
|
|
}
|
|
|
|
test_mockable void chipset_task(void)
|
|
{
|
|
while (1) {
|
|
while (!power_on_req)
|
|
task_wait_event(-1);
|
|
power_on_req = 0;
|
|
hook_notify(HOOK_CHIPSET_PRE_INIT);
|
|
chipset_state = CHIPSET_STATE_ON;
|
|
hook_notify(HOOK_CHIPSET_STARTUP);
|
|
while (!power_off_req)
|
|
task_wait_event(-1);
|
|
power_off_req = 0;
|
|
chipset_state = CHIPSET_STATE_SOFT_OFF;
|
|
hook_notify(HOOK_CHIPSET_SHUTDOWN);
|
|
}
|
|
}
|