2013-04-02 9 views
5

W implementacji kodu źródłowego jest napisane, że idr_alloc() służy do przydzielania nowego wpisu idr. Nie mogłem znaleźć man page i chcę wiedzieć, dlaczego jest on używany, szczególnie podczas pisania sterowników dla urządzeń MTD.Co to jest idr_alloc()

Odpowiedz

6

Biblioteka jest używana w jądrze do zarządzania przypisywaniem identyfikatorów całkowitych do obiektów i wyszukiwania obiektów według identyfikatora. Zobacz to LWN net article, aby uzyskać pełne wprowadzenie; Podstawowym założeniem jest to, że dostępne są następujące operacje:

  • idr_get_new(struct idr *idp, void *ptr, int *id) - przypisać nowy identyfikator dla wskaźnika ptr i odesłać go poprzez id

  • void *idr_find(struct idr *idp, int id) - zwraca wskaźnik odpowiadający id

  • void idr_remove(struct idr *idp, int id) - wyczyścić wpis id

Jest to przydatne wszędzie tam, gdzie przydatna jest mała liczba całkowita, która odwzorowuje obiekt jądra - np. Mniejsze liczby lub inne indeksy zwracane do przestrzeni użytkownika.