|
@@ -1,9 +1,43 @@
|
|
|
#ifndef _VBUTIL_
|
|
|
#define _VBUTIL_
|
|
|
-extern void xgifb_reg_set(unsigned long, u8, u8);
|
|
|
-extern u8 xgifb_reg_get(unsigned long, u8);
|
|
|
-extern void xgifb_reg_or(unsigned long, u8, unsigned);
|
|
|
-extern void xgifb_reg_and(unsigned long, u8, unsigned);
|
|
|
-extern void xgifb_reg_and_or(unsigned long, u8, unsigned, unsigned);
|
|
|
+static inline void xgifb_reg_set(unsigned long port, u8 index, u8 data)
|
|
|
+{
|
|
|
+ outb(index, port);
|
|
|
+ outb(data, port + 1);
|
|
|
+}
|
|
|
+
|
|
|
+static inline u8 xgifb_reg_get(unsigned long port, u8 index)
|
|
|
+{
|
|
|
+ outb(index, port);
|
|
|
+ return inb(port + 1);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void xgifb_reg_and_or(unsigned long port, u8 index,
|
|
|
+ unsigned data_and, unsigned data_or)
|
|
|
+{
|
|
|
+ u8 temp;
|
|
|
+
|
|
|
+ temp = xgifb_reg_get(port, index);
|
|
|
+ temp = (temp & data_and) | data_or;
|
|
|
+ xgifb_reg_set(port, index, temp);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and)
|
|
|
+{
|
|
|
+ u8 temp;
|
|
|
+
|
|
|
+ temp = xgifb_reg_get(port, index);
|
|
|
+ temp &= data_and;
|
|
|
+ xgifb_reg_set(port, index, temp);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void xgifb_reg_or(unsigned long port, u8 index, unsigned data_or)
|
|
|
+{
|
|
|
+ u8 temp;
|
|
|
+
|
|
|
+ temp = xgifb_reg_get(port, index);
|
|
|
+ temp |= data_or;
|
|
|
+ xgifb_reg_set(port, index, temp);
|
|
|
+}
|
|
|
#endif
|
|
|
|