aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-05-25 11:43:56 +0100
committergingerBill <bill@gingerbill.org>2022-05-25 11:43:56 +0100
commitacadbe050cd4337e3eb0f8febd31df94f5270bd2 (patch)
treef550238a98e894685a3618048145be7caf3932b0
parenta31d23a32a04554af964850efa8d44c5467c176c (diff)
Make `core:dynlib` use the private interface convention of other packages
-rw-r--r--core/dynlib/lib.odin12
-rw-r--r--core/dynlib/lib_unix.odin29
-rw-r--r--core/dynlib/lib_windows.odin9
3 files changed, 32 insertions, 18 deletions
diff --git a/core/dynlib/lib.odin b/core/dynlib/lib.odin
index 00655d650..35617792c 100644
--- a/core/dynlib/lib.odin
+++ b/core/dynlib/lib.odin
@@ -1,3 +1,15 @@
package dynlib
Library :: distinct rawptr
+
+load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {
+ return _load_library(path, global_symbols)
+}
+
+unload_library :: proc(library: Library) -> bool {
+ return _unload_library(library)
+}
+
+symbol_address :: proc(library: Library, symbol: string) -> (ptr: rawptr, found: bool) {
+ return _symbol_address(library, symbol)
+}
diff --git a/core/dynlib/lib_unix.odin b/core/dynlib/lib_unix.odin
index e52ade153..7fdcccd6b 100644
--- a/core/dynlib/lib_unix.odin
+++ b/core/dynlib/lib_unix.odin
@@ -1,23 +1,24 @@
-// +build linux, darwin, freebsd, openbsd
+//+build linux, darwin, freebsd, openbsd
+//+private
package dynlib
import "core:os"
-load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {
- flags := os.RTLD_NOW
- if global_symbols {
- flags |= os.RTLD_GLOBAL
- }
- lib := os.dlopen(path, flags)
- return Library(lib), lib != nil
+_load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {
+ flags := os.RTLD_NOW
+ if global_symbols {
+ flags |= os.RTLD_GLOBAL
+ }
+ lib := os.dlopen(path, flags)
+ return Library(lib), lib != nil
}
-unload_library :: proc(library: Library) {
- os.dlclose(rawptr(library))
+_unload_library :: proc(library: Library) {
+ os.dlclose(rawptr(library))
}
-symbol_address :: proc(library: Library, symbol: string) -> (ptr: rawptr, found: bool) {
- ptr = os.dlsym(rawptr(library), symbol)
- found = ptr != nil
- return
+_symbol_address :: proc(library: Library, symbol: string) -> (ptr: rawptr, found: bool) {
+ ptr = os.dlsym(rawptr(library), symbol)
+ found = ptr != nil
+ return
}
diff --git a/core/dynlib/lib_windows.odin b/core/dynlib/lib_windows.odin
index b9aae9cf1..d48e43ca2 100644
--- a/core/dynlib/lib_windows.odin
+++ b/core/dynlib/lib_windows.odin
@@ -1,10 +1,11 @@
-// +build windows
+//+build windows
+//+private
package dynlib
import win32 "core:sys/windows"
import "core:strings"
-load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {
+_load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {
// NOTE(bill): 'global_symbols' is here only for consistency with POSIX which has RTLD_GLOBAL
wide_path := win32.utf8_to_wstring(path, context.temp_allocator)
@@ -12,12 +13,12 @@ load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {
return handle, handle != nil
}
-unload_library :: proc(library: Library) -> bool {
+_unload_library :: proc(library: Library) -> bool {
ok := win32.FreeLibrary(cast(win32.HMODULE)library)
return bool(ok)
}
-symbol_address :: proc(library: Library, symbol: string) -> (ptr: rawptr, found: bool) {
+_symbol_address :: proc(library: Library, symbol: string) -> (ptr: rawptr, found: bool) {
c_str := strings.clone_to_cstring(symbol, context.temp_allocator)
ptr = win32.GetProcAddress(cast(win32.HMODULE)library, c_str)
found = ptr != nil