summaryrefslogtreecommitdiff
path: root/src/dynlib.h
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2015-12-29 21:39:08 -0800
committerJohn Wiegley <johnw@newartisans.com>2015-12-29 21:39:08 -0800
commitec0a80cc283badc7f7fd5ef78512dde6d34b1355 (patch)
tree7190e0fb3d4aa06018d8cf997f06b806fb09a9c8 /src/dynlib.h
parentd259328fb87db8cc67d52771efcfa653e52c5b71 (diff)
parente823c34072bf045800d91e12c7ddb61fa23c6e30 (diff)
downloademacs-25-merge.tar.gz
Merge emacs-25 into master (using imerge)emacs-25-merge
Diffstat (limited to 'src/dynlib.h')
-rw-r--r--src/dynlib.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/dynlib.h b/src/dynlib.h
new file mode 100644
index 00000000000..1c19b5db8ac
--- /dev/null
+++ b/src/dynlib.h
@@ -0,0 +1,34 @@
+/* Portable API for dynamic loading.
+
+Copyright 2015 Free Software Foundation, Inc.
+
+This file is part of GNU Emacs.
+
+GNU Emacs 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.
+
+GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef DYNLIB_H
+#define DYNLIB_H
+
+#include <stdbool.h>
+
+typedef void *dynlib_handle_ptr;
+dynlib_handle_ptr dynlib_open (const char *path);
+void *dynlib_sym (dynlib_handle_ptr h, const char *sym);
+typedef struct dynlib_function_ptr_nonce *(*dynlib_function_ptr) (void);
+dynlib_function_ptr dynlib_func (dynlib_handle_ptr h, const char *sym);
+bool dynlib_addr (void *ptr, const char **path, const char **sym);
+const char *dynlib_error (void);
+int dynlib_close (dynlib_handle_ptr h);
+
+#endif /* DYNLIB_H */