.. _04-zadanie: =============== 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``.