Do umieszczania struktur w tablicy blkdevs służy funkcja register_blkdev():
int register_blkdev(unsigned int major, const char * name, struct block_device_operations *bdops);Funkcja ta rejestruje klasę urządzeń blokowych o danym numerze głównym urządzenia (parametr: major), lub jeżeli major=0 to funkcja sama stara się przydzielić numer główny (najwyższa wolna pozycja z tablicy rozdzielczej blkdevs).
ALGORYTM: 1. jeśli major==0 to przeszukujemy tablicę rozdzielczą od góry i zatrzymujemy się jeśli pole bdops wskazuje na NULL - - wtedy podstawiamy do struktury z tej pozycji przekazane parametry funkcji (name, bdops) oraz zwracamy numer znalezionej pozycji (czyli nowy numer główny) jeśli nie znaleźliśmy wolnej pozycji to zwracamy błąd 2. jeśli parametr major był różny od zera to sprawdzamy czy nie jest czasem zbyt duży (jeśli jest >= MAX_BLKDEV to błąd) 3. jeśli pozycja blkdevs[major] jest zajęta (bdops<>NULL) to zwracamy błąd 4. jeśli wszystko w porządku, to wypełniamy strukturę z pozycji blkdevs[major] parametrami name i bdops oraz zwracamy zero;