mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-01 01:45:51 +08:00
* hostio.c: Don't include errno.h.
(errno_to_fileio_errno): Move to hostio-errno. * hostio.c: (hostio_error): Remove the error parameter. Defer the error number outputting to the target->hostio_last_error callback. (hostio_packet_error): Use FILEIO_EINVAL directly. (handle_open, handle_pread, hostio_error, handle_unlink): Update calls to hostio_error. * hostio-errno.c: New. * server.h (hostio_last_error_from_errno): Declare. * target.h (target_ops): Add hostio_last_error member. * linux-low.c (linux_target_op): Register hostio_last_error_from_errno as hostio_last_error handler. * spu-low.c (spu_target_ops): Likewise. * win32-low.c [_WIN32_WCE] (win32_error_to_fileio_error) (wince_hostio_last_error): New functions. (win32_target_ops) [_WIN32_WCE]: Register wince_hostio_last_error as hostio_last_error handler. (win32_target_ops) [!_WIN32_WCE]: Register hostio_last_error_from_errno as hostio_last_error handler. * Makefile.in (SFILES): Add hostio.c and hostio-errno.c. (hostio-errno.o): New rule. * configure.ac (GDBSERVER_DEPFILES): Add $srv_hostio_err_objs. * configure.srv (srv_hostio_err_objs): New variable. Default to hostio-errno.o. (arm*-*-mingw32ce*): Set srv_hostio_err_objs to "". * configure: Regenerate.
This commit is contained in:
@ -1,3 +1,32 @@
|
|||||||
|
2008-02-01 Pedro Alves <pedro_alves@portugalmail.pt>
|
||||||
|
|
||||||
|
* hostio.c: Don't include errno.h.
|
||||||
|
(errno_to_fileio_errno): Move to hostio-errno.
|
||||||
|
* hostio.c: (hostio_error): Remove the error parameter. Defer the
|
||||||
|
error number outputting to the target->hostio_last_error callback.
|
||||||
|
(hostio_packet_error): Use FILEIO_EINVAL directly.
|
||||||
|
(handle_open, handle_pread, hostio_error, handle_unlink): Update
|
||||||
|
calls to hostio_error.
|
||||||
|
* hostio-errno.c: New.
|
||||||
|
* server.h (hostio_last_error_from_errno): Declare.
|
||||||
|
* target.h (target_ops): Add hostio_last_error member.
|
||||||
|
* linux-low.c (linux_target_op): Register hostio_last_error_from_errno
|
||||||
|
as hostio_last_error handler.
|
||||||
|
* spu-low.c (spu_target_ops): Likewise.
|
||||||
|
* win32-low.c [_WIN32_WCE] (win32_error_to_fileio_error)
|
||||||
|
(wince_hostio_last_error): New functions.
|
||||||
|
(win32_target_ops) [_WIN32_WCE]: Register wince_hostio_last_error
|
||||||
|
as hostio_last_error handler.
|
||||||
|
(win32_target_ops) [!_WIN32_WCE]: Register
|
||||||
|
hostio_last_error_from_errno as hostio_last_error handler.
|
||||||
|
* Makefile.in (SFILES): Add hostio.c and hostio-errno.c.
|
||||||
|
(hostio-errno.o): New rule.
|
||||||
|
* configure.ac (GDBSERVER_DEPFILES): Add $srv_hostio_err_objs.
|
||||||
|
* configure.srv (srv_hostio_err_objs): New variable. Default to
|
||||||
|
hostio-errno.o.
|
||||||
|
(arm*-*-mingw32ce*): Set srv_hostio_err_objs to "".
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2008-01-29 Daniel Jacobowitz <dan@codesourcery.com>
|
2008-01-29 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* linux-low.c (linux_attach_lwp): Do not _exit after errors.
|
* linux-low.c (linux_attach_lwp): Do not _exit after errors.
|
||||||
|
@ -130,7 +130,8 @@ SFILES= $(srcdir)/gdbreplay.c $(srcdir)/inferiors.c \
|
|||||||
$(srcdir)/linux-s390-low.c \
|
$(srcdir)/linux-s390-low.c \
|
||||||
$(srcdir)/linux-sh-low.c $(srcdir)/linux-x86-64-low.c \
|
$(srcdir)/linux-sh-low.c $(srcdir)/linux-x86-64-low.c \
|
||||||
$(srcdir)/win32-arm-low.c $(srcdir)/win32-i386-low.c \
|
$(srcdir)/win32-arm-low.c $(srcdir)/win32-i386-low.c \
|
||||||
$(srcdir)/win32-low.c $(srcdir)/wincecompat.c
|
$(srcdir)/win32-low.c $(srcdir)/wincecompat.c \
|
||||||
|
$(srcdir)/hostio.c $(srcdir)/hostio-errno.c
|
||||||
|
|
||||||
DEPFILES = @GDBSERVER_DEPFILES@
|
DEPFILES = @GDBSERVER_DEPFILES@
|
||||||
|
|
||||||
@ -278,6 +279,7 @@ server_h = $(srcdir)/server.h $(regcache_h) config.h $(srcdir)/target.h \
|
|||||||
$(srcdir)/mem-break.h
|
$(srcdir)/mem-break.h
|
||||||
|
|
||||||
hostio.o: hostio.c $(server_h)
|
hostio.o: hostio.c $(server_h)
|
||||||
|
hostio-errno.o: hostio-errno.c $(server_h)
|
||||||
inferiors.o: inferiors.c $(server_h)
|
inferiors.o: inferiors.c $(server_h)
|
||||||
mem-break.o: mem-break.c $(server_h)
|
mem-break.o: mem-break.c $(server_h)
|
||||||
proc-service.o: proc-service.c $(server_h) $(gdb_proc_service_h)
|
proc-service.o: proc-service.c $(server_h) $(gdb_proc_service_h)
|
||||||
|
2
gdb/gdbserver/configure
vendored
2
gdb/gdbserver/configure
vendored
@ -4403,7 +4403,7 @@ _ACEOF
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
|
GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
|
||||||
GDBSERVER_LIBS="$srv_libs"
|
GDBSERVER_LIBS="$srv_libs"
|
||||||
|
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ if test "$srv_xmltarget" != ""; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_thread_depfiles"
|
GDBSERVER_DEPFILES="$srv_regobj $srv_tgtobj $srv_hostio_err_objs $srv_thread_depfiles"
|
||||||
GDBSERVER_LIBS="$srv_libs"
|
GDBSERVER_LIBS="$srv_libs"
|
||||||
|
|
||||||
AC_SUBST(GDBSERVER_DEPFILES)
|
AC_SUBST(GDBSERVER_DEPFILES)
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
# srv_regobj The register protocol appropriate for this target.
|
# srv_regobj The register protocol appropriate for this target.
|
||||||
# srv_tgtobj Any other target-specific modules appropriate
|
# srv_tgtobj Any other target-specific modules appropriate
|
||||||
# for this target.
|
# for this target.
|
||||||
|
# srv_hostio_err The object implementing the hostio_last_error
|
||||||
|
# target method.
|
||||||
# srv_xmltarget The XML source file to use for target.xml, if any.
|
# srv_xmltarget The XML source file to use for target.xml, if any.
|
||||||
# srv_xmlfiles Any other XML files which should be available for
|
# srv_xmlfiles Any other XML files which should be available for
|
||||||
# gdbserver in this configuration.
|
# gdbserver in this configuration.
|
||||||
@ -18,6 +20,9 @@
|
|||||||
# srv_linux_usrregs Set to "yes" if we can get at registers via
|
# srv_linux_usrregs Set to "yes" if we can get at registers via
|
||||||
# PTRACE_PEEKUSR / PTRACE_POKEUSR.
|
# PTRACE_PEEKUSR / PTRACE_POKEUSR.
|
||||||
|
|
||||||
|
# Default hostio_last_error implementation
|
||||||
|
srv_hostio_err_objs="hostio-errno.o"
|
||||||
|
|
||||||
# Input is taken from the "${target}" variable.
|
# Input is taken from the "${target}" variable.
|
||||||
|
|
||||||
case "${target}" in
|
case "${target}" in
|
||||||
@ -36,6 +41,8 @@ case "${target}" in
|
|||||||
arm*-*-mingw32ce*) srv_regobj=reg-arm.o
|
arm*-*-mingw32ce*) srv_regobj=reg-arm.o
|
||||||
srv_tgtobj="win32-low.o win32-arm-low.o"
|
srv_tgtobj="win32-low.o win32-arm-low.o"
|
||||||
srv_tgtobj="${srv_tgtobj} wincecompat.o"
|
srv_tgtobj="${srv_tgtobj} wincecompat.o"
|
||||||
|
# hostio_last_error implementation is in win32-low.c
|
||||||
|
srv_hostio_err_objs=""
|
||||||
srv_mingw=yes
|
srv_mingw=yes
|
||||||
srv_mingwce=yes
|
srv_mingwce=yes
|
||||||
;;
|
;;
|
||||||
|
88
gdb/gdbserver/hostio-errno.c
Normal file
88
gdb/gdbserver/hostio-errno.c
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/* Host file transfer support for gdbserver.
|
||||||
|
Copyright (C) 2007, 2008 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
Contributed by CodeSourcery.
|
||||||
|
|
||||||
|
This file is part of GDB.
|
||||||
|
|
||||||
|
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 2 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, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
Boston, MA 02110-1301, USA. */
|
||||||
|
|
||||||
|
/* This file implements the hostio_last_error target callback
|
||||||
|
on top of errno. */
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include "server.h"
|
||||||
|
#include "gdb/fileio.h"
|
||||||
|
|
||||||
|
static int
|
||||||
|
errno_to_fileio_error (int error)
|
||||||
|
{
|
||||||
|
switch (error)
|
||||||
|
{
|
||||||
|
case EPERM:
|
||||||
|
return FILEIO_EPERM;
|
||||||
|
case ENOENT:
|
||||||
|
return FILEIO_ENOENT;
|
||||||
|
case EINTR:
|
||||||
|
return FILEIO_EINTR;
|
||||||
|
case EIO:
|
||||||
|
return FILEIO_EIO;
|
||||||
|
case EBADF:
|
||||||
|
return FILEIO_EBADF;
|
||||||
|
case EACCES:
|
||||||
|
return FILEIO_EACCES;
|
||||||
|
case EFAULT:
|
||||||
|
return FILEIO_EFAULT;
|
||||||
|
case EBUSY:
|
||||||
|
return FILEIO_EBUSY;
|
||||||
|
case EEXIST:
|
||||||
|
return FILEIO_EEXIST;
|
||||||
|
case ENODEV:
|
||||||
|
return FILEIO_ENODEV;
|
||||||
|
case ENOTDIR:
|
||||||
|
return FILEIO_ENOTDIR;
|
||||||
|
case EISDIR:
|
||||||
|
return FILEIO_EISDIR;
|
||||||
|
case EINVAL:
|
||||||
|
return FILEIO_EINVAL;
|
||||||
|
case ENFILE:
|
||||||
|
return FILEIO_ENFILE;
|
||||||
|
case EMFILE:
|
||||||
|
return FILEIO_EMFILE;
|
||||||
|
case EFBIG:
|
||||||
|
return FILEIO_EFBIG;
|
||||||
|
case ENOSPC:
|
||||||
|
return FILEIO_ENOSPC;
|
||||||
|
case ESPIPE:
|
||||||
|
return FILEIO_ESPIPE;
|
||||||
|
case EROFS:
|
||||||
|
return FILEIO_EROFS;
|
||||||
|
case ENOSYS:
|
||||||
|
return FILEIO_ENOSYS;
|
||||||
|
case ENAMETOOLONG:
|
||||||
|
return FILEIO_ENAMETOOLONG;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FILEIO_EUNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hostio_last_error_from_errno (char *buf)
|
||||||
|
{
|
||||||
|
int error = errno;
|
||||||
|
int fileio_error = errno_to_fileio_error (error);
|
||||||
|
sprintf (buf, "F-1,%x", fileio_error);
|
||||||
|
}
|
@ -23,7 +23,6 @@
|
|||||||
#include "server.h"
|
#include "server.h"
|
||||||
#include "gdb/fileio.h"
|
#include "gdb/fileio.h"
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -176,69 +175,18 @@ require_valid_fd (int fd)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
/* Fill in own_buf with the last hostio error packet, however it
|
||||||
errno_to_fileio_errno (int error)
|
suitable for the target. */
|
||||||
{
|
|
||||||
switch (error)
|
|
||||||
{
|
|
||||||
case EPERM:
|
|
||||||
return FILEIO_EPERM;
|
|
||||||
case ENOENT:
|
|
||||||
return FILEIO_ENOENT;
|
|
||||||
case EINTR:
|
|
||||||
return FILEIO_EINTR;
|
|
||||||
case EIO:
|
|
||||||
return FILEIO_EIO;
|
|
||||||
case EBADF:
|
|
||||||
return FILEIO_EBADF;
|
|
||||||
case EACCES:
|
|
||||||
return FILEIO_EACCES;
|
|
||||||
case EFAULT:
|
|
||||||
return FILEIO_EFAULT;
|
|
||||||
case EBUSY:
|
|
||||||
return FILEIO_EBUSY;
|
|
||||||
case EEXIST:
|
|
||||||
return FILEIO_EEXIST;
|
|
||||||
case ENODEV:
|
|
||||||
return FILEIO_ENODEV;
|
|
||||||
case ENOTDIR:
|
|
||||||
return FILEIO_ENOTDIR;
|
|
||||||
case EISDIR:
|
|
||||||
return FILEIO_EISDIR;
|
|
||||||
case EINVAL:
|
|
||||||
return FILEIO_EINVAL;
|
|
||||||
case ENFILE:
|
|
||||||
return FILEIO_ENFILE;
|
|
||||||
case EMFILE:
|
|
||||||
return FILEIO_EMFILE;
|
|
||||||
case EFBIG:
|
|
||||||
return FILEIO_EFBIG;
|
|
||||||
case ENOSPC:
|
|
||||||
return FILEIO_ENOSPC;
|
|
||||||
case ESPIPE:
|
|
||||||
return FILEIO_ESPIPE;
|
|
||||||
case EROFS:
|
|
||||||
return FILEIO_EROFS;
|
|
||||||
case ENOSYS:
|
|
||||||
return FILEIO_ENOSYS;
|
|
||||||
case ENAMETOOLONG:
|
|
||||||
return FILEIO_ENAMETOOLONG;
|
|
||||||
}
|
|
||||||
return FILEIO_EUNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
hostio_error (char *own_buf, int error)
|
hostio_error (char *own_buf)
|
||||||
{
|
{
|
||||||
int fileio_error = errno_to_fileio_errno (error);
|
the_target->hostio_last_error (own_buf);
|
||||||
|
|
||||||
sprintf (own_buf, "F-1,%x", fileio_error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
hostio_packet_error (char *own_buf)
|
hostio_packet_error (char *own_buf)
|
||||||
{
|
{
|
||||||
hostio_error (own_buf, EINVAL);
|
sprintf (own_buf, "F-1,%x", FILEIO_EINVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -342,7 +290,7 @@ handle_open (char *own_buf)
|
|||||||
|
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
{
|
{
|
||||||
hostio_error (own_buf, errno);
|
hostio_error (own_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -386,7 +334,7 @@ handle_pread (char *own_buf, int *new_packet_len)
|
|||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
hostio_error (own_buf, errno);
|
hostio_error (own_buf);
|
||||||
free (data);
|
free (data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -434,7 +382,7 @@ handle_pwrite (char *own_buf, int packet_len)
|
|||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
hostio_error (own_buf, errno);
|
hostio_error (own_buf);
|
||||||
free (data);
|
free (data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -464,7 +412,7 @@ handle_close (char *own_buf)
|
|||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
hostio_error (own_buf, errno);
|
hostio_error (own_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,7 +447,7 @@ handle_unlink (char *own_buf)
|
|||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
hostio_error (own_buf, errno);
|
hostio_error (own_buf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2053,6 +2053,8 @@ static struct target_ops linux_target_ops = {
|
|||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
linux_arch_string,
|
linux_arch_string,
|
||||||
|
NULL,
|
||||||
|
hostio_last_error_from_errno,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -159,6 +159,9 @@ extern jmp_buf toplevel;
|
|||||||
/* Functions from hostio.c. */
|
/* Functions from hostio.c. */
|
||||||
extern int handle_vFile (char *, int, int *);
|
extern int handle_vFile (char *, int, int *);
|
||||||
|
|
||||||
|
/* Functions from hostio-errno.c. */
|
||||||
|
extern void hostio_last_error_from_errno (char *own_buf);
|
||||||
|
|
||||||
/* From remote-utils.c */
|
/* From remote-utils.c */
|
||||||
|
|
||||||
extern int remote_debug;
|
extern int remote_debug;
|
||||||
|
@ -590,6 +590,7 @@ static struct target_ops spu_target_ops = {
|
|||||||
NULL,
|
NULL,
|
||||||
spu_arch_string,
|
spu_arch_string,
|
||||||
spu_proc_xfer_spu,
|
spu_proc_xfer_spu,
|
||||||
|
hostio_last_error_from_errno,
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -188,6 +188,10 @@ struct target_ops
|
|||||||
/* Read/Write from/to spufs using qXfer packets. */
|
/* Read/Write from/to spufs using qXfer packets. */
|
||||||
int (*qxfer_spu) (const char *annex, unsigned char *readbuf,
|
int (*qxfer_spu) (const char *annex, unsigned char *readbuf,
|
||||||
unsigned const char *writebuf, CORE_ADDR offset, int len);
|
unsigned const char *writebuf, CORE_ADDR offset, int len);
|
||||||
|
|
||||||
|
/* Fill BUF with an hostio error packet representing the last hostio
|
||||||
|
error. */
|
||||||
|
void (*hostio_last_error) (char *buf);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct target_ops *the_target;
|
extern struct target_ops *the_target;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "server.h"
|
#include "server.h"
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
#include "gdb/signals.h"
|
#include "gdb/signals.h"
|
||||||
|
#include "gdb/fileio.h"
|
||||||
#include "mem-break.h"
|
#include "mem-break.h"
|
||||||
#include "win32-low.h"
|
#include "win32-low.h"
|
||||||
|
|
||||||
@ -1653,6 +1654,65 @@ win32_arch_string (void)
|
|||||||
return the_low_target.arch_string;
|
return the_low_target.arch_string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
int
|
||||||
|
win32_error_to_fileio_error (DWORD err)
|
||||||
|
{
|
||||||
|
switch (err)
|
||||||
|
{
|
||||||
|
case ERROR_BAD_PATHNAME:
|
||||||
|
case ERROR_FILE_NOT_FOUND:
|
||||||
|
case ERROR_INVALID_NAME:
|
||||||
|
case ERROR_PATH_NOT_FOUND:
|
||||||
|
return FILEIO_ENOENT;
|
||||||
|
case ERROR_CRC:
|
||||||
|
case ERROR_IO_DEVICE:
|
||||||
|
case ERROR_OPEN_FAILED:
|
||||||
|
return FILEIO_EIO;
|
||||||
|
case ERROR_INVALID_HANDLE:
|
||||||
|
return FILEIO_EBADF;
|
||||||
|
case ERROR_ACCESS_DENIED:
|
||||||
|
case ERROR_SHARING_VIOLATION:
|
||||||
|
return FILEIO_EACCES;
|
||||||
|
case ERROR_NOACCESS:
|
||||||
|
return FILEIO_EFAULT;
|
||||||
|
case ERROR_BUSY:
|
||||||
|
return FILEIO_EBUSY;
|
||||||
|
case ERROR_ALREADY_EXISTS:
|
||||||
|
case ERROR_FILE_EXISTS:
|
||||||
|
return FILEIO_EEXIST;
|
||||||
|
case ERROR_BAD_DEVICE:
|
||||||
|
return FILEIO_ENODEV;
|
||||||
|
case ERROR_DIRECTORY:
|
||||||
|
return FILEIO_ENOTDIR;
|
||||||
|
case ERROR_FILENAME_EXCED_RANGE:
|
||||||
|
case ERROR_INVALID_DATA:
|
||||||
|
case ERROR_INVALID_PARAMETER:
|
||||||
|
case ERROR_NEGATIVE_SEEK:
|
||||||
|
return FILEIO_EINVAL;
|
||||||
|
case ERROR_TOO_MANY_OPEN_FILES:
|
||||||
|
return FILEIO_EMFILE;
|
||||||
|
case ERROR_HANDLE_DISK_FULL:
|
||||||
|
case ERROR_DISK_FULL:
|
||||||
|
return FILEIO_ENOSPC;
|
||||||
|
case ERROR_WRITE_PROTECT:
|
||||||
|
return FILEIO_EROFS;
|
||||||
|
case ERROR_NOT_SUPPORTED:
|
||||||
|
return FILEIO_ENOSYS;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FILEIO_EUNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
wince_hostio_last_error (char *buf)
|
||||||
|
{
|
||||||
|
DWORD winerr = GetLastError ();
|
||||||
|
int fileio_err = win32_error_to_fileio_error (winerr);
|
||||||
|
sprintf (buf, "F-1,%x", fileio_err);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct target_ops win32_target_ops = {
|
static struct target_ops win32_target_ops = {
|
||||||
win32_create_inferior,
|
win32_create_inferior,
|
||||||
win32_attach,
|
win32_attach,
|
||||||
@ -1675,7 +1735,13 @@ static struct target_ops win32_target_ops = {
|
|||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
win32_arch_string
|
win32_arch_string,
|
||||||
|
NULL,
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
wince_hostio_last_error,
|
||||||
|
#else
|
||||||
|
hostio_last_error_from_errno,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Initialize the Win32 backend. */
|
/* Initialize the Win32 backend. */
|
||||||
|
Reference in New Issue
Block a user