summaryrefslogtreecommitdiff
path: root/hurd/hurd/lookup.h
diff options
context:
space:
mode:
Diffstat (limited to 'hurd/hurd/lookup.h')
-rw-r--r--hurd/hurd/lookup.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/hurd/hurd/lookup.h b/hurd/hurd/lookup.h
index 6911b8f5b9..565ab317c8 100644
--- a/hurd/hurd/lookup.h
+++ b/hurd/hurd/lookup.h
@@ -1,5 +1,5 @@
/* Declarations of file name translation functions for the GNU Hurd.
-Copyright (C) 1995 Free Software Foundation, Inc.
+Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -98,4 +98,33 @@ error_t hurd_file_name_lookup_retry (error_t (*use_init_port)
file_t *result);
+/* If FILE_NAME contains a '/', or PATH is NULL, call FUN with FILE_NAME, and
+ return the result (if PREFIXED_NAME is non-NULL, setting *PREFIXED_NAME to
+ NULL). Otherwise, call FUN repeatedly with FILE_NAME prefixed with each
+ successive `:' separated element of PATH, returning whenever FUN returns
+ 0 (if PREFIXED_NAME is non-NULL, setting *PREFIXED_NAME to the resulting
+ prefixed path). If FUN never returns 0, return the first non-ENOENT
+ return value, or ENOENT if there is none. */
+error_t file_name_path_scan (const char *file_name, const char *path,
+ error_t (*fun)(const char *name),
+ char **prefixed_name);
+
+/* Lookup FILE_NAME and return the node opened with FLAGS & MODE in result
+ (see hurd_file_name_lookup for details), but a simple filename (without
+ any directory prefixes) will be consectutively prefixed with the pathnames
+ in the `:' separated list PATH until one succeeds in a successful lookup.
+ If none succeed, then the first error that wasn't ENOENT is returned, or
+ ENOENT if no other errors were returned. If PREFIXED_NAME is non-NULL,
+ then if RESULT is looked up directly, *PREFIXED_NAME is set to NULL, and
+ if it is looked up using a prefix from PATH, *PREFIXED_NAME is set to
+ malloced storage containing the prefixed name. */
+error_t hurd_file_name_path_lookup (error_t (*use_init_port)
+ (int which,
+ error_t (*operate) (mach_port_t)),
+ file_t (*get_dtable_port) (int fd),
+ const char *file_name, const char *path,
+ int flags, mode_t mode,
+ file_t *result, char **prefixed_name);
+
+
#endif /* hurd/lookup.h */