Per un dispositivo specifico esiste un modulo del kernel di Linux. Questo modulo ha solo inizializzato il dispositivo e fornisce meccanismi di controllo a terra dell'utente tramite ioctls e mmap. Per utilizzare correttamente questo dispositivo, è necessario utilizzare la libreria proprietaria del fornitore dell'hardware.
Quindi il codice sorgente del modulo del kernel è disponibile e concesso in licenza secondo i termini di GPL ma con il copyright del fornitore di hardware. Con un rapido reverse engineering via LD_PRELOAD ho capito che la comunicazione tra il modulo del kernel e la libreria proprietaria non è molto complicata.
Ora vorrei creare una libreria open source di base per sostituire quella proprietaria. Il problema è che le definizioni e le strutture di ioctl provengono dal file di intestazione dal modulo del kernel che è concesso in licenza GPL. Vorrei rilasciare la mia libreria sotto licenza LGPL o anche BSD / MIT.
Poiché il file di intestazione necessario contiene solo definizioni e struttura ioctl, non sono sicuro se violerei la GPL se la includessi in una libreria LGPLed. O c'è un altro modo per includere le informazioni dall'intestazione e utilizzarle in una libreria LGPLed?