Do tematu: Podsystem wejścia-wyjścia
Do tematu: Struktury danych
Struktura tq_struct
Struktura tq_struct reprezentuje funkcję "bottom half" oraz jej argument. Struktury tq_struct umieszczane są w kolejkach zadań. Definicja kolejki zadań jest następująca:
typedef struct tq_struct* task_queue
Przykładowe kolejki to tq_timer, dla funkcji obsługujących przerwania od zegara oraz tq_disk dla funkcji obsługujących przerwania od dysku. Definicja struktury tq_struct oraz kolejki zadań znajduje się w pliku /include/linux/tqueue.h
typ | nazwa pola | opis |
struct tq_struct * | next | Wskaźnik do następnej struktury tq_struct w kolejce zadań. |
int | sync | Pole sync przyjmuje wartość 0 lub 1. Funkcje, wstawiające strukturę tq_struct do kolejki zadań, sprawdzają czy wartość pola sync jest równa 0. Jeśli tak, to przypisują polu temu wartość 1 i wstawiają strukturę na początek kolejki zadań. Jeśli nie, to struktura nie zostanie wstawiona. Po zdjęciu struktury z kolejki, polu sync nadawana jest wartość 0. Początkową wartością tego pola jest również 0. W ten sposób żadna struktura tq_struct nie zostanie umieszczona w kolejkach zadań więcej niż jeden raz. |
void | (*routine)(void *) | Wskaźnik do funkcji "bottom half" |
void * | data | Argument funkcji *routine |