From f582a36e4df16d5709943f7df17a900c8bcc12ab Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Wed, 25 May 2016 11:37:40 -0400 Subject: Initial commit of source code. Signed-off-by: Kevin O'Connor --- src/simulator/main.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/simulator/main.c (limited to 'src/simulator/main.c') diff --git a/src/simulator/main.c b/src/simulator/main.c new file mode 100644 index 00000000..2d43a138 --- /dev/null +++ b/src/simulator/main.c @@ -0,0 +1,102 @@ +// Main starting point for host simulator. +// +// Copyright (C) 2016 Kevin O'Connor +// +// This file may be distributed under the terms of the GNU GPLv3 license. + +#include +#include +#include +#include "sched.h" // sched_main + +uint8_t Interrupt_off; + + +/**************************************************************** + * Timers + ****************************************************************/ + +uint32_t +timer_from_ms(uint32_t ms) +{ + return 0; // XXX +} + +void +timer_periodic(void) +{ +} + +uint32_t +timer_read_time(void) +{ + return 0; // XXX +} + +uint8_t +timer_set_next(uint32_t next) +{ + return 0; +} + +uint8_t +timer_try_set_next(uint32_t next) +{ + return 1; +} + + +/**************************************************************** + * Turn stdin/stdout into serial console + ****************************************************************/ + +// XXX +char * +console_get_input(uint8_t *plen) +{ + *plen = 0; + return NULL; +} + +void +console_pop_input(uint8_t len) +{ +} + +// Return an output buffer that the caller may fill with transmit messages +char * +console_get_output(uint8_t len) +{ + return NULL; +} + +// Accept the given number of bytes added to the transmit buffer +void +console_push_output(uint8_t len) +{ +} + + +/**************************************************************** + * Startup + ****************************************************************/ + +// Periodically sleep so we don't consume all CPU +static void +simu_pause(void) +{ + // XXX - should check that no timers are present. + usleep(1); +} +DECL_TASK(simu_pause); + +// Main entry point for simulator. +int +main(void) +{ + // Make stdin non-blocking + fcntl(STDIN_FILENO, F_SETFL, fcntl(STDIN_FILENO, F_GETFL, 0) | O_NONBLOCK); + + sched_main(); + return 0; +} -- cgit v1.2.3-70-g09d2