Skip to content

Add text file with explanation for each solved exercise#2

Open
maranicolae wants to merge 1 commit intomasterfrom
lab02_kernel_api
Open

Add text file with explanation for each solved exercise#2
maranicolae wants to merge 1 commit intomasterfrom
lab02_kernel_api

Conversation

@maranicolae
Copy link
Owner

@maranicolae maranicolae commented Mar 14, 2022

Laboratorul 2

Exercițiul 0

Exercițiul 1

make build
make copy
make boot

Mesajele de la început se suprascriu, bufferul este limitat. De aia nu se mai vede cu dmesg mesajul "chars".

Exercițiul 2
Nu am voie să fac sleep între operațiile de spinlock lock și unlock.

Exercițiul 3
Am alocat memorie pentru ti folosind kmalloc și am inițializat câmpurile de PID și timestamp.
Am adăugat un nou header (#include <linux/jiffies.h>) și am declarat jiffiles (extern unsigned long volatile jiffies) pentru a inițializa timestamp.

Exercițiul 4
După ce am inițializat structura ti, a fost adăugată la listă folosind membrul list din interiorul structurii. Am iterat prin elementele listei și am eliberat memoria pentru fiecare membru întâlnit pentru a-l șterge.

Exercițiul 5
Asemenator cu exercițiul anterior, am iterat prin elementele listei verificând membrul pid al elementului curent cu parametrul formal. În caz de egalitate se va întoarce obiectul corespunzător.

Exercițiul 6
Am uitilizat spinlock folosind funcțiile lock și unlock. Variabila globală de spinlock este inițializată în funcția init înainte de orice altă operație cu liste. Am marcat funcțiile ce vor fi utilizate la exercițiul următor cu EXPORT_SYMBOL_GPL.

Exercițiul 7
După ce am dat load modulului din exercițiul 6, am încercat să fac același lucru pentru modulul exercițiului curent însă am întâmpinat eroarea Unknown symbol in module pentru funcțiile ce au fost exportate la exercițiul 6. Am rezolvat problema înlocuind EXPORT_SYMBOL cu EXPORT_SYMBOL_GPL. (https://lynxbee.com/insmod-error-could-not-insert-module-hello-ko/#.Yi_FGnVBxH5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant