diff options
| author | Keith Packard <keithp@keithp.com> | 2017-12-10 18:32:18 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-12-11 12:20:25 -0800 | 
| commit | b0de72d942eb87c5acd190878dd57ca4f812e8a1 (patch) | |
| tree | 20e5f62cb40406db90be6bc916021de9caa16a59 /src/stm-scheme-newlib/ao_scheme_os.h | |
| parent | 655576011e9cc648c7c4bbf51179744a427ff237 (diff) | |
altos: Add scheme for stm discovery board demo
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/stm-scheme-newlib/ao_scheme_os.h')
| -rw-r--r-- | src/stm-scheme-newlib/ao_scheme_os.h | 78 | 
1 files changed, 78 insertions, 0 deletions
diff --git a/src/stm-scheme-newlib/ao_scheme_os.h b/src/stm-scheme-newlib/ao_scheme_os.h new file mode 100644 index 00000000..21b6001a --- /dev/null +++ b/src/stm-scheme-newlib/ao_scheme_os.h @@ -0,0 +1,78 @@ +/* + * Copyright © 2016 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#ifndef _AO_SCHEME_OS_H_ +#define _AO_SCHEME_OS_H_ + +#include "ao.h" + +#define AO_SCHEME_POOL		10240 + +#ifndef __BYTE_ORDER +#define	__LITTLE_ENDIAN	1234 +#define	__BIG_ENDIAN	4321 +#define __BYTE_ORDER	__LITTLE_ENDIAN +#endif + +static inline int +ao_scheme_getc() { +	static uint8_t	at_eol; +	int c; + +	if (at_eol) { +		ao_cmd_readline(); +		at_eol = 0; +	} +	c = ao_cmd_lex(); +	if (c == '\n') +		at_eol = 1; +	return c; +} + +static inline void +ao_scheme_os_flush(void) +{ +	flush(); +} + +static inline void +ao_scheme_abort(void) +{ +	ao_panic(1); +} + +static inline void +ao_scheme_os_led(int led) +{ +	ao_led_set(led); +} + +#define AO_SCHEME_JIFFIES_PER_SECOND	AO_HERTZ + +static inline void +ao_scheme_os_delay(int delay) +{ +	ao_delay(delay); +} + +static inline int +ao_scheme_os_jiffy(void) +{ +	return ao_tick_count; +} + +#endif  | 
