mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-25 22:07:15 +00:00
*** empty log message ***
This commit is contained in:
@@ -178,61 +178,55 @@ static inline void i386_set_cr3(unsigned int segment)
|
||||
*/
|
||||
|
||||
#define i386_outport_byte( _port, _value ) \
|
||||
{ register unsigned short __port = _port; \
|
||||
do { register unsigned short __port = _port; \
|
||||
register unsigned char __value = _value; \
|
||||
\
|
||||
asm volatile ( "outb %0,%1" : "=a" (__value), "=d" (__port) \
|
||||
: "0" (__value), "1" (__port) \
|
||||
); \
|
||||
}
|
||||
asm volatile ( "outb %0,%1" : : "a" (__value), "d" (__port) ); \
|
||||
} while (0)
|
||||
|
||||
#define i386_outport_word( _port, _value ) \
|
||||
{ register unsigned short __port = _port; \
|
||||
do { register unsigned short __port = _port; \
|
||||
register unsigned short __value = _value; \
|
||||
\
|
||||
asm volatile ( "outw %0,%1" : "=a" (__value), "=d" (__port) \
|
||||
: "0" (__value), "1" (__port) \
|
||||
); \
|
||||
}
|
||||
asm volatile ( "outw %0,%1" : : "a" (__value), "d" (__port) ); \
|
||||
} while (0)
|
||||
|
||||
#define i386_outport_long( _port, _value ) \
|
||||
{ register unsigned short __port = _port; \
|
||||
do { register unsigned short __port = _port; \
|
||||
register unsigned int __value = _value; \
|
||||
\
|
||||
asm volatile ( "outl %0,%1" : "=a" (__value), "=d" (__port) \
|
||||
: "0" (__value), "1" (__port) \
|
||||
); \
|
||||
}
|
||||
asm volatile ( "outl %0,%1" : : "a" (__value), "d" (__port) ); \
|
||||
} while (0)
|
||||
|
||||
#define i386_inport_byte( _port, _value ) \
|
||||
{ register unsigned short __port = _port; \
|
||||
do { register unsigned short __port = _port; \
|
||||
register unsigned char __value = 0; \
|
||||
\
|
||||
asm volatile ( "inb %1,%0" : "=a" (__value), "=d" (__port) \
|
||||
: "0" (__value), "1" (__port) \
|
||||
asm volatile ( "inb %1,%0" : "=a" (__value) \
|
||||
: "d" (__port) \
|
||||
); \
|
||||
_value = __value; \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
#define i386_inport_word( _port, _value ) \
|
||||
{ register unsigned short __port = _port; \
|
||||
do { register unsigned short __port = _port; \
|
||||
register unsigned short __value = 0; \
|
||||
\
|
||||
asm volatile ( "inw %1,%0" : "=a" (__value), "=d" (__port) \
|
||||
: "0" (__value), "1" (__port) \
|
||||
asm volatile ( "inw %1,%0" : "=a" (__value) \
|
||||
: "d" (__port) \
|
||||
); \
|
||||
_value = __value; \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
#define i386_inport_long( _port, _value ) \
|
||||
{ register unsigned short __port = _port; \
|
||||
do { register unsigned short __port = _port; \
|
||||
register unsigned int __value = 0; \
|
||||
\
|
||||
asm volatile ( "inl %1,%0" : "=a" (__value), "=d" (__port) \
|
||||
: "0" (__value), "1" (__port) \
|
||||
asm volatile ( "inl %1,%0" : "=a" (__value) \
|
||||
: "d" (__port) \
|
||||
); \
|
||||
_value = __value; \
|
||||
}
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* Type definition for raw interrupts.
|
||||
|
||||
Reference in New Issue
Block a user