Date: Fri, 3 Aug 2007 12:56:37 GMT From: Roman Divacky <rdivacky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 124590 for review Message-ID: <200708031256.l73CubSk092320@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=124590 Change 124590 by rdivacky@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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708031256.l73CubSk092320>