Tiskarna HP Business InkJet 1100

Dan Lukes dan at obluda.cz
Mon Feb 26 11:27:06 CET 2007


Divacky Roman napsal/wrote, On 02/26/07 10:47:
>> Driver ulpt nema interfejs pre select(), ktory je pouzivany v CUPS. CUPS

> select() je 
...
 > per-class operace implementovana pro ruzne filesystemy atp.

> kdo a co chape blbe?

	Rekl bych, ze se mylis v tvrzeni "poll() je operace implementovana pro 
ruzne filesystemy". Ve skutecnosti plati, ze "poll() je operace 
implementovana pro ruzna zarizeni" - a to uz je skoro totez, co tvrdit, 
ze poll() (a tedy select) je hw-specific. A to uz je odpoved na tvrzeni:

> se mi nezda ze by select() byl nejak hw specific.

	Tady nekde patrne je koren problemu.

	Konkretne hardware "tiskarna pres USB" rizena ovladacem "ulpt" nema 
poll() implementovany a pouziva genericky a prazdny nopoll().

	Popravde receni mi neni uplne jasne, jak by mohl byt poll generickou 
rutinou nezavislou na zarizeni a hardware. Jak chces na neznamem 
zarizeni obecne zjistit, jestli jsou v nejakem obecnem datovem kanale 
pripravena data na cteni, kdyz samotny pojem "datovy kanal" neni 
genericky a zavisi na konkretnim ovladaci (a tedy hardware) ?

	Jen si ale s odstupem casu prestavam myslet, ze v ulpt je select() 
implemntovan tak, ze blokuje jak to naznacoval puvodni prispevek. Spis 
to bude stejne jako v ugen - on neblokuje, naopak, okamzite ohlasi 
pripravenost deskriptoru - a zablokuje se tedy az nasledne zavolany read().

	Spravna implementace neblokujiciho cteni na FreeBSD's ULPT a UGEN - a 
asi i dalsich USB pouzivajicich genericke USB rutiny - proste nevede 
pres select, ale pres ioctl USB_SET_TIMEOUT a blokujici read() - on se 
stejne pozadavek na neblokujici operace s descriptorem tise ignoruje a 
obsluhuje se jako blokujici. Jednoduse receno - neblokujici operace 
nejsou pro tato zarizeni k dispozici. Misto nich lze pouzit "blokujici 
cteni s timeoutem". Dokonce bych mozna odvazne rekl, ze ono to snad 
obecne ani lepe nejde (cimz nepopiram, ze v konkretnich pripadech to 
muze byt jinak).


					Dan



-- 
Dan Lukes                                   SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz



More information about the Users-l mailing list