diff options
-rw-r--r-- | gdb/gdb_bfd.c | 2 | ||||
-rw-r--r-- | gdb/remote.c | 2 | ||||
-rw-r--r-- | gdb/target.c | 2 | ||||
-rw-r--r-- | gdbserver/hostio.cc | 2 | ||||
-rw-r--r-- | gdbserver/win32-low.cc | 2 | ||||
-rw-r--r-- | gdbsupport/fileio.h | 110 | ||||
-rw-r--r-- | include/gdb/fileio.h | 144 |
7 files changed, 114 insertions, 150 deletions
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c index c5a5ed9..7631e27 100644 --- a/gdb/gdb_bfd.c +++ b/gdb/gdb_bfd.c @@ -30,7 +30,7 @@ #endif #endif #include "target.h" -#include "gdb/fileio.h" +#include "gdbsupport/fileio.h" #include "inferior.h" #include "cli/cli-style.h" #include <unordered_map> diff --git a/gdb/remote.c b/gdb/remote.c index 70f918a..5bae654 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -59,7 +59,7 @@ #include "gdbcore.h" #include "remote-fileio.h" -#include "gdb/fileio.h" +#include "gdbsupport/fileio.h" #include <sys/stat.h> #include "xml-support.h" diff --git a/gdb/target.c b/gdb/target.c index 4114490..9d698af 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -40,7 +40,7 @@ #include "exec.h" #include "inline-frame.h" #include "tracepoint.h" -#include "gdb/fileio.h" +#include "gdbsupport/fileio.h" #include "gdbsupport/agent.h" #include "auxv.h" #include "target-debug.h" diff --git a/gdbserver/hostio.cc b/gdbserver/hostio.cc index 2d17b6d..4f763f3 100644 --- a/gdbserver/hostio.cc +++ b/gdbserver/hostio.cc @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "server.h" -#include "gdb/fileio.h" +#include "gdbsupport/fileio.h" #include "hostio.h" #include <fcntl.h> diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 5e2c028..af132f6 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -20,7 +20,7 @@ #include "server.h" #include "regcache.h" -#include "gdb/fileio.h" +#include "gdbsupport/fileio.h" #include "mem-break.h" #include "win32-low.h" #include "gdbthread.h" diff --git a/gdbsupport/fileio.h b/gdbsupport/fileio.h index 2b4f977..9809c16 100644 --- a/gdbsupport/fileio.h +++ b/gdbsupport/fileio.h @@ -20,9 +20,117 @@ #ifndef COMMON_FILEIO_H #define COMMON_FILEIO_H -#include "gdb/fileio.h" #include <sys/stat.h> +/* The following flags are defined to be independent of the host + as well as the target side implementation of these constants. + All constants are defined with a leading FILEIO_ in the name + to allow the usage of these constants together with the + corresponding implementation dependent constants in one module. */ + +/* open(2) flags */ +#define FILEIO_O_RDONLY 0x0 +#define FILEIO_O_WRONLY 0x1 +#define FILEIO_O_RDWR 0x2 +#define FILEIO_O_APPEND 0x8 +#define FILEIO_O_CREAT 0x200 +#define FILEIO_O_TRUNC 0x400 +#define FILEIO_O_EXCL 0x800 +#define FILEIO_O_SUPPORTED (FILEIO_O_RDONLY | FILEIO_O_WRONLY| \ + FILEIO_O_RDWR | FILEIO_O_APPEND| \ + FILEIO_O_CREAT | FILEIO_O_TRUNC| \ + FILEIO_O_EXCL) + +/* mode_t bits */ +#define FILEIO_S_IFREG 0100000 +#define FILEIO_S_IFDIR 040000 +#define FILEIO_S_IFCHR 020000 +#define FILEIO_S_IRUSR 0400 +#define FILEIO_S_IWUSR 0200 +#define FILEIO_S_IXUSR 0100 +#define FILEIO_S_IRWXU 0700 +#define FILEIO_S_IRGRP 040 +#define FILEIO_S_IWGRP 020 +#define FILEIO_S_IXGRP 010 +#define FILEIO_S_IRWXG 070 +#define FILEIO_S_IROTH 04 +#define FILEIO_S_IWOTH 02 +#define FILEIO_S_IXOTH 01 +#define FILEIO_S_IRWXO 07 +#define FILEIO_S_SUPPORTED (FILEIO_S_IFREG|FILEIO_S_IFDIR| \ + FILEIO_S_IRWXU|FILEIO_S_IRWXG| \ + FILEIO_S_IRWXO) + +/* lseek(2) flags */ +#define FILEIO_SEEK_SET 0 +#define FILEIO_SEEK_CUR 1 +#define FILEIO_SEEK_END 2 + +/* errno values */ +#define FILEIO_EPERM 1 +#define FILEIO_ENOENT 2 +#define FILEIO_EINTR 4 +#define FILEIO_EIO 5 +#define FILEIO_EBADF 9 +#define FILEIO_EACCES 13 +#define FILEIO_EFAULT 14 +#define FILEIO_EBUSY 16 +#define FILEIO_EEXIST 17 +#define FILEIO_ENODEV 19 +#define FILEIO_ENOTDIR 20 +#define FILEIO_EISDIR 21 +#define FILEIO_EINVAL 22 +#define FILEIO_ENFILE 23 +#define FILEIO_EMFILE 24 +#define FILEIO_EFBIG 27 +#define FILEIO_ENOSPC 28 +#define FILEIO_ESPIPE 29 +#define FILEIO_EROFS 30 +#define FILEIO_ENOSYS 88 +#define FILEIO_ENAMETOOLONG 91 +#define FILEIO_EUNKNOWN 9999 + +#define FIO_INT_LEN 4 +#define FIO_UINT_LEN 4 +#define FIO_MODE_LEN 4 +#define FIO_TIME_LEN 4 +#define FIO_LONG_LEN 8 +#define FIO_ULONG_LEN 8 + +typedef char fio_int_t[FIO_INT_LEN]; +typedef char fio_uint_t[FIO_UINT_LEN]; +typedef char fio_mode_t[FIO_MODE_LEN]; +typedef char fio_time_t[FIO_TIME_LEN]; +typedef char fio_long_t[FIO_LONG_LEN]; +typedef char fio_ulong_t[FIO_ULONG_LEN]; + +/* Struct stat as used in protocol. For complete independence + of host/target systems, it's defined as an array with offsets + to the members. */ + +struct fio_stat +{ + fio_uint_t fst_dev; + fio_uint_t fst_ino; + fio_mode_t fst_mode; + fio_uint_t fst_nlink; + fio_uint_t fst_uid; + fio_uint_t fst_gid; + fio_uint_t fst_rdev; + fio_ulong_t fst_size; + fio_ulong_t fst_blksize; + fio_ulong_t fst_blocks; + fio_time_t fst_atime; + fio_time_t fst_mtime; + fio_time_t fst_ctime; +}; + +struct fio_timeval +{ + fio_time_t ftv_sec; + fio_long_t ftv_usec; +}; + /* Convert a host-format errno value to a File-I/O error number. */ extern int host_to_fileio_error (int error); diff --git a/include/gdb/fileio.h b/include/gdb/fileio.h deleted file mode 100644 index f472f82..0000000 --- a/include/gdb/fileio.h +++ /dev/null @@ -1,144 +0,0 @@ -/* Hosted File I/O interface definitions, for GDB, the GNU Debugger. - - Copyright (C) 2003-2022 Free Software Foundation, Inc. - - 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; either version 3 of the License, or - (at your option) any later version. - - 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, see <http://www.gnu.org/licenses/>. */ - -#ifndef GDB_FILEIO_H_ -#define GDB_FILEIO_H_ - -/* The following flags are defined to be independent of the host - as well as the target side implementation of these constants. - All constants are defined with a leading FILEIO_ in the name - to allow the usage of these constants together with the - corresponding implementation dependent constants in one module. */ - -/* open(2) flags */ -#define FILEIO_O_RDONLY 0x0 -#define FILEIO_O_WRONLY 0x1 -#define FILEIO_O_RDWR 0x2 -#define FILEIO_O_APPEND 0x8 -#define FILEIO_O_CREAT 0x200 -#define FILEIO_O_TRUNC 0x400 -#define FILEIO_O_EXCL 0x800 -#define FILEIO_O_SUPPORTED (FILEIO_O_RDONLY | FILEIO_O_WRONLY| \ - FILEIO_O_RDWR | FILEIO_O_APPEND| \ - FILEIO_O_CREAT | FILEIO_O_TRUNC| \ - FILEIO_O_EXCL) - -/* mode_t bits */ -#define FILEIO_S_IFREG 0100000 -#define FILEIO_S_IFDIR 040000 -#define FILEIO_S_IFCHR 020000 -#define FILEIO_S_IRUSR 0400 -#define FILEIO_S_IWUSR 0200 -#define FILEIO_S_IXUSR 0100 -#define FILEIO_S_IRWXU 0700 -#define FILEIO_S_IRGRP 040 -#define FILEIO_S_IWGRP 020 -#define FILEIO_S_IXGRP 010 -#define FILEIO_S_IRWXG 070 -#define FILEIO_S_IROTH 04 -#define FILEIO_S_IWOTH 02 -#define FILEIO_S_IXOTH 01 -#define FILEIO_S_IRWXO 07 -#define FILEIO_S_SUPPORTED (FILEIO_S_IFREG|FILEIO_S_IFDIR| \ - FILEIO_S_IRWXU|FILEIO_S_IRWXG| \ - FILEIO_S_IRWXO) - -/* lseek(2) flags */ -#define FILEIO_SEEK_SET 0 -#define FILEIO_SEEK_CUR 1 -#define FILEIO_SEEK_END 2 - -/* errno values */ -#define FILEIO_EPERM 1 -#define FILEIO_ENOENT 2 -#define FILEIO_EINTR 4 -#define FILEIO_EIO 5 -#define FILEIO_EBADF 9 -#define FILEIO_EACCES 13 -#define FILEIO_EFAULT 14 -#define FILEIO_EBUSY 16 -#define FILEIO_EEXIST 17 -#define FILEIO_ENODEV 19 -#define FILEIO_ENOTDIR 20 -#define FILEIO_EISDIR 21 -#define FILEIO_EINVAL 22 -#define FILEIO_ENFILE 23 -#define FILEIO_EMFILE 24 -#define FILEIO_EFBIG 27 -#define FILEIO_ENOSPC 28 -#define FILEIO_ESPIPE 29 -#define FILEIO_EROFS 30 -#define FILEIO_ENOSYS 88 -#define FILEIO_ENAMETOOLONG 91 -#define FILEIO_EUNKNOWN 9999 - -/* limits */ -#define FILEIO_INT_MIN -2147483648L -#define FILEIO_INT_MAX 2147483647L -#define FILEIO_UINT_MAX 4294967295UL -#define FILEIO_LONG_MIN -9223372036854775808LL -#define FILEIO_LONG_MAX 9223372036854775807LL -#define FILEIO_ULONG_MAX 18446744073709551615ULL - -/* Integral types as used in protocol. */ -#if 0 -typedef __int32_t fio_int_t; -typedef __uint32_t fio_uint_t, fio_mode_t, fio_time_t; -typedef __int64_t fio_long_t; -typedef __uint64_t fio_ulong_t; -#endif - -#define FIO_INT_LEN 4 -#define FIO_UINT_LEN 4 -#define FIO_MODE_LEN 4 -#define FIO_TIME_LEN 4 -#define FIO_LONG_LEN 8 -#define FIO_ULONG_LEN 8 - -typedef char fio_int_t[FIO_INT_LEN]; -typedef char fio_uint_t[FIO_UINT_LEN]; -typedef char fio_mode_t[FIO_MODE_LEN]; -typedef char fio_time_t[FIO_TIME_LEN]; -typedef char fio_long_t[FIO_LONG_LEN]; -typedef char fio_ulong_t[FIO_ULONG_LEN]; - -/* Struct stat as used in protocol. For complete independence - of host/target systems, it's defined as an array with offsets - to the members. */ - -struct fio_stat { - fio_uint_t fst_dev; - fio_uint_t fst_ino; - fio_mode_t fst_mode; - fio_uint_t fst_nlink; - fio_uint_t fst_uid; - fio_uint_t fst_gid; - fio_uint_t fst_rdev; - fio_ulong_t fst_size; - fio_ulong_t fst_blksize; - fio_ulong_t fst_blocks; - fio_time_t fst_atime; - fio_time_t fst_mtime; - fio_time_t fst_ctime; -}; - -struct fio_timeval { - fio_time_t ftv_sec; - fio_long_t ftv_usec; -}; - -#endif /* GDB_FILEIO_H_ */ |