Re: procfs.c thinks pid's can't be bigger than 99999

Michael Snyder
2001-07-02T15:15:00Z

Kevin Buettner wrote:
>
> On Jul 2, 11:56am, Michael Snyder wrote:
>
> > John Hughes wrote:
> > >
> > > but on some systems, for example UnixWare NSC they
> > > can be quite a lot bigger.
> > >
> > > --- procfs.c.orig Tue May 15 02:03:36 2001
> > > +++ procfs.c Mon Jul 2 14:40:05 2001
> > > @@ -295,7 +295,7 @@
> > > # define AS_PROC_NAME_FMT "/proc/%d/as"
> > > # define MAP_PROC_NAME_FMT "/proc/%d/map"
> > > # define STATUS_PROC_NAME_FMT "/proc/%d/status"
> > > -# define MAX_PROC_NAME_SIZE sizeof("/proc/99999/lwp/8096/lstatus")
> > > +# define MAX_PROC_NAME_SIZE sizeof("/proc/1048576/lwp/8096/lstatus")
> > > # endif
> > > /* the name of the proc status struct depends on the implementation */
> > > typedef pstatus_t gdb_prstatus_t;
> >
> > Well, actually, aren't we going to run into trouble if
> > pids are bigger than 16 bits? Or did Kevin Buettner's
> > recent changes take care of that?
>
> My recent changes took care of that.
>
> > Other than that, I have no problem with this change.
>
> I think John's change is a step in the right direction, but the name
> is still not large enough. In AIX 5, the pids and tids seem to be
> able to occupy all of 32 bits. Therefore, I propose that we use
> the following:
>
> #define MAX_PROC_NAME_SIZE sizeof("/proc/1234567890/lwp/1234567890/lstatus")
>
> Note that 2^32-1 is 4294967295 which requires ten digits. Using
> "1234567890" makes it obvious that ten digits are needed.

Good, this has my approval.
Michael