summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
Commit message (Collapse)AuthorAgeFilesLines
* * cygthread.cc (cygthread::terminate_thread): Wait briefly for notificationChristopher Faylor2005-02-011-1/+1
| | | | | | | | | | | | | | event in the event that the thread was actually in the process of exiting. * pipe.cc (fhandler_pipe::dup): read_state is not supposed to be inheritable. Fix that. * path.cc (path_conv::check): Set symlen = 0 to avoid a compiler warning. * devices.h (devices::parsedisk): Declare new function. * devices.in (devices::parsedisk): Define new function. * dtable.cc (dtable::init_std_file_from_handle): Use device numbers rather than name. * fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate disk names from numeric codes. (This was broken on two of my systems previously and is still broken now)
* * fhandler.cc (fhandler_base::get_proc_fd_name): Don't generateCorinna Vinschen2005-02-011-7/+23
| | | | | | | | | | | | | | | | | | | | | | | | | "device:" entry. * fhandler.h (fhandler_socket::open): New method. (fhandler_pipe::open): New method. * fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of /proc/self. * fhandler_process.cc (fhandler_process::exists): Return -2 in case of symlinks, -3 for pipes and -4 for sockets. (fhandler_process::fstat): Handle pipes and sockets. (fhandler_process::open): Handle opening /proc/<pid>/fd. (fhandler_process::fill_filebuf): Generate empty names for non exisiting file descriptors. * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always generate "socket:[number]" strings as on Linux. (fhandler_socket::open): New method. (fhandler_socket::fstat): Always return socket type. * path.cc (symlink_info::set): Remove unused second parameter. (path_conv::check): Handle pipes and sockets in /proc. Set correct device type for AF_LOCAL sockets. * pinfo.cc (_pinfo::commune_recv): Generate empty names for non exisiting file descriptors. (_pinfo::fd): Ditto. * pipe.cc (fhandler_pipe::open): New method.
* * path.h (path_conv::set_name): Declare new function.Christopher Faylor2005-01-311-0/+9
| | | | | | * path.cc (path_conv::set_name): Define new function. * fhandler.h (fhandler_dev_null::open): Declare new function. * fhandler.cc (fhandler_dev_null::open): Define new function.
* * cygheap.h (class cygheap_fdenum): New class to enumerate usedCorinna Vinschen2005-01-311-14/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fhandlers. * dtable.h (class dtable): Add cygheap_fdenum as friend class. * fhandler.h (fhandler_base::get_proc_fd_name): New virtual method to return a name for /proc/<pid>/fd. (fhandler_socket::get_proc_fd_name): Ditto. (fhandler_pipe::get_proc_fd_name): Ditto. (fhandler_virtual::opendir): Make virtual method. (fhandler_process::opendir): New method. * fhandler.cc (fhandler_base::get_proc_fd_name): New method. * fhandler_process.cc: Include ctype.h. (PROCESS_FD): Define. (process_listing): Add "fd". (fhandler_process::exists): Fix comment. Return 1 in case of "fd" directory. Handle files below "fd". (fhandler_process::fstat): Drop "self" handling. Set correct link count for directories. (fhandler_process::opendir): New method to handle "fd" directory. (fhandler_process::readdir): Add "fd" handling. (fhandler_process::open): Drop "self" handling. (fhandler_process::fill_filebuf): Ditto. Add "fd" handling. Fix "maps" output string. * fhandler_registry.cc (fhandler_registry::fstat): Set correct link count for directories. * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method. * path.cc (symlink_info::set): Fix thinko. * pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout. Drop local path variable in PICOM_FIFO case. Fix debug output. Close handles as early as possible. Add PICOM_FDS and PICOM_FD handling. (_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling. (_pinfo::fd): New method. (_pinfo::fds): New method. * pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD. (_pinfo::fd): Declare. (_pinfo::fds): Declare. * pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
* * autoload.cc (GetModuleFileNameExA): Add.Corinna Vinschen2005-01-291-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (GetModuleInformation): Add. (QueryWorkingSet): Add. * fhandler.h (fhandler_virtual::get_filebuf): New method. * fhandler_proc.cc (PROC_SELF): Define. (proc_fhandlers): Change type of self to FH_PROC. (fhandler_proc::exists): Return -3 if self. (fhandler_proc::fstat): Handle self as symlink. (fhandler_proc::fill_filebuf): Handle self. * fhandler_process.cc: Include psapi.h. (PROCESS_EXENAME): Remove. (PROCESS_MAPS): Define. (PROCESS_ROOT): Define. (PROCESS_EXE): Define. (PROCESS_CWD): Define. (process_listing): Remove "exename", add "maps, "root", "exe" and "cwd" elements. (fhandler_process::exists): Return -2 for symlinks. (fhandler_process::fstat): Handle symlinks. (fill_filebuf): Evaluate pid if pid is 0. Use exename handling for exe. Handle maps, root and cwd. (format_process_maps): New function evaluating "maps". * path.cc (symlink_info::set): New method to fill symlink_info with data matching virtual symlinks. (path_conv::check): Handle virtual symlinks. * pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT handling. (_pinfo::commune_send): Ditto. (_pinfo::root): New function. (_pinfo::cwd): New function. * pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT. (_pinfo::root): Declare. (_pinfo::cwd): Declare.
* 2005-01-26 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2005-01-261-15/+5
| | | | | | * path.cc (path_conv::check): Return ENOTDIR rather than ENOENT when a component is not a directory. Remove unreachable code. (digits): Delete.
* * path.cc (realpath): Allow to expand with .exe suffix.Corinna Vinschen2005-01-251-1/+2
|
* * autoload.cc (CoInitialize): Remove.Corinna Vinschen2005-01-181-72/+142
| | | | | | | | | | | | | | | | | (CoUninitialize): Remove. (CoCreateInstance): Remove. (CoTaskMemFree): Add. (SHGetDesktopFolder): Add. * path.cc (shortcut_header): Remove. (shortcut_initalized): Remove. (GUID_shortcut): New static GUID. (struct win_shortcut_hdr): New struct describing Windows shortcut header structure. (symlink_worker): Rewrite creating Windows shortcuts. Create ITEMIDLIST if target exists. Only write once. (cmp_shortcut_header): Use win_shortcut_hdr structure for comparison. (check_shortcut): Rewrite to read only once from file. Allow skipping an ITIMIDLIST in the file.
* update copyrightChristopher Faylor2005-01-061-1/+1
|
* * fhandler.cc (fhandler_base::fchmod): Do the right thing when changing an "onChristopher Faylor2004-12-261-1/+1
| | | | | | | | | disk" device or fifo. (fhandler_base::fchown): Ditto for changing ownership. * fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate device files on ntfs partitions. * path.cc (path_conv::check): Use isfs function to figure out if a path exists on a filesystem to make sure that device files are caught.
* * path.h (path_conv::set_normalized_path): Add second argument and fill it inChristopher Faylor2004-12-231-17/+20
| | | | | | | throughout. * path.cc (path_conv::check): Declare, set and use "strip_tail". (path_conv::set_normalized_path): Add and use second argument, replacing all tail stripping tests.
* * path.cc (path_conv::check): Don't strip the trailing slash from a pathChristopher Faylor2004-12-231-1/+1
| | | | consisting only of two slashes.
* * path.cc (set_normalized_path): Allow empty pathnames.Corinna Vinschen2004-12-221-1/+1
|
* * path.cc (normalize_win32_path): Remove unneeded check for dots.Christopher Faylor2004-12-201-8/+3
|
* * path.cc (normalize_posix_path): Remove unneeded check for dots.Christopher Faylor2004-12-201-13/+14
| | | | | (path_conv::set_normalized_path): Strip trailing dots, similarly to what had previously been done for the win32 path.
* * path.cc (normalize_win32_path): Make third arg pass-by reference. ReorganizeChristopher Faylor2004-12-191-60/+52
| | | | | | | | slightly to eliminate extra variables. (normalize_posix_path): Ditto. (path_conv::check): Reflect change in arguments. (mount_info::conv_to_posix_path): Ditto. (mount_info::add_item): Ditto.
* * child_info.h (CURR_CHILD_INFO_MAGIC): Use updated value.Christopher Faylor2004-12-191-16/+29
| | | | | | | * path.cc (path_conv::check): Check the output Win32 path for trailing spaces and dots, not the input path. Disallow all use of foo./bar since consistently getting this right is time consuming. Remove strange test for "unc\" since no one seems to know what it's for.
* revert erroneous checkinChristopher Faylor2004-12-181-99/+93
|
* * fhandler_proc.cc (proc_listing): Add entry for "self".Christopher Faylor2004-12-181-93/+99
| | | | | | (proc_fhandlers): Add entry for "self". * fhandler_process.cc (fhandler_process::fstate): Handle "self". (fhandler_process::open): Handle "self".
* 2004-12-03 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-12-031-149/+89
| | | | | | | | | | | | | | | | | | | * registry.h (reg_key::reg_key): Change arguments. * shared_info.h (class mount_info): Remove had_to_create_mount_areas. * registry.cc (reg_key::reg_key): Change constructors to always handle HKLM and to avoid relying on HKCU. Do not set mount_table->had_to_create_mount_areas. * path.cc (mount_info::conv_to_win32_path): Improve update of sys_mount_table_counter. (mount_info::read_mounts): Use new reg_key constructor. (mount_info::add_reg_mount): Ditto. (mount_info::del_reg_mount): Ditto. (mount_info::read_cygdrive_info_from_registry): Ditto. (mount_info::write_cygdrive_info_to_registry): Ditto. Update cygwin_shared->sys_mount_table_counter after registry update. (mount_info::get_cygdrive_info): Ditto. * shared.cc (shared_info::heap_chunk_size): Use new reg_key constructor. * environ.cc (regopt): Ditto.
* 2004-10-28 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-10-281-4/+6
| | | | | | | | | | | | | | * path.cc (mount_info::from_registry): Deimpersonate while accessing HKLM. (mount_info::read_cygdrive_info_from_registry): Ditto. * cygheap.h: Define NO_IMPERSONATION. (cygheap_user::issetuid): Replace INVALID_HANDLE_VALUE by NO_IMPERSONATION. (cygheap_user::has_impersonation_tokens): Ditto. (cygheap_user::close_impersonation_tokens): Ditto. * uinfo.cc (uinfo_init): Ditto. * syscalls.cc (seteuid32): Ditto. * security.cc (set_impersonation_token): Ditto.
* 2004-10-05 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-10-061-1/+1
| | | | | | | * external.cc (check_ntsec): Do not call wincap.has_security. * path.cc (path_conv::check): Ditto. * security.cc (get_object_attribute): Ditto. (get_file_attribute): Ditto.
* 2004-10-02 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-10-021-1/+0
| | | | | | | | * path.h (enum path_types): Delete PATH_ISDISK. (path_conv::isdisk): Delete method. (path_conv::set_isdisk): Ditto. * path.cc (path_conv::check): Do not call set_isdisk. * uinfo.cc(pwdgrp::load): Do not call pc.isdisk.
* Sergey Ivanov <seriv@parkheights.dyndns.org>Christopher Faylor2004-09-241-4/+4
| | | | | * path.cc (mount_info::read_cygdrive_info_from_registry): Default /cygdrive to binary mode.
* 2004-09-22 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-09-231-7/+5
| | | | | | | * path.cc (normalize_win32_path): Only look for : in second position. Avoid infinite loop with names starting in double dots. (mount_info::conv_to_win32_path): Do not worry about a trailing dot. (hash_path_name): Ditto.
* * exceptions.cc: (ctrl_c_handler): Do nothing while a Cygwin subprocess isChristopher Faylor2004-09-121-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | starting. * child_info.h (init_child_info): Remove pid argument from declaration. * cygheap.h (init_cygheap::pid): New element. * dcrt0.cc (dll_crt0_0): Eliminate handling of now-noexistent cygpid parameter in child_info struct. Set forkee to 'true' rather than cygpid since the pid value was never used. (dll_crt0_1): Ditto. (_dll_crt0): Ditto. * fork.cc (fork_child): Don't wait for sigthread. This is handled in the fork call now. (fork_parent): Remove obsolete pid argument from init_child_info call. Don't do anything special with cygpid when DEBUGGING. (fork): Delay all signals during fork. (fork_init): Don't do anything special when DEBUGGING. * pinfo.cc (set_myself): Remove pid parameter. Use new pid field in cygheap. (pinfo_init): Don't pass pid argument to set_myself. * sigproc.cc (sig_send): Wait for dwProcessId to be non-zero as well as sendsig. (init_child_info): Eliminate handling of pid. (wait_sig): Implement method to temporarily hold off sending signals. * sigproc.h (__SIGHOLD): New enum. (__SIGNOHOLD): Ditto. * spawn.cc (spawn_guts): Remove obsolete pid argument from init_child_info call.
* 2004-09-05 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-09-071-23/+26
| | | | | | | | * cygheap.h (cwdstuff::drive_length): New member. (cwdstuff::get_drive): New method. * path.cc (normalize_win32_path): Simplify by using cwdstuff::get_drive. (mount_info::conv_to_win32_path): Use cwdstuff::get_drive as default for /. (cwdstuff::set): Initialize drive_length.
* Regularize most strace_prints throughout so that %E is always preceded by aChristopher Faylor2004-09-031-1/+1
| | | | comma and elminate most uses of "foo = %s" to "foo %s".
* 2004-06-17 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-06-171-8/+8
| | | | | | | | | | | | | | | * fhandler.cc (fhandler_base::open_9x): Do not check for null name. Move debug_printf to common code line. (fhandler_base::open): Ditto. Initialize upath. Remove second argument of pc.get_nt_native_path. * path.h (path_conv::get_nt_native_path): Remove second argument. * path.cc (path_conv::get_nt_native_path): Ditto. Call str2uni_cat. * security.h (str2buf2uni_cat): Delete declaration. (str2uni_cat): New declaration. * security.cc (str2buf2uni): Get length from sys_mbstowcs call. (str2buf2uni_cat): Delete function. (str2uni_cat): New function. * miscfuncs.cc (sys_mbstowcs): Add debug_printf.
* * path.cc (fchdir): Pass the Posix path to chdir.Corinna Vinschen2004-06-081-1/+1
|
* * spawn.cc (find_exec): Use has_slash to determine if path has a slash ratherChristopher Faylor2004-06-021-5/+5
| | | | than calculating this twice.
* 2004-05-30 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-05-311-24/+25
| | | | | | * path.cc (mount_info::add_item): Make sure native path has drive or UNC form. Call normalize_xxx_path instead of [back]slashify. Remove test for double slashes. Reorganize to always debug_print.
* * path.cc (chdir): Always use the normalized_path as posix_cwd, except if itChristopher Faylor2004-05-281-23/+23
| | | | | | starts with a drive. Also perform whitespace cleanup.
* * cygheap.h (cwdstuff::set): Modify return value and arguments.Christopher Faylor2004-05-151-35/+57
| | | | | | | * path.cc (chdir): Specify PC_POSIX. Do not call SetCurrentDirectory. Set posix_cwd in a way that does not break find.exe. Change call to cwd.set. (cwdstuff::get_initial): Do not call GetCurrentDirectory here. (cwdstuff::set): Call SetCurrentDirectory and GetCurrentDirectory as needed.
* * path.cc (path_conv::check): Don't bail out with error if path is "//".Corinna Vinschen2004-05-121-1/+1
|
* Christopher Faylor <cgf@timesys.com>Christopher Faylor2004-05-071-3/+4
| | | | * path.cc (mount_info::conv_to_posix_path): Add return.
* 2004-05-06 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-05-061-74/+43
| | | | | | | | | * path.cc (path_conv::check): Strip trailing dots and spaces and return error if the final component had only dots and spaces. (normalize_posix_path): Revert 2004-04-30. (chdir): Do not check for trailing spaces. Do not set native_dir to c:\ for virtual devices. Pass only native_dir to cwd.set. (cwdstuff::set): Assume posix_cwd is already normalized.
* * path.cc (normalize_win32_path): Detect components with only dots. Remove aChristopher Faylor2004-05-041-36/+24
| | | | | | | final . if it follows '\\'. (mount_info::conv_to_win32_path): Only backslashify the path when no mount is found. (chdir): Do not look for components with only dots.
* * path.cc (is_unc_share): Remove redundant tests.Christopher Faylor2004-05-041-8/+6
|
* * path.cc (check_sysfile): Don't scan string twice.Corinna Vinschen2004-05-041-2/+3
|
* * fhandler.cc (fhandler_base::open): Call path_conv::get_nt_native_pathCorinna Vinschen2004-04-301-0/+28
| | | | | | | for evaluating NT path. * path.cc (normalize_posix_path): Remove trailing dots and spaces. (path_conv::get_nt_native_path): New function. * path.h (class path_conv): Declare get_nt_native_path method.
* fix commentChristopher Faylor2004-04-201-1/+1
|
* * path.cc (is_unc_share): Rename from slash_unc_prefix_p throughout.Christopher Faylor2004-04-201-40/+25
| | | | | | | | * path.cc (normalize_posix_path): Process all Posix paths and map three or more initial slashes to a single one. Simplify processing following two initial slashes. (normalize_win32_path): Make last argument non-optional and do not check for NULL value.
* * autoload.cc (NtCreateFile): Add.Corinna Vinschen2004-04-161-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dir.cc (mkdir): Change set_file_attribute call to indicate that NT security isn't used. * fhandler.cc (fhandler_base::open_9x): New method, created from fhandler_base::open. (fhandler_base::open): Rearrange to use NtCreateFile instead of CreateFile. * fhandler.h (enum query_state): Redefine query_null_access to query_stat_control. query_null_access isn't allowed in NtCreateFile. (fhandler_base::open_9x): Declare. * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use query_stat_control first, query_read_control if that fails. (fhandler_disk_file::fchmod): Call enable_restore_privilege before trying to open for query_write_control. Don't fall back to opening for query_read_control. (fhandler_disk_file::fchown): Ditto. (fhandler_disk_file::facl): Only request restore privilege and query access necessary for given cmd. * fhandler_raw.cc (fhandler_dev_raw::open): Call fhandler_base::open instead of opening device here. * ntdll.h (NtCreateFile): Declare. * path.cc (symlink_worker): Change set_file_attribute call to indicate that NT security isn't used. * sec_acl.cc (getacl): Fix bracketing. * sec_helper.cc (enable_restore_privilege): New function. * security.cc (str2buf2uni_cat): New function. (write_sd): Don't request restore permission here. * security.h (set_process_privileges): Drop stale declaration. (str2buf2uni): Declare. (str2buf2uni_cat): Declare. (enable_restore_privilege): Declare. * syscalls.cc (fchown32): Return immediate success on 9x.
* 2004-04-14 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-04-141-1/+1
| | | | | | | | | * path.h (path_conv::set_symlink): Add argument. (path_conv::get_symlink_length): New method. (path_conv::symlink_length): New member. * path.cc (path_conv::check): Pass symlen to set_symlink. * fhandler_disk_file.cc (fhandler_base::fstat_helper): For symlinks set st_size from get_symlink_length.
* * dir.cc (mkdir): Call set_file_attribute with additional handleCorinna Vinschen2004-04-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | argument. * fhandler.cc (fhandler_base::fchmod): New method. * fhandler.h: Declare fchmod method in fhandler_base, fhandler_disk_file and fhandler_virtual. * fhandler_disk_file.cc (fhandler_disk_file::fchmod): New method. (fhandler_base::open_fs): Call set_file_attribute with additional handle argument. * fhandler_virtual.cc (fhandler_virtual::fchmod): New method. * path.cc (symlink_worker): Call set_file_attribute with additional handle argument. * security.cc (get_nt_object_security): New function. (get_nt_object_attribute): Call get_nt_object_security. (set_nt_attribute): Add handle argument. Call get_nt_object_security first, read_sd only if that fails. (set_file_attribute): Add handle argument. * security.h (set_file_attribute): Declare with additional handle argument. * syscalls.cc (stat_suffixes): Move to beginning of file. (chown_worker): Call set_file_attribute with additional handle argument. (chmod): Reorganize to call fhandler's fchmod method eventually. (fchmod): Ditto.
* * winsup.h (IMPLEMENT_STATUS_FLAG): New macro to define status flagCorinna Vinschen2004-04-131-1/+0
| | | | | | | | | | | | accessor methods unambiguously. * fhandler.h: Use IMPLEMENT_STATUS_FLAG throughout where possible. * fhandler_termios.cc (fhandler_termios::tcinit): Call corrected accessor for initialized status flag. * mtinfo.h (class mtinfo_drive): Use IMPLEMENT_STATUS_FLAG throughout. * path.cc (fs_info::update): Remove duplicate call to flags(). * path.h (struct fs_info): Use IMPLEMENT_STATUS_FLAG where possible. (path_conv::is_auto_device): Fix spacing. * tty.h (class tty_min): Use IMPLEMENT_STATUS_FLAG throughout.
* 2004-04-12 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2004-04-121-3/+3
| | | | * path.cc (path_conv::check): Fix "tail filling" logic.
* * fhandler.cc (rootdir): Add and use second argument.Corinna Vinschen2004-04-101-2/+1
| | | | | | | * winsup.h (rootdir): Add second argument in declaration. * path.cc (fs_info::update): Modify call to rootdir. * syscalls.cc (check_posix_perm): Ditto. (statfs): Ditto. Move syscall_printf near top.
* * Use new unified status_flag accessor methods from classes fhandler_*,Corinna Vinschen2004-04-101-54/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tty_min, mtinfo and fs_info thoroughout. * fhandler.h: Redefine all set_close_on_exec methods to take a bool argument. (enum conn_state): Rename from connect_state. (class fhandler_base): Rename some status flags to align with accessor method names. Drop encoded flag entirely. Unify status accessor methods. Const'ify all read accessor methods. (class fhandler_socket): Ditto. (class fhandler_dev_raw): Ditto. * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use fs.fs_is_fat() instead of evaluating FATness of file system here. (fhandler_disk_file::opendir): Drop call to set_encoded(). (fhandler_disk_file::readdir): Use pc.isencoded() directly. * mtinfo.h (class mtinfo_drive): Const'ify all read accessor methods. * path.cc (fsinfo_cnt): Add. (fs_info::update): Accomodate class changes. Evaluate file system name specific flags right here. Add thread safety for reading and writing global fsinfo array. * path.h (enum path_types): Drop values for flags kept in fs already. (struct fs_info): Move status informatin into private struct type status_flags. Add accessor methods. Remove path and file system name string arrays in favor of status bits. (class path_conv): Use new fs_info status information where appropriate. (path_conf::fs_has_ea): Rename from fs_fast_ea. (path_conf::fs_has_acls): New method. (path_conf::root_dir): Remove. (path_conf::volname): Remove. * syscalls (statfs): Evaluate root dir locally. * tty.h (class tty_min): Unify status accessor methods. Const'ify all read accessor methods.