Małe zadanie #4¶
Przykładowy sterownik załączony do materiałów ma kilka wad. Zadanie polega na poprawieniu ich:
ioctljest niezbyt wygodnym dla użytkownika interfejsem. Należy dodać operacjęwritetak, 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
writepo 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.