From: Nick Alcock <nick.alcock@oracle.com>
To: binutils@sourceware.org
Subject: [PATCH 14/19] libctf: library version enforcement
Date: Tue, 30 Apr 2019 22:57:00 -0000 [thread overview]
Message-ID: <20190430225706.159422-15-nick.alcock@oracle.com> (raw)
In-Reply-To: <20190430225706.159422-1-nick.alcock@oracle.com>
This old Solaris standard allows callers to specify that they are
expecting one particular API and/or CTF file format from the library.
It is basically vestigial and I would be amenable to dropping it.
libctf/
* ctf-lib.c (ctf_version): New.
include/
* ctf-api.h (ctf_version): New.
---
include/ctf-api.h | 1 +
libctf/ctf-lib.c | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/include/ctf-api.h b/include/ctf-api.h
index 0adecfee7e..3fcb1d2d6c 100644
--- a/include/ctf-api.h
+++ b/include/ctf-api.h
@@ -233,6 +233,7 @@ extern void *ctf_getspecific (ctf_file_t *);
extern int ctf_errno (ctf_file_t *);
extern const char *ctf_errmsg (int);
+extern int ctf_version (int);
extern int ctf_func_info (ctf_file_t *, unsigned long, ctf_funcinfo_t *);
extern int ctf_func_args (ctf_file_t *, unsigned long, uint32_t, ctf_id_t *);
diff --git a/libctf/ctf-lib.c b/libctf/ctf-lib.c
index e60d2c985b..3a52539755 100644
--- a/libctf/ctf-lib.c
+++ b/libctf/ctf-lib.c
@@ -478,3 +478,29 @@ ctf_write (ctf_file_t *fp, int fd)
return 0;
}
+
+/* Set the CTF library client version to the specified version. If version is
+ zero, we just return the default library version number. */
+int
+ctf_version (int version)
+{
+ if (version < 0)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if (version > 0)
+ {
+ /* Dynamic version switching is not presently supported. */
+ if (version != CTF_VERSION)
+ {
+ errno = ENOTSUP;
+ return -1;
+ }
+ ctf_dprintf ("ctf_version: client using version %d\n", version);
+ _libctf_version = version;
+ }
+
+ return _libctf_version;
+}
--
2.21.0.237.gd0cfaa883d
next prev parent reply other threads:[~2019-04-30 22:57 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-30 22:57 [PATCH 00/19] libctf, and CTF support for objdump and readelf Nick Alcock
2019-04-30 22:57 ` Nick Alcock [this message]
2019-04-30 22:57 ` [PATCH 03/19] libctf: lowest-level memory allocation and debug-dumping wrappers Nick Alcock
2019-05-02 15:29 ` Nick Clifton
2019-05-03 19:12 ` Nick Alcock
2019-04-30 22:57 ` [PATCH 12/19] libctf: lookups by name and symbol Nick Alcock
2019-04-30 22:57 ` [PATCH 04/19] libctf: low-level list manipulation and helper utilities Nick Alcock
2019-05-02 16:04 ` Nick Clifton
2019-05-03 19:25 ` Nick Alcock
2019-04-30 22:57 ` [PATCH 11/19] libctf: core type lookup Nick Alcock
2019-04-30 22:57 ` CTF format overview Nick Alcock
2019-04-30 22:57 ` [PATCH 08/19] libctf: creation functions Nick Alcock
2019-04-30 22:57 ` [PATCH 19/19] binutils: CTF support for objdump and readelf Nick Alcock
2019-04-30 22:57 ` [PATCH 09/19] libctf: opening Nick Alcock
2019-04-30 22:57 ` [PATCH 06/19] libctf: hashing Nick Alcock
2019-05-02 16:16 ` Nick Clifton
2019-05-03 19:33 ` Nick Alcock
2019-04-30 22:57 ` [PATCH 10/19] libctf: ELF file opening Nick Alcock
2019-04-30 22:57 ` [PATCH 02/19] include: new header ctf-api.h Nick Alcock
2019-05-02 15:07 ` Nick Clifton
2019-05-03 11:23 ` Nick Alcock
2019-04-30 22:57 ` [PATCH 05/19] libctf: error handling Nick Alcock
2019-05-02 16:10 ` Nick Clifton
2019-05-03 19:31 ` Nick Alcock
2019-04-30 22:57 ` [PATCH 15/19] libctf: mmappable archives Nick Alcock
2019-04-30 22:57 ` [PATCH 13/19] libctf: type copying Nick Alcock
2019-04-30 22:57 ` [PATCH 01/19] include: new header ctf.h: file format description Nick Alcock
2019-05-01 16:57 ` Nick Clifton
2019-05-01 21:29 ` Jim Wilson
2019-05-03 11:15 ` Nick Alcock
2019-04-30 22:58 ` [PATCH 18/19] libctf: build system Nick Alcock
2019-05-01 0:13 ` [PATCH 17/19] libctf: debug dumping Nick Alcock
2019-05-01 0:19 ` [PATCH 16/19] libctf: labels Nick Alcock
2019-05-01 1:57 ` [PATCH 07/19] libctf: implementation definitions related to file creation Nick Alcock
2019-05-01 16:02 ` [PATCH 00/19] libctf, and CTF support for objdump and readelf Nick Clifton
2019-05-01 16:16 ` Jose E. Marchesi
2019-05-03 10:47 ` Nick Alcock
2019-05-02 15:22 ` Joseph Myers
2019-05-03 12:33 ` Nick Clifton
2019-05-06 16:40 ` Nick Alcock
2019-05-08 14:34 ` Michael Matz
2019-05-08 16:01 ` Nick Clifton
2019-05-08 16:20 ` Nick Alcock
2019-05-03 14:23 ` Nick Alcock
[not found] ` <alpine.DEB.2.21.1905072117440.19308@digraph.polyomino.org.uk>
2019-05-08 11:39 ` Nick Alcock
2019-05-24 8:57 ` Pedro Alves
2019-05-24 16:05 ` Nick Alcock
2019-05-24 16:19 ` Pedro Alves
2019-05-24 20:09 ` Nick Alcock
2019-05-03 16:19 ` Florian Weimer
2019-05-03 19:45 ` Nick Alcock
2019-05-06 12:07 ` Florian Weimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190430225706.159422-15-nick.alcock@oracle.com \
--to=nick.alcock@oracle.com \
--cc=binutils@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).