From 42fbb9c3967fcda37f2d9ae17d5796a79cf027b9 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 13 Mar 2016 13:54:57 +1100 Subject: Make osd_file a polymorphic class that's held with smart pointers Make avi_file a class that's held with smart pointers, encapsulate various AVI I/O structures Make zip_file and _7z_file classes rather than having free functions everywhere Hide zip/7z class implementation behind an interface, no longer need to call close() to send back to the cache Don't dump as much crap in global namespace Add solaris PTY implementation Improve variable expansion for SDL OSD - supports ~/$FOO/${BAR} syntax Rearrange stuff so the same things are in file module for all OSDs Move file stuff into its own module 7z/zip open and destruct are still not thread-safe due to lack of interlocks around cache access Directory functions still need to be moved to file module SDL OSD may not initialise WinSock on Windows --- src/osd/sdl/sdlptty_unix.cpp | 161 ------------------------------------------- 1 file changed, 161 deletions(-) delete mode 100644 src/osd/sdl/sdlptty_unix.cpp (limited to 'src/osd/sdl/sdlptty_unix.cpp') 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 -#include -#include -#include -#include -#if defined(SDLMAME_FREEBSD) || defined(SDLMAME_DRAGONFLY) -# include -# include -#elif defined(SDLMAME_NETBSD) || defined(SDLMAME_MACOSX) -# include -# include -#elif defined(SDLMAME_OPENBSD) -# include -# include -#elif defined(SDLMAME_LINUX) || defined(SDLMAME_EMSCRIPTEN) -# include -#elif defined(SDLMAME_HAIKU) -# include -#endif -#include - -#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 -- cgit v1.2.3-70-g09d2