尾辻です。
すみません。自分に対する返信ができなくてスレッドが自然じゃないです。今度はできたでしょうか。
(gmailってどうやれば自分宛のメールがpopで取ってこれるんでしょうか。)

> 摂氏1/8度=0.125度区切りだということで小数点以下三桁用意しました。
よくBKDG読んだら、1/2-degree C の精度でした。ごめんなさい。
結局 XX.5 度とか XX.0度になります。

patchです。
--- hwpstate.c.mail     2009-03-02 22:30:14.000000000 +0900
+++ hwpstate.c  2009-03-02 22:25:56.000000000 +0900
@@ -156,14 +156,11 @@
        F3 = pci_find_bsf(0, 24, 3);
        F3xA4 = pci_read_config(F3, 0xA4, 4);
        /* F3xA4 Reported Temperature Control Register (Page 254) */
+       /* 1/2-degree C resolution */
        curtempx8 = AMD10H_CUR_TMP(F3xA4);
        curtemp_i = curtempx8 / 8;
-       curtemp_d = (curtempx8 % 8) * 125;
-       if (curtemp_d == 0) {
-               snprintf(hwpstate_temp, sizeof(hwpstate_temp), "%d.000", 
curtemp_i);
-       } else {
-               snprintf(hwpstate_temp, sizeof(hwpstate_temp), "%d.%d", 
curtemp_i, curtemp_d);
-       }
+       curtemp_d = (curtempx8 % 8) * 5 / 4;
+       snprintf(hwpstate_temp, sizeof(hwpstate_temp), "%d.%d", curtemp_i, 
curtemp_d);
        error = sysctl_handle_string(oidp, hwpstate_temp, 
sizeof(hwpstate_temp), req);
        return (error);
 }

================
anno...@gmail.com

メールによる返信