for (i = 0; i < length; i++) {
GENERIC_DEBUG_PRINT("%x", ((uchar_t*)src)[i]);
}
-
+
GENERIC_DEBUG_PRINT(" to port 0x%x ... ", port);
- for (i = 0; i < length; i++) {
- Out_Byte(port, ((uchar_t*)src)[i]);
+ switch (length) {
+ case 1:
+ Out_Byte(port,((uchar_t*)src)[0]);
+ break;
+ case 2:
+ Out_Word(port,((ushort_t*)src)[0]);
+ break;
+ case 4:
+ Out_DWord(port,((uint_t*)src)[0]);
+ break;
+ default:
+ for (i = 0; i < length; i++) {
+ Out_Byte(port, ((uchar_t*)src)[i]);
+ }
}
GENERIC_DEBUG_PRINT(" done\n");
GENERIC_DEBUG_PRINT("generic: reading 0x%x bytes from port 0x%x ...", length, port);
- for (i = 0; i < length; i++) {
- ((uchar_t*)src)[i] = In_Byte(port);
+ switch (length) {
+ case 1:
+ ((uchar_t*)src)[0] = In_Byte(port);
+ break;
+ case 2:
+ ((ushort_t*)src)[0] = In_Word(port);
+ break;
+ case 4:
+ ((uint_t*)src)[0] = In_DWord(port);
+ break;
+ default:
+ for (i = 0; i < length; i++) {
+ ((uchar_t*)src)[i] = In_Byte(port);
+ }
}
GENERIC_DEBUG_PRINT(" done ... read 0x");