routine dir_lookup (
start_dir: file_t;
RPT
file_name: string_t;
flags: int;
mode: mode_t;
out do_retry: retry_type;
out retry_name: string_t;
out result: mach_port_send_t);
Translate a file name, following all symlinks. Upon return, if do_retry
is
FS_RETRY_MAGICAL
then retry_name
specifies what to do, the list of
possibilities is documented in <hurd/hurd_types.h>
; if FS_RETRY_REAUTH
,
then result
should be reauthenticated before being used. If retry_name
is
the empty string and the retry type is FS_RETRY_NORMAL
, then no further
dir lookup
calls are required; result
is the port to use.
Otherwise the dir lookup
call should be repeated, sent to
result
(or the reauthenticated port) with retry_name
passed for
file_name
. This call is required to be supported by all files (even
non-directories) if the filename is null, and should function in that case as a
re-open of the file.