* Merge in cygwin-64bit-branch.
This commit is contained in:
@ -80,11 +80,15 @@ enum path_types
|
||||
PATH_NO_ACCESS_CHECK = PC_NO_ACCESS_CHECK,
|
||||
PATH_CTTY = 0x00400000, /* could later be used as ctty */
|
||||
PATH_OPEN = 0x00800000, /* use open semantics */
|
||||
/* FIXME? PATH_OPEN collides with
|
||||
PATH_NO_ACCESS_CHECK, but it looks
|
||||
like they are never used together. */
|
||||
PATH_LNK = 0x01000000,
|
||||
PATH_TEXT = 0x02000000,
|
||||
PATH_REP = 0x04000000,
|
||||
PATH_HAS_SYMLINKS = 0x10000000,
|
||||
PATH_SOCKET = 0x40000000
|
||||
PATH_SOCKET = 0x40000000,
|
||||
PATH_64BITEXEC = 0x80000000
|
||||
};
|
||||
|
||||
class symlink_info;
|
||||
@ -153,7 +157,7 @@ class path_conv
|
||||
ULONG objcaseinsensitive () const {return caseinsensitive;}
|
||||
bool has_acls () const {return !(path_flags & PATH_NOACL) && fs.has_acls (); }
|
||||
bool hasgood_inode () const {return !(path_flags & PATH_IHASH); }
|
||||
bool isgood_inode (__ino64_t ino) const;
|
||||
bool isgood_inode (ino_t ino) const;
|
||||
bool support_sparse () const
|
||||
{
|
||||
return (path_flags & PATH_SPARSE)
|
||||
@ -186,6 +190,12 @@ class path_conv
|
||||
int is_lnk_special () const {return is_fs_device () || isfifo () || is_lnk_symlink ();}
|
||||
int issocket () const {return dev.is_device (FH_UNIX);}
|
||||
int iscygexec () const {return path_flags & PATH_CYGWIN_EXEC;}
|
||||
int iscygexec32 () const
|
||||
{return (path_flags & (PATH_CYGWIN_EXEC | PATH_64BITEXEC))
|
||||
== PATH_CYGWIN_EXEC;}
|
||||
int iscygexec64 () const
|
||||
{return (path_flags & (PATH_CYGWIN_EXEC | PATH_64BITEXEC))
|
||||
== (PATH_CYGWIN_EXEC | PATH_64BITEXEC);}
|
||||
int isopen () const {return path_flags & PATH_OPEN;}
|
||||
int isctty_capable () const {return path_flags & PATH_CTTY;}
|
||||
void set_cygexec (bool isset)
|
||||
@ -195,6 +205,17 @@ class path_conv
|
||||
else
|
||||
path_flags &= ~PATH_CYGWIN_EXEC;
|
||||
}
|
||||
void set_cygexec (void *target)
|
||||
{
|
||||
if (target)
|
||||
{
|
||||
path_flags |= PATH_CYGWIN_EXEC;
|
||||
if (target == (void *) 64)
|
||||
path_flags |= PATH_64BITEXEC;
|
||||
}
|
||||
else
|
||||
path_flags &= ~PATH_CYGWIN_EXEC;
|
||||
}
|
||||
bool isro () const {return !!(path_flags & PATH_RO);}
|
||||
bool exists () const {return fileattr != INVALID_FILE_ATTRIBUTES;}
|
||||
bool has_attribute (DWORD x) const {return exists () && (fileattr & x);}
|
||||
@ -344,8 +365,7 @@ class path_conv
|
||||
{
|
||||
return eq_worker (pc, pc.path, pc.normalized_path);
|
||||
}
|
||||
DWORD get_devn () {return (DWORD) dev;}
|
||||
short get_unitn () const {return dev.get_minor ();}
|
||||
dev_t get_device () {return dev.get_device ();}
|
||||
DWORD file_attributes () const {return fileattr;}
|
||||
void file_attributes (DWORD new_attr) {fileattr = new_attr;}
|
||||
DWORD fs_flags () const {return fs.flags ();}
|
||||
@ -380,7 +400,7 @@ class path_conv
|
||||
void reset_conv_handle () { conv_handle.set (NULL); }
|
||||
void close_conv_handle () { conv_handle.close (); }
|
||||
|
||||
__ino64_t get_ino_by_handle (HANDLE h);
|
||||
ino_t get_ino_by_handle (HANDLE h);
|
||||
#if 0 /* obsolete, method still exists in fhandler_disk_file.cc */
|
||||
unsigned __stdcall ndisk_links (DWORD);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user