����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