summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-08-09 18:52:41 +0000
committerbors <bors@rust-lang.org>2021-08-09 18:52:41 +0000
commit7b96aedf4eec5ce4b5075e95b83bde126f1f2930 (patch)
tree3fdc40e31f828e19048f699a8fe254aa2c6b7ab6
parent8aa6cea3a3a39767f441716a992112b804af2af7 (diff)
parent7e25e52447008215a89065c788905e609d6ec34b (diff)
downloadrust-libc-7b96aedf4eec5ce4b5075e95b83bde126f1f2930.tar.gz
Auto merge of #2321 - devnexen:haiku_find_path, r=Amanieu
haiku adding handy find_path fn.
-rwxr-xr-xlibc-test/build.rs1
-rw-r--r--src/unix/haiku/native.rs37
2 files changed, 38 insertions, 0 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index 825879ce30..47eeaac524 100755
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -3286,6 +3286,7 @@ fn test_haiku(target: &str) {
"kernel/fs_volume.h",
"kernel/image.h",
"kernel/scheduler.h",
+ "storage/FindDirectory.h",
"storage/StorageDefs.h",
"support/Errors.h",
"support/SupportDefs.h",
diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs
index 5a37c68241..f432f90fbb 100644
--- a/src/unix/haiku/native.rs
+++ b/src/unix/haiku/native.rs
@@ -67,6 +67,36 @@ e! {
SCHEDULER_MODE_LOW_LATENCY,
SCHEDULER_MODE_POWER_SAVING,
}
+
+ // FindDirectory.h
+ pub enum path_base_directory {
+ B_FIND_PATH_INSTALLATION_LOCATION_DIRECTORY,
+ B_FIND_PATH_ADD_ONS_DIRECTORY,
+ B_FIND_PATH_APPS_DIRECTORY,
+ B_FIND_PATH_BIN_DIRECTORY,
+ B_FIND_PATH_BOOT_DIRECTORY,
+ B_FIND_PATH_CACHE_DIRECTORY,
+ B_FIND_PATH_DATA_DIRECTORY,
+ B_FIND_PATH_DEVELOP_DIRECTORY,
+ B_FIND_PATH_DEVELOP_LIB_DIRECTORY,
+ B_FIND_PATH_DOCUMENTATION_DIRECTORY,
+ B_FIND_PATH_ETC_DIRECTORY,
+ B_FIND_PATH_FONTS_DIRECTORY,
+ B_FIND_PATH_HEADERS_DIRECTORY,
+ B_FIND_PATH_LIB_DIRECTORY,
+ B_FIND_PATH_LOG_DIRECTORY,
+ B_FIND_PATH_MEDIA_NODES_DIRECTORY,
+ B_FIND_PATH_PACKAGES_DIRECTORY,
+ B_FIND_PATH_PREFERENCES_DIRECTORY,
+ B_FIND_PATH_SERVERS_DIRECTORY,
+ B_FIND_PATH_SETTINGS_DIRECTORY,
+ B_FIND_PATH_SOUNDS_DIRECTORY,
+ B_FIND_PATH_SPOOL_DIRECTORY,
+ B_FIND_PATH_TRANSLATORS_DIRECTORY,
+ B_FIND_PATH_VAR_DIRECTORY,
+ B_FIND_PATH_IMAGE_PATH = 1000,
+ B_FIND_PATH_PACKAGE_PATH,
+ }
}
s! {
@@ -934,6 +964,13 @@ extern "C" {
info: *mut image_info,
size: ::size_t,
) -> status_t;
+ pub fn find_path(
+ codePointer: *const ::c_void,
+ baseDirectory: path_base_directory,
+ subPath: *const ::c_char,
+ pathBuffer: *mut ::c_char,
+ bufferSize: usize,
+ ) -> status_t;
}
// The following functions are defined as macros in C/C++