2013-04-02 6 views
5

In der Quellcode-Implementierung heißt es idr_alloc() wird verwendet, um neue idr Eintrag zuzuweisen. Ich konnte die man page nicht finden und möchte wissen, warum es besonders beim Schreiben von Treibern für MTD Geräte verwendet wird.Was ist idr_alloc()

Antwort

6

Die Bibliothek idr wird im Kernel verwendet, um die Zuordnung von Ganzzahl-IDs zu Objekten und das Nachschlagen von Objekten nach ID zu verwalten. Eine vollständige Einführung finden Sie unter LWN net article. Die Grundidee ist, dass Sie die folgenden Operationen haben:

  • idr_get_new(struct idr *idp, void *ptr, int *id) - eine neue ID für die ptr Zeiger zuweisen und per id

  • void *idr_find(struct idr *idp, int id) - Rück den Zeiger auf id entsprechenden

  • void idr_remove(struct idr *idp, int id) - löschen Sie den Eintrag für id

Dies ist überall dort nützlich, wo eine kleine Ganzzahl-ID nützlich ist, die einem Kernel-Objekt zugeordnet ist - z. B. Minor-Zahlen oder andere Indizes, die an den Benutzerbereich zurückgegeben werden.