Małe zadanie #4

Przykładowy sterownik załączony do materiałów ma kilka wad. Zadanie polega na poprawieniu ich:

  • ioctl jest niezbyt wygodnym dla użytkownika interfejsem. Należy dodać operację write tak, aby czytała ona przekazane przez użytkownika dane jako liczbę w formacie dziesiętnym, i ustawiała na nią liczbę powtórzeń.

    Założenia:

    • cała liczba jest zapisana jednym wywołaniem write
    • po liczbie może wystąpić (lub nie) znak nowej linii
    • liczba ma co najwyżej 32 znaki (należy zwrócić błąd jeśli użytkownik spróbuje wpisać zbyt długą liczbę) i jest bez znaku
    • wpisany ciąg znaków jest poprawną liczbą (tzn. pasuje do regexa [0-9]+\n?) - to też trzeba sprawdzić
  • liczba powtórzeń jest globalna dla wszystkich użytkowników, przez co urządzenie nie może być użyte w bezpieczny sposób na systemie z wieloma użytkownikami. Należy zmodyfikować sterownik tak, aby każdy użytkownik miał niezależnie ustawianą liczbę powtórzeń. Do przechowywania danych można użyć standardowej implementacji list z jądra oraz dynamicznej alokacji pamięci przez kmalloc.