xxxxxxxxxx
import core.stdc.stdlib;
import core.volatile;
struct List(T) {
T* a;
this(T b) {
a = cast(T*)malloc(b);
}
~this() {
free(a);
}
}
uint ioAPICRead(size_t ioAPIC, uint reg) {
auto list = List!uint(reg);
uint* base = cast(uint*)(cast(size_t)list.a);
volatileStore(base, reg);
return volatileLoad(base + 4);
}