mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 04:12:10 +08:00
0a93529c56
This commit adds a new packet "vFile:fstat:" to the remote protocol that can be used by to retrieve information about files that have been previously opened using vFile:open. vFile:fstat: support is added to GDB, and remote_bfd_iovec_stat is implemented using it. If vFile:fstat: is not supported by the remote GDB creates a dummy result by zeroing the supplied stat structure and setting its st_size field to INT_MAX. This mimics GDB's previous behaviour, with the exception that GDB did not previously zero the structure so all other fields would have been returned unchanged, which is to say very likely populated with random values from the stack. gdb/ChangeLog: * remote-fileio.h (remote_fileio_to_host_stat): New declaration. * remote-fileio.c (remote_fileio_to_host_uint): New function. (remote_fileio_to_host_ulong): Likewise. (remote_fileio_to_host_mode): Likewise. (remote_fileio_to_host_time): Likewise. (remote_fileio_to_host_stat): Likewise. * remote.c (PACKET_vFile_fstat): New enum value. (remote_protocol_features): Register the "vFile:fstat" feature. (remote_hostio_fstat): New function. (remote_bfd_iovec_stat): Use the above. (_initialize_remote): Register new "set/show remote hostio-fstat-packet" command. * symfile.c (separate_debug_file_exists): Update comment. * NEWS: Announce new vFile:fstat packet. gdb/doc/ChangeLog: * gdb.texinfo (Remote Configuration): Document the "set/show remote hostio-fstat-packet" command. (General Query Packets): Document the vFile:fstat qSupported features. (Host I/O Packets): Document the vFile:fstat packet.
46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
/* Remote File-I/O communications
|
|
|
|
Copyright (C) 2003-2015 Free Software Foundation, Inc.
|
|
|
|
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 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/>. */
|
|
|
|
/* See the GDB User Guide for details of the GDB remote protocol. */
|
|
|
|
#ifndef REMOTE_FILEIO_H
|
|
#define REMOTE_FILEIO_H
|
|
|
|
#include "common-remote-fileio.h"
|
|
|
|
struct cmd_list_element;
|
|
|
|
/* Unified interface to remote fileio, called in remote.c from
|
|
remote_wait () and remote_async_wait (). */
|
|
extern void remote_fileio_request (char *buf, int ctrlc_pending_p);
|
|
|
|
/* Cleanup any remote fileio state. */
|
|
extern void remote_fileio_reset (void);
|
|
|
|
/* Called from _initialize_remote (). */
|
|
extern void initialize_remote_fileio (
|
|
struct cmd_list_element *remote_set_cmdlist,
|
|
struct cmd_list_element *remote_show_cmdlist);
|
|
|
|
/* Unpack a struct fio_stat. */
|
|
extern void remote_fileio_to_host_stat (struct fio_stat *fst,
|
|
struct stat *st);
|
|
|
|
#endif
|