mirror of
https://github.com/wichtounet/thor-os.git
synced 2025-09-19 01:25:05 -04:00
Clean inline assembly
This commit is contained in:
parent
3f3b388d61
commit
08a1fc21bb
@ -2,20 +2,32 @@
|
|||||||
|
|
||||||
uint8_t in_byte(uint16_t _port){
|
uint8_t in_byte(uint16_t _port){
|
||||||
uint8_t rv;
|
uint8_t rv;
|
||||||
__asm__ __volatile__ ("in %0, %1" : "=a" (rv) : "dN" (_port));
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
void out_byte (uint16_t _port, uint8_t _data){
|
__asm__ __volatile__ ("in %[data], %[port]"
|
||||||
__asm__ __volatile__ ("out %0, %1" : : "dN" (_port), "a" (_data));
|
: [data] "=a" (rv)
|
||||||
|
: [port] "dN" (_port));
|
||||||
|
|
||||||
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t in_word(uint16_t _port){
|
uint16_t in_word(uint16_t _port){
|
||||||
uint16_t rv;
|
uint16_t rv;
|
||||||
__asm__ __volatile__ ("in %0, %1" : "=a" (rv) : "dN" (_port));
|
|
||||||
|
__asm__ __volatile__ ("in %[data], %[port]"
|
||||||
|
: [data] "=a" (rv)
|
||||||
|
: [port] "dN" (_port));
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void out_word(uint16_t _port, uint16_t _data){
|
void out_byte (uint16_t _port, uint8_t _data){
|
||||||
__asm__ __volatile__ ("out %0, %1" : : "dN" (_port), "a" (_data));
|
__asm__ __volatile__ ("out %[port], %[data]"
|
||||||
|
: /* No outputs */
|
||||||
|
: [port] "dN" (_port), [data] "a" (_data));
|
||||||
|
}
|
||||||
|
|
||||||
|
void out_word(uint16_t _port, uint16_t _data){
|
||||||
|
__asm__ __volatile__ ("out %[port], %[data]"
|
||||||
|
: /* No outputs */
|
||||||
|
: [port] "dN" (_port), [data] "a" (_data));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user