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.
