Kernel programming -> Warum geht das folgende nicht ?
-
Ichwill nur die aktuelle belastung der maschine für den 1 wert bekommen.
kompilierung läuft.
Nur wird im Kernel IMMER nur Last 1: 0 angezeit. Also ich denke der wert von avenrun wird nur als int genommen.
Wenn der kernel nur float kennen sollte? Wie soll dass dann gehen ?printk("%s: Last 1: %lu\n", DRIVER_NAME, avenrun[0]);
-
Was für einen Typ hat denn 'avenrun'? Darauf solltest du deine Formatkennung einstellen (%lu entspricht unsigned long, %f wäre für float).
-
ja avenrun[0-2] ist unsigned long.
Auf float kann ich im kernel nicht stellen da der kernel nicht float kennt....
hmm....mich würde es sehr interessieren wie die designer das hinbekommen haben dass sie die last als float darstellen.......vielleicht mit Bitschieberei???
-
Wenn du meinst, float ist bzgl. Division erlaubt, so könnte es helfen, wenn du evtl. div_long_long_rem verwendest.