[Pkg-gnupg-commit] [libgpg-error] 13/32: Add new interface gpgrt_get_syscall_clamp.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Wed Nov 16 01:31:03 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository libgpg-error.
commit b7972767513c8748096ebed78d1e1621bd2bd459
Author: Werner Koch <wk at gnupg.org>
Date: Sat Nov 12 11:06:22 2016 +0100
Add new interface gpgrt_get_syscall_clamp.
* src/visibility.c (gpgrt_get_syscall_clamp): New.
* src/gpg-error.vers, src/gpg-error.def.in: Add function.
* src/gpg-error.h.in: Ditto.
* src/estream.c (_gpgrt_get_syscall_clamp): New.
--
This function can be used by other libraries to set their own system
clamp functions.
Signed-off-by: Werner Koch <wk at gnupg.org>
---
NEWS | 1 +
src/estream.c | 11 +++++++++++
src/gpg-error.def.in | 2 ++
src/gpg-error.h.in | 3 +++
src/gpg-error.vers | 1 +
src/gpgrt-int.h | 1 +
src/visibility.c | 6 ++++++
src/visibility.h | 2 ++
8 files changed, 27 insertions(+)
diff --git a/NEWS b/NEWS
index b1c8c6c..3b373c5 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,7 @@ Noteworthy changes in version 1.25 (unreleased) [C19/A19/R_)
GPG_ERR_DUP_NAME NEW.
GPG_ERR_TOO_OLD NEW.
GPG_ERR_TOO_YOUNG NEW.
+ gpgrt_get_syscall_clamp NEW.
Noteworthy changes in version 1.24 (2016-07-14) [C19/A19/R1)
diff --git a/src/estream.c b/src/estream.c
index d0f0ba9..752d22e 100644
--- a/src/estream.c
+++ b/src/estream.c
@@ -605,6 +605,17 @@ _gpgrt_set_syscall_clamp (void (*pre)(void), void (*post)(void))
_gpgrt_lock_set_lock_clamp (pre, post);
}
+/*
+ * Return the current sycall clamp functions. This can be used by
+ * other libraries which have blocking functions.
+ */
+void
+_gpgrt_get_syscall_clamp (void (**r_pre)(void), void (**r_post)(void))
+{
+ *r_pre = pre_syscall_func;
+ *r_post = post_syscall_func;
+}
+
/*
diff --git a/src/gpg-error.def.in b/src/gpg-error.def.in
index 1fa8866..19e87fa 100644
--- a/src/gpg-error.def.in
+++ b/src/gpg-error.def.in
@@ -150,4 +150,6 @@ EXPORTS
gpgrt_w32_iconv @111
#endif
+ gpgrt_get_syscall_clamp @112
+
;; end of file with public symbols for Windows.
diff --git a/src/gpg-error.h.in b/src/gpg-error.h.in
index a79f6ba..86f3241 100644
--- a/src/gpg-error.h.in
+++ b/src/gpg-error.h.in
@@ -303,6 +303,9 @@ void gpg_err_deinit (int mode);
/* Register blocking system I/O clamping functions. */
void gpgrt_set_syscall_clamp (void (*pre)(void), void (*post)(void));
+/* Get current I/O clamping functions. */
+void gpgrt_get_syscall_clamp (void (**r_pre)(void), void (**r_post)(void));
+
/* Register a custom malloc/realloc/free function. */
void gpgrt_set_alloc_func (void *(*f)(void *a, size_t n));
diff --git a/src/gpg-error.vers b/src/gpg-error.vers
index cdff0e3..802ff3d 100644
--- a/src/gpg-error.vers
+++ b/src/gpg-error.vers
@@ -39,6 +39,7 @@ GPG_ERROR_1.0 {
gpgrt_lock_trylock;
gpgrt_set_syscall_clamp;
+ gpgrt_get_syscall_clamp;
gpgrt_fopen;
gpgrt_mopen;
diff --git a/src/gpgrt-int.h b/src/gpgrt-int.h
index d69fe2c..b2b553b 100644
--- a/src/gpgrt-int.h
+++ b/src/gpgrt-int.h
@@ -53,6 +53,7 @@ gpg_err_code_t _gpgrt_yield (void);
/* Local prototypes for estream. */
int _gpgrt_es_init (void);
void _gpgrt_set_syscall_clamp (void (*pre)(void), void (*post)(void));
+void _gpgrt_get_syscall_clamp (void (**r_pre)(void), void (**r_post)(void));
gpgrt_stream_t _gpgrt_fopen (const char *_GPGRT__RESTRICT path,
const char *_GPGRT__RESTRICT mode);
diff --git a/src/visibility.c b/src/visibility.c
index e3ac8a7..89b5623 100644
--- a/src/visibility.c
+++ b/src/visibility.c
@@ -97,6 +97,12 @@ gpgrt_set_syscall_clamp (void (*pre)(void), void (*post)(void))
}
void
+gpgrt_get_syscall_clamp (void (**r_pre)(void), void (**r_post)(void))
+{
+ _gpgrt_get_syscall_clamp (r_pre, r_post);
+}
+
+void
gpgrt_set_alloc_func (void *(*f)(void *a, size_t n))
{
_gpgrt_set_alloc_func (f);
diff --git a/src/visibility.h b/src/visibility.h
index 1de6c62..479186f 100644
--- a/src/visibility.h
+++ b/src/visibility.h
@@ -142,6 +142,7 @@ MARK_VISIBLE (gpgrt_vbsprintf)
MARK_VISIBLE (gpgrt_snprintf)
MARK_VISIBLE (gpgrt_vsnprintf)
MARK_VISIBLE (gpgrt_set_syscall_clamp)
+MARK_VISIBLE (gpgrt_get_syscall_clamp)
MARK_VISIBLE (gpgrt_set_alloc_func)
#undef MARK_VISIBLE
@@ -251,6 +252,7 @@ MARK_VISIBLE (gpgrt_set_alloc_func)
#define gpgrt_vsnprintf _gpgrt_USE_UNDERSCORED_FUNCTION
#define gpgrt_set_syscall_clamp _gpgrt_USE_UNDERSCORED_FUNCTION
+#define gpgrt_get_syscall_clamp _gpgrt_USE_UNDERSCORED_FUNCTION
#define gpgrt_set_alloc_func _gpgrt_USE_UNDERSCORED_FUNCTION
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libgpg-error.git
More information about the Pkg-gnupg-commit
mailing list