1 #include "vgatypes.h"
2 #include "vb_util.h"
3
xgifb_reg_set(unsigned long port,u8 index,u8 data)4 void xgifb_reg_set(unsigned long port, u8 index, u8 data)
5 {
6 outb(index, port);
7 outb(data, port + 1);
8 }
9
xgifb_reg_get(unsigned long port,u8 index)10 u8 xgifb_reg_get(unsigned long port, u8 index)
11 {
12 outb(index, port);
13 return inb(port + 1);
14 }
15
xgifb_reg_and_or(unsigned long port,u8 index,unsigned data_and,unsigned data_or)16 void xgifb_reg_and_or(unsigned long port, u8 index,
17 unsigned data_and, unsigned data_or)
18 {
19 u8 temp;
20
21 temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
22 temp = (temp & data_and) | data_or;
23 xgifb_reg_set(port, index, temp);
24 }
25
xgifb_reg_and(unsigned long port,u8 index,unsigned data_and)26 void xgifb_reg_and(unsigned long port, u8 index, unsigned data_and)
27 {
28 u8 temp;
29
30 temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
31 temp &= data_and;
32 xgifb_reg_set(port, index, temp);
33 }
34
xgifb_reg_or(unsigned long port,u8 index,unsigned data_or)35 void xgifb_reg_or(unsigned long port, u8 index, unsigned data_or)
36 {
37 u8 temp;
38
39 temp = xgifb_reg_get(port, index); /* XGINew_Part1Port index 02 */
40 temp |= data_or;
41 xgifb_reg_set(port, index, temp);
42 }
43