/* Get initial counter invariant */
ct0 = read_c0_count();
/* Latch and spin until top byte of counter0 is zero */ do {
outb(0x00, 0x43);
(void) inb(0x40);
msb = inb(0x40);
ct1 = read_c0_count();
} while (msb);
/* *Figureoutther4koffset,thealgorithmisverysimpleandworksin *_all_casesaslongasthe8254counterregisteritselfworksok(as *aninterruptdrivingtimeritdoesnotbecauseofbug,thisiswhy *weareusingtheonchipr4kcounter/compareregistertoservethis *purpose,butforr4k_offsetcalculationitwillworkokforus). *Thereareotherverycomplicatedwaysofperformingthiscalculation *butthisoneworksjustfinesoIamnotgoingtofutzaround.;-)
*/
printk(KERN_INFO "Calibrating system timer... ");
dosample(); /* Prime cache. */
dosample(); /* Prime cache. */ /* Zero is NOT an option. */ do {
r4k_ticks[0] = dosample();
} while (!r4k_ticks[0]); do {
r4k_ticks[1] = dosample();
} while (!r4k_ticks[1]);
switch (sni_brd_type) { case SNI_BRD_10: case SNI_BRD_10NEW: case SNI_BRD_TOWER_OASIC: case SNI_BRD_MINITOWER:
sni_a20r_timer_setup(); break;
}
setup_pit_timer();
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.