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()
5
A
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źnikaptr
i odesłać go poprzezid
void *idr_find(struct idr *idp, int id)
- zwraca wskaźnik odpowiadającyid
void idr_remove(struct idr *idp, int id)
- wyczyścić wpisid
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.