����14-14 linux/include/asm/io.h
//// Ӳ���˿��ֽ����������
// ������value - ������ֽڣ�port - �˿ڡ�
1 #define outb(value,port) \
2 __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port))
3
4
//// Ӳ���˿��ֽ����뺯����
// ������port - �˿ڡ����ض�ȡ���ֽڡ�
5 #define inb(port) ({ \
6 unsigned char _v; \
7 __asm__ volatile ("inb %%dx,%%al":"=a" (_v):"d" (port)); \
8 _v; \
9 })
10
//// ���ӳٵ�Ӳ���˿��ֽ����������ʹ��������ת������ӳ�һ�ᡣ
// ������value - ������ֽڣ�port - �˿ڡ�
11 #define outb_p(value,port) \
12 __asm__ ("outb %%al,%%dx\n" \
13 "\tjmp 1f\n" \ // ��ǰ��ת�����1��������һ����䴦����
14 "1:\tjmp 1f\n" \ // ��ǰ��ת�����1����
15 "1:"::"a" (value),"d" (port))
16
//// ���ӳٵ�Ӳ���˿��ֽ����뺯����ʹ��������ת������ӳ�һ�ᡣ
// ������port - �˿ڡ����ض�ȡ���ֽڡ�
17 #define inb_p(port) ({ \
18 unsigned char _v; \
19 __asm__ volatile ("inb %%dx,%%al\n" \
20 "\tjmp 1f\n" \ // ��ǰ��ת�����1��������һ����䴦����
21 "1:\tjmp 1f\n" \ // ��ǰ��ת�����1����
22 "1:":"=a" (_v):"d" (port)); \
23 _v; \
24 })
25