[pso] [Tema1] Structura std
Bogdan Cap-Bun
capbunbogdan at yahoo.com
Fri Mar 19 19:06:17 EET 2010
Si mie imi e la fel de neclar, dat fiind faptul ca:
>Daniel Baluta wrote:
>> Salutare,
>> Am citit listele din anii precedenti insa nu m-am lamurit in totalitate
>> asupra functiei
>>
>> BOOLEAN KeAddSystemServiceTable(void *base, int *ct, int ls, unsigned
>> char *spt, int index);
> pe versiunea veche, daca era sa folosesti KeAddSystemServiceTable,
> trebuia sa creezi un vector ct cu dimensiunea data de numarul de apeluri
> de sistem si sa initializezi elementele vectorului la 0; de asemenea
> index ar fi trebuit sa insemne indexul noii tabele (pe versiunea veche a
> temei, valoarea ar fi fost 0)
>> nu prea imi dau seama ce reprezinta ultimul parametru index si daca
>> parametru 2 ct pot sa il pun pe NULL.
>>
> la tema de Windows nu trebuie sa folositi KeAddSystemServiceTable; ne
> cerem scuze pentru faptul ca am lasat-o in sci_win.h - e reminiscenta de
> anii trecuti
> in prezent exista doar doua tabele de servicii; pana la winxp erau 4 si
> putea fi folosita ultima (cea cu indexul 3) pentru noi apeluri; din
> aceasta cauza va trebui sa lucrati cu tabela 0 si sa inlocuiti intrarile
> serviciilor de sistem cu altele noi (atat in aceasta tabela cat si in
> tabela shadow - practic in KeServiceDescriptorTable[0] si
> KeServiceDescriptorTableShadow[0]
> citat din enuntul temei:
> "pentru ca nu exista apeluri de sistem nefolosite in Windows, va trebui
> sa inlocuiti tabela de apeluri de sistem cu una noua, in care sa
> adaugati apelul de sistem propriu; atentie, trebuie sa inlocuiti
> tabelele de apeluri de sistem atat in descriptorul principal cat si
> in shadow"
> o sa modificam header-ul ca sa dispara KeAddSystemServiceTable de acolo
> sa nu mai produca nici un fel de confuzie
> Razvan
Multumesc,
Bogdan
________________________________
From: Eugen <pupicutz2000 at gmail.com>
To: Proiectarea Sistemelor de Operare <pso at cursuri.cs.pub.ro>
Sent: Fri, March 19, 2010 6:44:26 PM
Subject: Re: [pso] [Tema1] Structura std
Octavian Voicu wrote:
> Fri, Mar 19, 2010 at 10:57 AM, Eugen <pupicutz2000 at gmail.com> wrote:
>
>> La tema 1 pe windows, structura std este un pic ambigua.
>> Ce inseamna fiecare camp ?
>>
>
>
>> void **st; /* service table */
>>
> Un pointer la service call table [un vector de adrese ale handlerelor
> pentru fiecare system call, indexat dupa id-ul system call-ului]
>
>
>> int *ct; /* counter table */
>>
> Pentru profiling, folosit doar in debug builds. Un pointer la un
> vector de countere, indexat tot dupa id-ul system call-ului, care
> numara de cate ori a fost apelat fiecare system call.
>
>
>> int ls; /* last service no */
>>
> Numarul de intrari din service table / counter table / service parameter table.
>
>
>> unsigned char *spt; /* service parameter table */
>>
> Numarul de bytes ocupati de argumentele fiecarui system call.
>
> Pentru dispatcherul vostru nu veti folosi decat service table si last
> service no, dar cand creati noua tabela este nevoie sa duplicati si
> service parameter table.
>
> Pentru mai multe informatii vezi [1], descrierea
> KeAddSystemServiceTable [2] si trap.asm, sursa dispatcherului de
> system calls pentru windows [3].
>
Vroiai sa adaugi niste linkuri aici ?
Ce inseamna id-ul system call-ului ? Numarul apelului de sistem ?
ls e atunci dimensiunea vectorului de handlere ?
Trebuie sa adaugam o noua tabela in vectorul de tabele continand o
singura noua intrare?
sau sa modificam tabela curenta deja existenta,
sau sa o copiem undeva adaugam intrarea si apoi sa o readaugam folosind
KeAddSystemServiceTable ?
Si cu shadow ce facem ?
E destul de neclar ce trebuie sa facem aici, cel putin pentru mine.
Multumesc
> Octavian
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>
>
_______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20100319/95f5a070/attachment-0001.htm>
More information about the pso
mailing list