>возможно помогут функции из серии sleepq_* (например sleepq_set_timeout(9)), но не
>уверен. Что именно нужно от таймеров ? нужно опрашивать битик в регистре на PCI шине.
смысл такой что бит этот софтверно мною устанавливается (железяка ресеится) а потом хардверно сбрасывается через какое-то время. По докам время сброса не более 250us, но практика показывает что у инфинеонов все делается через жопу и при разных температурах этот бит ведет ся поразному.. а в некоторых девайсах ваще никада не снимается.
поэтому опрашивать его нужно с таймаутом и, если через 500-900us ничего не сбросилось, нахально его командой убирать.
короче хочется такого эффекта как в нижепреведенной абстракции
for ( time0=timeT ; ( timeT<(time0+10) ) && (conf1 & CONF1_IIP) ; )
{ /* Wait for IIP (or timeout) */
conf1=m256[devID].regBase->conf1;
}
тута timeT - какой-то freeruning таймер
(conf1 & CONF1_IIP) - как раз тот самый битик
вот так вобщем
а тупая задержка не подходит потому что факт "неопускания" бита нужно просигнализировать юзермоду