- È una cattiva idea usare linux/*.h include nel codice dello spazio utente?
Sì, di solito. La situazione tipica è che dovresti usare le intestazioni della libreria C (in questo caso, stdint.h
e amici), e si interfaccia con la libreria C attraverso quei tipi di spazio utente, e lascia che la libreria gestisca la conversazione con il kernel attraverso i tipi di kernel.
Non sei in una situazione tipica però. Nel tuo caso, stai scrivendo la libreria dei driver . Quindi dovresti presentare un'interfaccia allo spazio utente usando stdint.h
, ma utilizzando linux/*.h
headers quando ti interfaccia al tuo driver del kernel.
Quindi la risposta è no, nel tuo caso.
- È una cattiva idea usare stdint.h nel codice kernel-space?
Assolutamente sì.
Vedi anche:http://lwn.net/Articles/113349/