[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