Małe zadanie #3

Zaimplementować obsługę “zakładek” do syscalla lseek (i pokrewnych):

  • do struktury file dodać nowe pole — stos “zakładek” (czyli zapisanych pozycji w pliku)

  • dodać nowy punkt odniesienia do syscalla lseek: SEEK_BOOKMARK, używający jako punktu odniesienia zakładki będącej na szczycie zakładek

  • dodać dwie nowe flagę do lseek: SEEK_PUSH i SEEK_POP (które mogą być zORowane z pozostałymi flagami):

    • SEEK_PUSH wrzuca obecną (sprzed wywołania syscalla) pozycję w pliku na stos zakładek

    • SEEK_POP zdejmuje zakładkę ze stosu

W przypadku błędu (użycie SEEK_BOOKMARK bądź SEEK_POP bez zakładek) należy zwrócić błąd EINVAL i nie robić nic.

Odpowiednim miejscem do dokonania zmian będzie funkcja vfs_llseek.