* autoload.cc (GetModuleFileNameExA): Add.
(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.
This commit is contained in:
@@ -23,7 +23,9 @@ struct commune_result
|
||||
enum picom
|
||||
{
|
||||
PICOM_CMDLINE = 1,
|
||||
PICOM_FIFO = 2
|
||||
PICOM_FIFO = 2,
|
||||
PICOM_CWD = 3,
|
||||
PICOM_ROOT = 4
|
||||
};
|
||||
|
||||
#define EXITCODE_SET 0x80000000
|
||||
@@ -106,6 +108,8 @@ public:
|
||||
void commune_recv ();
|
||||
commune_result commune_send (DWORD, ...);
|
||||
bool alive ();
|
||||
char *root (size_t &);
|
||||
char *cwd (size_t &);
|
||||
char *cmdline (size_t &);
|
||||
void set_ctty (class tty_min *, int, class fhandler_tty_slave *);
|
||||
bool dup_proc_pipe (HANDLE) __attribute__ ((regparm(2)));
|
||||
|
Reference in New Issue
Block a user