diff options
Diffstat (limited to 'src/osd/sdl/sdlptty_unix.cpp')
-rw-r--r-- | src/osd/sdl/sdlptty_unix.cpp | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/src/osd/sdl/sdlptty_unix.cpp b/src/osd/sdl/sdlptty_unix.cpp deleted file mode 100644 index 063b999b75d..00000000000 --- a/src/osd/sdl/sdlptty_unix.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert, R. Belmont -//============================================================ -// -// sdlptty_unix.c - SDL pseudo tty access functions -// -// SDLMAME by Olivier Galibert and R. Belmont -// -//============================================================ - -#if (!defined(SDLMAME_SOLARIS)) - -#include <sys/types.h> -#include <sys/uio.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> -#if defined(SDLMAME_FREEBSD) || defined(SDLMAME_DRAGONFLY) -# include <termios.h> -# include <libutil.h> -#elif defined(SDLMAME_NETBSD) || defined(SDLMAME_MACOSX) -# include <termios.h> -# include <util.h> -#elif defined(SDLMAME_OPENBSD) -# include <termios.h> -# include <util.h> -#elif defined(SDLMAME_LINUX) || defined(SDLMAME_EMSCRIPTEN) -# include <pty.h> -#elif defined(SDLMAME_HAIKU) -# include <bsd/pty.h> -#endif -#include <stdlib.h> - -#include "sdlfile.h" - -#if defined(SDLMAME_MACOSX) -const char *sdlfile_ptty_identifier = "/dev/pty"; -#else -const char *sdlfile_ptty_identifier = "/dev/pts"; -#endif - -file_error sdl_open_ptty(const char *path, UINT32 openflags, osd_file **file, UINT64 *filesize) -{ - int master; - int aslave; - struct termios tios; - int oldflags; - - memset(&tios , 0 , sizeof(tios)); - cfmakeraw(&tios); - - if (openpty(&master, &aslave, NULL, &tios, NULL) >= 0) - { - oldflags = fcntl(master, F_GETFL, 0); - if (oldflags == -1) { - close(master); - return FILERR_FAILURE; - } - - fcntl(master, F_SETFL, oldflags | O_NONBLOCK); - close(aslave); - (*file)->handle = master; - *filesize = 0; - } - else - { - return FILERR_ACCESS_DENIED; - } - - return FILERR_NONE; -} - -file_error sdl_read_ptty(osd_file *file, void *buffer, UINT64 offset, UINT32 count, UINT32 *actual) -{ - ssize_t result; - - result = read(file->handle, buffer, count); - - if (result < 0) - { - return error_to_file_error(errno); - } - - if (actual != NULL ) - { - *actual = result; - } - - return FILERR_NONE; -} - -file_error sdl_write_ptty(osd_file *file, const void *buffer, UINT64 offset, UINT32 count, UINT32 *actual) -{ - ssize_t result; - result = write(file->handle, buffer, count); - - if (result < 0) - { - return error_to_file_error(errno); - } - - if (actual != NULL ) - { - *actual = result; - } - - return FILERR_NONE; -} - -file_error sdl_close_ptty(osd_file *file) -{ - close(file->handle); - osd_free(file); - - return FILERR_NONE; -} - -file_error sdl_slave_name_ptty(osd_file *file , char *name , size_t name_len) -{ - const char *slave_name = ptsname(file->handle); - - if (slave_name == NULL || strlen(slave_name) >= name_len) { - return FILERR_INVALID_ACCESS; - } - - strcpy(name , slave_name); - - return FILERR_NONE; -} - -#else -#include "sdlfile.h" - -const char *sdlfile_ptty_identifier = ""; - -file_error sdl_open_ptty(const char *path, UINT32 openflags, osd_file **file, UINT64 *filesize) -{ - return FILERR_ACCESS_DENIED; -} - -file_error sdl_read_ptty(osd_file *file, void *buffer, UINT64 offset, UINT32 count, UINT32 *actual) -{ - return FILERR_ACCESS_DENIED; -} - -file_error sdl_write_ptty(osd_file *file, const void *buffer, UINT64 offset, UINT32 count, UINT32 *actual) -{ - return FILERR_ACCESS_DENIED; -} - -file_error sdl_close_ptty(osd_file *file) -{ - return FILERR_ACCESS_DENIED; -} - -file_error sdl_slave_name_ptty(osd_file *file) -{ - return FILERR_ACCESS_DENIED; -} - -#endif |