Что значит 4-я строка этой функции:
static __inline__ void
outb( u_char value, u_long port )
{
__asm__ __volatile__ ("outb %0,%1"::"a" (value), "d" ((u_short) port));
}
Непонятная строка функции
Модератор: Модераторы разделов
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Непонятная строка функции
рискну предположить, что это запись в порт port значения value
-
d_Sun
- Сообщения: 291
Re: Непонятная строка функции
Моя подпись сильно длинная :)
-
pktfag
- Сообщения: 142
- ОС: Arch Linux
Re: Непонятная строка функции
Вот про __asm__ из файла sys/cdefs.h:
#define __weak_reference(sym,alias) \
__asm__(".weak " #alias); \
__asm__(".equ " #alias ", " #sym)
А про __volatile__ vim пишет вот такое сообщение, когда нажимаешь Ctrl+wCtrl+i
E387: Match is on current line
А что такое "::" и "," в конструкции ("outb %0,%1"::"a" (value), "d" ((u_short) port)). Как вообще можно понять эту конструкцию?
#define __weak_reference(sym,alias) \
__asm__(".weak " #alias); \
__asm__(".equ " #alias ", " #sym)
А про __volatile__ vim пишет вот такое сообщение, когда нажимаешь Ctrl+wCtrl+i
E387: Match is on current line
А что такое "::" и "," в конструкции ("outb %0,%1"::"a" (value), "d" ((u_short) port)). Как вообще можно понять эту конструкцию?
-
d_Sun
- Сообщения: 291