This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
Re: /proc improvements
- From: Christopher Faylor <cgf at redhat dot com>
- To: cygwin-patches at cygwin dot com
- Date: Sat, 11 May 2002 21:36:20 -0400
- Subject: Re: /proc improvements
- References: <05cd01c1f7b1$aa451250$0100a8c0@advent02>
- Reply-to: cygwin-patches at cygwin dot com
On Fri, May 10, 2002 at 12:31:37AM +0100, Chris January wrote:
>This is first of two patches adding a number of extra files to the /proc
>virtual file system.
>The main aim of this patch was to add compatibility with the procps tools,
>which has been achieved. Specifically, both top and ps are working.
>A lot of the process-specific information and some global information is
>only available on Windows NT. This isn't because I'm mean, but simply
>because I know no way of retrieving this information under Windows 95/98/me.
>In fact the operating system doesn't bother recording most of the
>information required.
>Please test extensively. I've only tested it under Windows 2000 and Windows
>98. In particular I need to know whether the patch works with NT 4.
Committed with a couple of very minor ChangeLog tweaks and one change to
remove an is_winnt test. We prefer to minimize that kind of check as
much as possibility in favor of either adding a capability or just allowing
the error routine from an NT-specific routine to control execution flow.
Thanks.
cgf
>2002-05-10 Christopher January <chris@atomice.net>
>
> * autoload.cc: Add dynamic load statements for 'ZwQueryInformationProcess'
> and 'ZwQueryVirtualMemory'.
> * fhandler.h: Change type of bufalloc and filesize members of
> fhandler_virtual from int to size_t.
> Change type of position member from __off32_t to __off64_t.
> Add new fileid member to fhandler_virtual class.
> Make seekdir take an __off64_t argument.
> Make lseek take an __off64_t argument.
> Add fill_filebuf method to fhandler_virtual.
> Add fill_filebuf method to fhandler_proc.
> Add fill_filebuf method to fhandler_registry.
> Add fill_filebuf method to fhandler_process.
> Add saved_pid and saved_p members to fhandler_process.
> * fhandler_proc.cc: Add 'loadavg', 'meminfo', and 'stat' files to
> proc_listing array.
> Add corresponding entries in proc_fhandlers array.
> (fhandler_proc::open): Use fill_filebuf to flesh out the file contents.
> (fhandler_proc::fill_filebuf): New method.
> (fhandler_proc::format_proc_meminfo): Ditto.
> (fhandler_proc::format_proc_stat): Ditto.
> (fhandler_proc::format_proc_uptime): Ditto.
> * fhandler_process.cc: Add 'stat' and 'statm' files to process_listing
> array.
> (fhandler_process::fstat): Find the _pinfo structure for the process
> named in the filename. Return ENOENT if the process is no longer around.
> Set the gid and uid fields of the stat structure.
> (fhandler_process::open): Store pid and pointer to _pinfo structure in
> saved_pid and saved_p respectively. Use fill_filebuf to flesh out file
> contents.
> (fhandler_proc::fill_filebuf): New method.
> (format_process_stat): New function.
> (format_process_status): Ditto.
> (format_process_statm): Ditto.
> (get_process_state): Ditto.
> (get_mem_values): Ditto.
> * fhandler_registry.cc (fhandler_registry::seekdir): Change argument type
> from __off32_t to __off64_t.
> (fhandler_registry::fill_filebuf): New method.
> * fhandler_virtual.cc (fhandler_virtual::seekdir): Change argument type
> from __off32_t to __off64_t.
> (fhandler_virtual::lseek): Ditto.
> (fhandler_virtual::fill_filebuf): New method.
> (fhandler_virtual::fhandler_virtual): Initialise fileid to -1.
> * wincap.cc: Set flag has_process_io_counters appropriately.
> * wincap.h: Add flag has_process_io_counters.
>