/* StarForth — Steady-State Virtual Machine Runtime Copyright (c) 2023–2025 Robert A. James All rights reserved. This file is part of the StarForth project. Licensed under the StarForth License, Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: https://github.com/star.4th@proton.me/StarForth/LICENSE.txt This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. See the License for the specific language governing permissions and limitations under the License. */ /* * platform_io.h - Portable terminal-input-readiness check for StarForth * * One function, same shape as platform_lock.h/platform_time.h: a single * portable declaration, implemented once per platform (POSIX select() on * fd 0 for the hosted build, src/platform/linux/io.c; the kernel's own * console/keyboard-event bridge for the freestanding build, shim.c). * Backs the standard dictionary's ?TERMINAL word (io_words.c). */ #ifndef STARFORTH_PLATFORM_IO_H #define STARFORTH_PLATFORM_IO_H /** * @brief Non-blocking check for whether a key/character is available to read. * * Must not block and must not consume the byte if one is found (a * following KEY/getchar() must still return that same byte). * * @return 1 if input is ready, 0 otherwise */ int sf_terminal_ready(void); #endif /* STARFORTH_PLATFORM_IO_H */