From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id OJFzGI3pDGNBbC8AWB0awg (envelope-from ) for ; Mon, 29 Aug 2022 12:30:05 -0400 Received: by simark.ca (Postfix, from userid 112) id 61F431E4A7; Mon, 29 Aug 2022 12:30:05 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=LCquUsQm; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id C72201E13B for ; Mon, 29 Aug 2022 12:30:04 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 67D0D385AC3E for ; Mon, 29 Aug 2022 16:30:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 67D0D385AC3E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1661790602; bh=oS4k+pL+fw+EIwAeAs7nFDtZD13AahDKWJzE+6RNMZg=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=LCquUsQmUVFFZemsfS4sH3zK3zEMQRnx2DSYp1YShVhEOXy2IOwRXG+lAml+WdV4a 8ueAm2xVwBJDSM6/k2XOOdir6Je2F0LVUFbeqgr8ZNWX/x9MAzaDt8rkspyyGWypaJ mCbE/kVvXcZfF2edlIlO8LNGD5nM7vpoC7ugJoDc= Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id 252C83858D32 for ; Mon, 29 Aug 2022 16:29:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 252C83858D32 Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 27TGTT9D015298 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 29 Aug 2022 12:29:33 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 27TGTT9D015298 Received: from simark.localdomain (unknown [217.28.27.60]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id 32CC11E5EA; Mon, 29 Aug 2022 12:29:29 -0400 (EDT) To: gdb-patches@sourceware.org Subject: [PATCH v2 3/3] gdbsupport: move fileio_errno_to_host to fileio.{h, cc} and rename Date: Mon, 29 Aug 2022 12:29:26 -0400 Message-Id: <20220829162926.3752040-4-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220829162926.3752040-1-simon.marchi@polymtl.ca> References: <20220826195459.2540898-1-simon.marchi@efficios.com> <20220829162926.3752040-1-simon.marchi@polymtl.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Mon, 29 Aug 2022 16:29:29 +0000 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Simon Marchi via Gdb-patches Reply-To: Simon Marchi Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" gdb_bfd.c and remote.c contain identical implementations of a fileio_error -> errno function. Factor that out to gdbsupport/fileio.{h,cc}. Rename it fileio_error_to_host, for symmetry with host_to_fileio_error. Change-Id: Ib9b8807683de2f809c94a5303e708acc2251a0df --- gdb/gdb_bfd.c | 59 +++----------------------------------------- gdb/remote.c | 53 +-------------------------------------- gdbsupport/fileio.cc | 53 +++++++++++++++++++++++++++++++++++++++ gdbsupport/fileio.h | 4 +++ 4 files changed, 61 insertions(+), 108 deletions(-) diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c index 46e2c357e3f4..58244708eb07 100644 --- a/gdb/gdb_bfd.c +++ b/gdb/gdb_bfd.c @@ -302,59 +302,6 @@ gdb_bfd_open_from_target_memory (CORE_ADDR addr, ULONGEST size, mem_bfd_iovec_stat); } -/* Return the system error number corresponding to ERRNUM. */ - -static int -fileio_errno_to_host (fileio_error errnum) -{ - switch (errnum) - { - case FILEIO_EPERM: - return EPERM; - case FILEIO_ENOENT: - return ENOENT; - case FILEIO_EINTR: - return EINTR; - case FILEIO_EIO: - return EIO; - case FILEIO_EBADF: - return EBADF; - case FILEIO_EACCES: - return EACCES; - case FILEIO_EFAULT: - return EFAULT; - case FILEIO_EBUSY: - return EBUSY; - case FILEIO_EEXIST: - return EEXIST; - case FILEIO_ENODEV: - return ENODEV; - case FILEIO_ENOTDIR: - return ENOTDIR; - case FILEIO_EISDIR: - return EISDIR; - case FILEIO_EINVAL: - return EINVAL; - case FILEIO_ENFILE: - return ENFILE; - case FILEIO_EMFILE: - return EMFILE; - case FILEIO_EFBIG: - return EFBIG; - case FILEIO_ENOSPC: - return ENOSPC; - case FILEIO_ESPIPE: - return ESPIPE; - case FILEIO_EROFS: - return EROFS; - case FILEIO_ENOSYS: - return ENOSYS; - case FILEIO_ENAMETOOLONG: - return ENAMETOOLONG; - } - return -1; -} - /* bfd_openr_iovec OPEN_CLOSURE data for gdb_bfd_open. */ struct gdb_bfd_open_closure { @@ -382,7 +329,7 @@ gdb_bfd_iovec_fileio_open (struct bfd *abfd, void *open_closure) &target_errno); if (fd == -1) { - errno = fileio_errno_to_host (target_errno); + errno = fileio_error_to_host (target_errno); bfd_set_error (bfd_error_system_call); return NULL; } @@ -416,7 +363,7 @@ gdb_bfd_iovec_fileio_pread (struct bfd *abfd, void *stream, void *buf, break; if (bytes == -1) { - errno = fileio_errno_to_host (target_errno); + errno = fileio_error_to_host (target_errno); bfd_set_error (bfd_error_system_call); return -1; } @@ -478,7 +425,7 @@ gdb_bfd_iovec_fileio_fstat (struct bfd *abfd, void *stream, result = target_fileio_fstat (fd, sb, &target_errno); if (result == -1) { - errno = fileio_errno_to_host (target_errno); + errno = fileio_error_to_host (target_errno); bfd_set_error (bfd_error_system_call); } diff --git a/gdb/remote.c b/gdb/remote.c index b57d26a70edb..2f6cb2d01eeb 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -12715,61 +12715,10 @@ remote_target::filesystem_is_local () return false; } -static int -remote_fileio_errno_to_host (fileio_error errnum) -{ - switch (errnum) - { - case FILEIO_EPERM: - return EPERM; - case FILEIO_ENOENT: - return ENOENT; - case FILEIO_EINTR: - return EINTR; - case FILEIO_EIO: - return EIO; - case FILEIO_EBADF: - return EBADF; - case FILEIO_EACCES: - return EACCES; - case FILEIO_EFAULT: - return EFAULT; - case FILEIO_EBUSY: - return EBUSY; - case FILEIO_EEXIST: - return EEXIST; - case FILEIO_ENODEV: - return ENODEV; - case FILEIO_ENOTDIR: - return ENOTDIR; - case FILEIO_EISDIR: - return EISDIR; - case FILEIO_EINVAL: - return EINVAL; - case FILEIO_ENFILE: - return ENFILE; - case FILEIO_EMFILE: - return EMFILE; - case FILEIO_EFBIG: - return EFBIG; - case FILEIO_ENOSPC: - return ENOSPC; - case FILEIO_ESPIPE: - return ESPIPE; - case FILEIO_EROFS: - return EROFS; - case FILEIO_ENOSYS: - return ENOSYS; - case FILEIO_ENAMETOOLONG: - return ENAMETOOLONG; - } - return -1; -} - static char * remote_hostio_error (fileio_error errnum) { - int host_error = remote_fileio_errno_to_host (errnum); + int host_error = fileio_error_to_host (errnum); if (host_error == -1) error (_("Unknown remote I/O error %d"), errnum); diff --git a/gdbsupport/fileio.cc b/gdbsupport/fileio.cc index db7c1a7c488d..60a08f649770 100644 --- a/gdbsupport/fileio.cc +++ b/gdbsupport/fileio.cc @@ -77,6 +77,59 @@ host_to_fileio_error (int error) /* See fileio.h. */ +int +fileio_error_to_host (fileio_error errnum) +{ + switch (errnum) + { + case FILEIO_EPERM: + return EPERM; + case FILEIO_ENOENT: + return ENOENT; + case FILEIO_EINTR: + return EINTR; + case FILEIO_EIO: + return EIO; + case FILEIO_EBADF: + return EBADF; + case FILEIO_EACCES: + return EACCES; + case FILEIO_EFAULT: + return EFAULT; + case FILEIO_EBUSY: + return EBUSY; + case FILEIO_EEXIST: + return EEXIST; + case FILEIO_ENODEV: + return ENODEV; + case FILEIO_ENOTDIR: + return ENOTDIR; + case FILEIO_EISDIR: + return EISDIR; + case FILEIO_EINVAL: + return EINVAL; + case FILEIO_ENFILE: + return ENFILE; + case FILEIO_EMFILE: + return EMFILE; + case FILEIO_EFBIG: + return EFBIG; + case FILEIO_ENOSPC: + return ENOSPC; + case FILEIO_ESPIPE: + return ESPIPE; + case FILEIO_EROFS: + return EROFS; + case FILEIO_ENOSYS: + return ENOSYS; + case FILEIO_ENAMETOOLONG: + return ENAMETOOLONG; + } + return -1; +} + +/* See fileio.h. */ + int fileio_to_host_openflags (int fileio_open_flags, int *open_flags_p) { diff --git a/gdbsupport/fileio.h b/gdbsupport/fileio.h index 6a5297c64330..203e671f3e73 100644 --- a/gdbsupport/fileio.h +++ b/gdbsupport/fileio.h @@ -139,6 +139,10 @@ struct fio_timeval extern fileio_error host_to_fileio_error (int error); +/* Convert a File-I/O error number to a host-format errno value. */ + +extern int fileio_error_to_host (fileio_error errnum); + /* Convert File-I/O open flags FFLAGS to host format, storing the result in *FLAGS. Return 0 on success, -1 on error. */ -- 2.37.2