Files
OpenCellular/extra/simulation.h
Bill Richardson 4e8751372a Make lightbar simulation compile again
This just brings the competely unsupported but occasionally useful lightbar
simulation tool up to date with the rest of the source tree so it will
compile and run again.

BUG=none
BRANCH=ToT
TEST=manual

cd extra
make
./lightbar

Change-Id: Iafeaaa5ac56a4b711c63d2c64d8c51ab4b324104
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/213206
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2014-08-20 21:07:15 +00:00

115 lines
3.1 KiB
C

/*
* Copyright (c) 2014 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.
*/
#ifndef _SIMULATION_H
#define _SIMULATION_H
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include "lb_common.h"
#include "lightbar.h"
/* Functions specific to our simulation environment */
void *entry_windows(void *);
void *entry_input(void *);
void *entry_lightbar(void *);
void init_windows(void);
int lb_read_params_from_file(const char *filename,
struct lightbar_params_v1 *p);
/* Interfaces to the EC code that we're encapsulating */
void lightbar_task(void);
int fake_consolecmd_lightbar(int argc, char *argv[]);
/* EC-specific configuration */
#undef DEMO_MODE_DEFAULT
#define DEMO_MODE_DEFAULT 1
#ifndef CONFIG_CONSOLE_CMDHELP
#define CONFIG_CONSOLE_CMDHELP
#endif
#ifndef CONFIG_LIGHTBAR_POWER_RAILS
#define CONFIG_LIGHTBAR_POWER_RAILS
#endif
/* Stuff that's too interleaved with the rest of the EC to just include */
/* Test an important condition at compile time, not run time */
#define _BA1_(cond, line) \
extern int __build_assertion_ ## line[1 - 2*!(cond)] \
__attribute__ ((unused))
#define _BA0_(c, x) _BA1_(c, x)
#define BUILD_ASSERT(cond) _BA0_(cond, __LINE__)
/* Number of elements in an array */
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
/* Non-standard standard library functions */
void cprintf(int zero, const char *fmt, ...);
void cprints(int zero, const char *fmt, ...);
#define ccprintf(fmt...) cprintf(0, fmt)
#define strtoi strtol
/* Task events */
#define TASK_EVENT_CUSTOM(x) (x & 0x0fffffff)
#define TASK_EVENT_I2C_IDLE 0x10000000
#define TASK_EVENT_WAKE 0x20000000
#define TASK_EVENT_MUTEX 0x40000000
#define TASK_EVENT_TIMER 0x80000000
/* Time units in usecs */
#define MSEC 1000
#define SECOND 1000000
#define TASK_ID_LIGHTBAR 0
#define CC_LIGHTBAR 0
/* Other definitions and structs */
#define EC_SUCCESS 0
#define EC_ERROR_INVAL 5
#define EC_ERROR_PARAM1 11
#define EC_ERROR_PARAM2 12
typedef int task_id_t;
typedef union {
uint64_t val;
struct {
uint32_t lo;
uint32_t hi;
} le /* little endian words */;
} timestamp_t;
struct host_cmd_handler_args {
const void *params;
void *response;
int response_size;
};
/* EC functions that we have to provide */
uint32_t task_wait_event(int timeout_us);
uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait_for_reply);
timestamp_t get_time(void);
int system_add_jump_tag(uint16_t tag, int version, int size, const void *data);
uint8_t *system_get_jump_tag(uint16_t tag, int *version, int *size);
/* Export unused static functions to avoid compiler warnings. */
#define DECLARE_HOOK(X, fn, Y) \
void fake_hook_##fn(void) { fn(); }
#define DECLARE_HOST_COMMAND(X, fn, Y) \
int fake_hostcmd_##fn(struct host_cmd_handler_args *args) \
{ return fn(args); }
#define DECLARE_CONSOLE_COMMAND(X, fn, Y...) \
int fake_consolecmd_##X(int argc, char *argv[]) \
{ return fn(argc, argv); }
#endif /* _SIMULATION_H */