PERFORCE change 124590 for review
Roman Divacky
rdivacky at FreeBSD.org
Fri Aug 3 05:56:38 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=124590
Change 124590 by rdivacky at rdivacky_witten on 2007/08/03 12:56:24
Naive attempt to update /proc/<PID>/stat. Just for my testing purposes. Dont bother
reviewing.
Affected files ...
.. //depot/projects/soc2007/rdivacky/linux_fixes/sys/compat/linprocfs/linprocfs.c#3 edit
Differences ...
==== //depot/projects/soc2007/rdivacky/linux_fixes/sys/compat/linprocfs/linprocfs.c#3 (text+ko) ====
@@ -85,6 +85,7 @@
#if defined(__i386__) || defined(__amd64__)
#include <machine/cputypes.h>
#include <machine/md_var.h>
+#include <machine/frame.h>
#endif /* __i386__ || __amd64__ */
#include "opt_compat.h"
@@ -544,42 +545,50 @@
PROC_UNLOCK(p);
PS_ADD("tty", "%d", 0); /* XXX */
PS_ADD("tpgid", "%d", kp.ki_tpgid);
- PS_ADD("flags", "%u", 0); /* XXX */
+ PS_ADD("flags", "%lu", (unsigned long)0); /* XXX */
PS_ADD("minflt", "%lu", kp.ki_rusage.ru_minflt);
PS_ADD("cminflt", "%lu", kp.ki_rusage_ch.ru_minflt);
PS_ADD("majflt", "%lu", kp.ki_rusage.ru_majflt);
PS_ADD("cmajflt", "%lu", kp.ki_rusage_ch.ru_majflt);
- PS_ADD("utime", "%ld", T2J(tvtohz(&kp.ki_rusage.ru_utime)));
- PS_ADD("stime", "%ld", T2J(tvtohz(&kp.ki_rusage.ru_stime)));
+ PS_ADD("utime", "%lu", T2J(tvtohz(&kp.ki_rusage.ru_utime)));
+ PS_ADD("stime", "%lu", T2J(tvtohz(&kp.ki_rusage.ru_stime)));
PS_ADD("cutime", "%ld", T2J(tvtohz(&kp.ki_rusage_ch.ru_utime)));
PS_ADD("cstime", "%ld", T2J(tvtohz(&kp.ki_rusage_ch.ru_stime)));
- PS_ADD("priority", "%d", kp.ki_pri.pri_user);
- PS_ADD("nice", "%d", kp.ki_nice); /* 19 (nicest) to -19 */
- PS_ADD("0", "%d", 0); /* removed field */
- PS_ADD("itrealvalue", "%d", 0); /* XXX */
+ PS_ADD("priority", "%ld", (long int)kp.ki_pri.pri_user);
+ PS_ADD("nice", "%ld", (long int) kp.ki_nice); /* 19 (nicest) to -19 */
+ PS_ADD("0", "%d", 1); /* number of threads */
+ PS_ADD("itrealvalue", "%ld", (long int)0); /* XXX */
/* XXX: starttime is not right, it is the _same_ for _every_ process.
It should be the number of jiffies between system boot and process
start. */
- PS_ADD("starttime", "%lu", T2J(tvtohz(&kp.ki_start)));
- PS_ADD("vsize", "%ju", P2K((uintmax_t)kp.ki_size));
- PS_ADD("rss", "%ju", (uintmax_t)kp.ki_rssize);
+ PS_ADD("starttime", "%llu", (unsigned long long)T2J(tvtohz(&kp.ki_start)));
+ PS_ADD("vsize", "%lu", (unsigned long)P2K((uintmax_t)kp.ki_size));
+ PS_ADD("rss", "%ld", (long int)kp.ki_rssize);
PS_ADD("rlim", "%lu", kp.ki_rusage.ru_maxrss);
- PS_ADD("startcode", "%u", (unsigned)0);
- PS_ADD("endcode", "%u", 0); /* XXX */
- PS_ADD("startstack", "%u", 0); /* XXX */
- PS_ADD("kstkesp", "%u", 0); /* XXX */
- PS_ADD("kstkeip", "%u", 0); /* XXX */
- PS_ADD("signal", "%u", 0); /* XXX */
- PS_ADD("blocked", "%u", 0); /* XXX */
- PS_ADD("sigignore", "%u", 0); /* XXX */
- PS_ADD("sigcatch", "%u", 0); /* XXX */
- PS_ADD("wchan", "%u", 0); /* XXX */
- PS_ADD("nswap", "%lu", kp.ki_rusage.ru_nswap);
- PS_ADD("cnswap", "%lu", kp.ki_rusage_ch.ru_nswap);
- PS_ADD("exitsignal", "%d", 0); /* XXX */
- PS_ADD("processor", "%u", kp.ki_lastcpu);
- PS_ADD("rt_priority", "%u", 0); /* XXX */ /* >= 2.5.19 */
- PS_ADD("policy", "%u", kp.ki_pri.pri_class); /* >= 2.5.19 */
+ PS_ADD("startcode", "%lu", (unsigned long)0);
+ PS_ADD("endcode", "%lu", (unsigned long)0); /* XXX */
+ PS_ADD("startstack", "%lu", (unsigned long)p->p_sysent->sv_usrstack);
+#if __i386__
+ PS_ADD("kstkesp", "%lu", (unsigned long)td->td_frame->tf_esp); /* XXX: i386 only*/
+ PS_ADD("kstkeip", "%lu", (unsigned long)td->td_frame->tf_eip); /* XXX: i386 only */
+#elif __amd64__
+ PS_ADD("kstkesp", "%lu", (unsigned long)td->td_frame->tf_rsp); /* XXX: i386 only*/
+ PS_ADD("kstkeip", "%lu", (unsigned long)td->td_frame->tf_rip); /* XXX: i386 only */
+#else
+ PS_ADD("kstkesp", "%lu", (unsigned long)0); /* XXX: i386 only*/
+ PS_ADD("kstkeip", "%lu", (unsigned long)0); /* XXX: i386 only */
+#endif
+ PS_ADD("signal", "%lu", (unsigned long)0); /* ignored */
+ PS_ADD("blocked", "%lu", (unsigned long)0); /* ignored */
+ PS_ADD("sigignore", "%lu", (unsigned long)0); /* ignored */
+ PS_ADD("sigcatch", "%lu", (unsigned long)0); /* ignored */
+ PS_ADD("wchan", "%lu", (unsigned long)0); /* ignored */
+ PS_ADD("nswap", "%lu", (unsigned long)0); /* defined as 0 */
+ PS_ADD("cnswap", "%lu", (unsigned long)0); /* defined as 0 */
+ PS_ADD("exitsignal", "%d", p->p_sigparent);
+ PS_ADD("processor", "%d", td->td_oncpu);
+ PS_ADD("rt_priority", "%lu", (unsigned long)0); /* XXX */ /* >= 2.5.19 */
+ PS_ADD("policy", "%lu", (unsigned long)kp.ki_pri.pri_class); /* >= 2.5.19 */
#undef PS_ADD
sbuf_putc(sb, '\n');
@@ -865,7 +874,7 @@
vm_ooffset_t off = 0;
char *name = "", *freename = NULL;
ino_t ino;
- unsigned int last_timestamp;
+ unsigned int last_timestamp = map->timestamp;
int ref_count, shadow_count, flags;
int error;
struct vnode *vp;
More information about the p4-projects
mailing list