• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Вопрос по си

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Что значит эта строчка: nic->ioaddr = pci->ioaddr & ~3; ??? (в частности & ~3)
(nic и pci это определенные структуры)
 
G

grigsoft

& - это побитовое AND. ~ - это дополнение.
Нипример 3 = 0000 0011 в двоичной системе.
~3 = 1111 1100
А твое выражение означает что nic->ioaddr присваивается значение pci->ioaddr с обнуленными последними 2 битами.
 
M

maks

еще по синтаксису: что значит вот это:

#define CONFIG_CMD(bus, device_fn, where) (0x80000000 | (bus << 16) | (device_fn << 8) | (where & ~3))
 
G

grigsoft

Упаковка 3 байт в DWORD - например, bus сдвигается влево на 16 бит и накладывается на маску.
 
M

maks

т.е. bus сдвигается влево на 16 бит, накладывается на маску и записывается в bus и так для остальных двух параметров?
 
G

grigsoft

Нет, результат макро - число, у которого в в третьем байте - bus, во втором - device, в третьем - where.
 
G

Guest

1.static unsigned char tx_buffer[TX_BUF_SIZE] __attribute__((aligned(4)));
это определение функции или что? (TX_BUF_SIZE=1514)
2.struct nic
{
void (*reset)P((struct nic *));
}
что в структуре так определяется?
 
G

Guest

После struct nic
{
void (*reset)P((struct nic *));
}

есть такое: nic->reset = rtl_reset;
а потом, определение функции: static void rtl_reset(struct nic* nic) {...}

а что такое P() нигде не описано и не понятно...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!