From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26913 invoked by alias); 5 Aug 2014 17:00:14 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 26893 invoked by uid 89); 5 Aug 2014 17:00:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ig0-f202.google.com Received: from mail-ig0-f202.google.com (HELO mail-ig0-f202.google.com) (209.85.213.202) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 05 Aug 2014 17:00:01 +0000 Received: by mail-ig0-f202.google.com with SMTP id r2so270883igi.5 for ; Tue, 05 Aug 2014 09:59:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-type; bh=yICd2DNjC8TUzBqfar6xJdDYOj9SSuq/ulwv7Wq3gJk=; b=JDxH48TIBC844mhldmhlXjgm599Sb7aSKt9oK/3ILwgkHHICe01WYOq0OoEr2XVU0k MyzAOx8kroLCNWWvU6adklLvlw9m+8G1eHQ/LgoGVm2DsS8el66RotdjS0/4vF5oRQRw I09vLyo04ssWkiP/LOsrF2tbCm5ggZU5ozdCVVngbTl58ClAMNImOhQYl4jzVJPu0nHE IKkIVjcA+oyOSeUhkCcMK0Q8jgHeWuyvgmXRw5o/kPGI8XALzntj6GrTXQn+w9GiYloF upAYQPjTgyTdDzD/DS5BKF0Ww/5K4MBItrXmyqmBhvdC4JpDT5+1LvwyHeBzNTkkK0Qk BFtA== X-Gm-Message-State: ALoCoQnpXbBiJfZxfGDo1/aq1TP0AuQfja8UC+5oD+EhYU31K+vlAdzyu6Pmuomlt0uXNlupNSqyJWkk8lUA0md5nUtQY5OESF5GW7lA/vqVE4BHsMGjRQVz0tRtoaLF4oPVxCqIx8A9 X-Received: by 10.42.133.200 with SMTP id i8mr2951133ict.14.1407257999074; Tue, 05 Aug 2014 09:59:59 -0700 (PDT) Received: from corp2gmr1-2.hot.corp.google.com (corp2gmr1-2.hot.corp.google.com [172.24.189.93]) by gmr-mx.google.com with ESMTPS id y50si135588yhk.4.2014.08.05.09.59.59 for (version=TLSv1.1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 05 Aug 2014 09:59:59 -0700 (PDT) Received: from ruffy.mtv.corp.google.com (ruffy.mtv.corp.google.com [172.17.128.44]) by corp2gmr1-2.hot.corp.google.com (Postfix) with ESMTP id AAAFF5A43E4 for ; Tue, 5 Aug 2014 09:59:58 -0700 (PDT) From: Doug Evans To: binutils@sourceware.org Subject: [PATCH] Add typedefs for bfd_openr_iovec functions Date: Tue, 05 Aug 2014 17:00:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00034.txt.bz2 Hi. This patch adds typedefs for the functions passed to bfd_openr_iovec. I'm working on a patch to use them in gdb, but this is a clean up in its own right so I'm submitting it now. Ok to check in? Notes: - gdb uses _ftype suffix as a convention for function typedefs, but I gather bfd uses _type so I went with that. - I put the CODE_FRAGMENT in its own comment, not sure whether there were any conventions to do otherwise. Let me know if/how you'd like this done differently. 2014-08-05 Doug Evans * opncls.c (bfd_openr_iovec_open_type): New typedef. (bfd_openr_iovec_close_type): New typedef. (bfd_openr_iovec_pread_type): New typedef. (bfd_openr_iovec_stat_type): New typedef. (struct opncls, bfd_openr_iovec): Update to use them. * bfd-in2.h: Regenerate. diff --git a/bfd/opncls.c b/bfd/opncls.c index a2a35f4..2e09c70 100644 --- a/bfd/opncls.c +++ b/bfd/opncls.c @@ -408,24 +408,34 @@ bfd_openstreamr (const char *filename, const char *target, void *streamarg) } /* +CODE_FRAGMENT +.{* The type of the "open" function to pass to bfd_openr_iovec. *} +.typedef void *(bfd_openr_iovec_open_type) (struct bfd *nbfd, +. void *open_closure); +.{* The type of the "close" function to pass to bfd_openr_iovec. *} +.typedef int (bfd_openr_iovec_close_type) (struct bfd *nbfd, void *stream); +.{* The type of the "pread" function to pass to bfd_openr_iovec. *} +.typedef file_ptr (bfd_openr_iovec_pread_type) (struct bfd *nbfd, void *stream, +. void *buf, +. file_ptr nbytes, +. file_ptr offset); +.{* The type of the "stat" function to pass to bfd_openr_iovec. *} +.typedef int (bfd_openr_iovec_stat_type) (struct bfd *nbfd, void *stream, +. struct stat *sb); +. +*/ + +/* FUNCTION bfd_openr_iovec SYNOPSIS bfd *bfd_openr_iovec (const char *filename, const char *target, - void *(*open_func) (struct bfd *nbfd, - void *open_closure), + bfd_openr_iovec_open_type *open_func, void *open_closure, - file_ptr (*pread_func) (struct bfd *nbfd, - void *stream, - void *buf, - file_ptr nbytes, - file_ptr offset), - int (*close_func) (struct bfd *nbfd, - void *stream), - int (*stat_func) (struct bfd *abfd, - void *stream, - struct stat *sb)); + bfd_openr_iovec_pread_type *pread_func, + bfd_openr_iovec_close_type *close_func, + bfd_openr_iovec_stat_type *stat_func); DESCRIPTION @@ -467,10 +477,9 @@ DESCRIPTION struct opncls { void *stream; - file_ptr (*pread) (struct bfd *abfd, void *stream, void *buf, - file_ptr nbytes, file_ptr offset); - int (*close) (struct bfd *abfd, void *stream); - int (*stat) (struct bfd *abfd, void *stream, struct stat *sb); + bfd_openr_iovec_pread_type *pread; + bfd_openr_iovec_close_type *close; + bfd_openr_iovec_stat_type *stat; file_ptr where; }; @@ -564,12 +573,11 @@ static const struct bfd_iovec opncls_iovec = { bfd * bfd_openr_iovec (const char *filename, const char *target, - void *(*open_p) (struct bfd *, void *), + bfd_openr_iovec_open_type *open_p, void *open_closure, - file_ptr (*pread_p) (struct bfd *, void *, void *, - file_ptr, file_ptr), - int (*close_p) (struct bfd *, void *), - int (*stat_p) (struct bfd *, void *, struct stat *)) + bfd_openr_iovec_pread_type *pread_p, + bfd_openr_iovec_close_type *close_p, + bfd_openr_iovec_stat_type *stat_p) { bfd *nbfd; const bfd_target *target_vec; diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8c77c81..83a569f 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1033,20 +1033,26 @@ bfd *bfd_fdopenr (const char *filename, const char *target, int fd); bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); +/* The type of the "open" function to pass to bfd_openr_iovec. */ +typedef void *(bfd_openr_iovec_open_type) (struct bfd *nbfd, + void *open_closure); +/* The type of the "close" function to pass to bfd_openr_iovec. */ +typedef int (bfd_openr_iovec_close_type) (struct bfd *nbfd, void *stream); +/* The type of the "pread" function to pass to bfd_openr_iovec. */ +typedef file_ptr (bfd_openr_iovec_pread_type) (struct bfd *nbfd, void *stream, + void *buf, + file_ptr nbytes, + file_ptr offset); +/* The type of the "stat" function to pass to bfd_openr_iovec. */ +typedef int (bfd_openr_iovec_stat_type) (struct bfd *nbfd, void *stream, + struct stat *sb); + bfd *bfd_openr_iovec (const char *filename, const char *target, - void *(*open_func) (struct bfd *nbfd, - void *open_closure), + bfd_openr_iovec_open_type *open_func, void *open_closure, - file_ptr (*pread_func) (struct bfd *nbfd, - void *stream, - void *buf, - file_ptr nbytes, - file_ptr offset), - int (*close_func) (struct bfd *nbfd, - void *stream), - int (*stat_func) (struct bfd *abfd, - void *stream, - struct stat *sb)); + bfd_openr_iovec_pread_type *pread_func, + bfd_openr_iovec_close_type *close_func, + bfd_openr_iovec_stat_type *stat_func); bfd *bfd_openw (const char *filename, const char *target);