2013-04-02 9 views
5

Nell'implementazione del codice sorgente viene indicato che idr_alloc() viene utilizzato per allocare la nuova voce idr. Non sono riuscito a trovare lo man page e voglio sapere perché viene utilizzato soprattutto quando si scrivono i driver per i dispositivi MTD.Che cos'è idr_alloc()

risposta

6

La libreria idr viene utilizzata nel kernel per gestire l'assegnazione di ID interi a oggetti e la ricerca di oggetti per ID. Vedi questo LWN net article per un'introduzione completa; l'idea di base è che si hanno le seguenti operazioni:

  • idr_get_new(struct idr *idp, void *ptr, int *id) - assegnare un nuovo ID per il puntatore ptr e restituirlo via id

  • void *idr_find(struct idr *idp, int id) - riportare il puntatore corrispondente al id

  • void idr_remove(struct idr *idp, int id) - cancellare la voce per id

Ciò è utile ovunque sia utile un ID intero piccolo che si associa a un oggetto kernel, ad esempio numeri secondari o altri indici restituiti nello spazio utente.

Problemi correlati