MCPcopy Create free account
hub / github.com/LibertyOS-Development/kernel / set_pitfreq_div

Function set_pitfreq_div

src/time.rs:145–161  ·  view source on GitHub ↗

Set PIT frequency divider

(divider: u16, channel: u8)

Source from the content-addressed store, hash-verified

143
144// Set PIT frequency divider
145pub fn set_pitfreq_div(divider: u16, channel: u8)
146{
147 interrupts::without_interrupts(||
148 {
149 let bytes = divider.to_le_bytes();
150 let mut cmd: Port<u8> = Port::new(0x43);
151 let mut data: Port<u8> = Port::new(0x40 + channel as u16);
152 let opmode = 6;
153 let accmode = 3;
154 unsafe
155 {
156 cmd.write((channel << 6) | (accmode << 4) | opmode);
157 data.write(bytes[0]);
158 data.write(bytes[1]);
159 }
160 });
161}
162
163
164// PIT interrupt handler

Callers 1

initFunction · 0.85

Calls 1

writeMethod · 0.45

Tested by

no test coverage detected