/* Copyright 2016 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef __CTS_COMMON_H #define __CTS_COMMON_H #include "console.h" /* Console output macros */ #define CPUTS(outstr) cputs(CC_SYSTEM, outstr) #define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ##args) #define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args) #define CPRINTL(format, args...) \ CPRINTS("%s:%d: " format, __func__, __LINE__, ##args) #define READ_WAIT_TIME_MS 100 #define CTS_INTERRUPT_TRIGGER_DELAY_US (250 * MSEC) enum cts_rc { #include "cts.rc" }; struct cts_test { enum cts_rc (*run)(void); char *name; }; extern const int cts_test_count; /** * Main loop where each test in a suite is executed * * A test suite can implement its custom loop as needed. * * Args: * @test: List of tests to run * @name: Name of the test to be printed on EC console */ void cts_main_loop(const struct cts_test *tests, const char *name); /** * Callback function called at the beginning of the main loop */ void clean_state(void); /** * Synchronize DUT and TH * * @return CTS_RC_SUCCESS if sync is successful */ enum cts_rc sync(void); #endif