problem with saving process descriptor info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,
i've some problem to understand what some field of
process' descriptor do.
I need to save some process' information to checkpoint
it.

I get process registers by doing:

struct pt_regs *regs_pointer = ((struct pt_regs *)
(2*PAGE_SIZE + (unsigned long) p)) - 1;   

I then print the regs_pointer values (by means of a
function like the show_regs function in
arch/i386/kernel/process.c) end the result is:

EIP: 0023:[<080485b9>] 
ESP: 002b:bf5ffad0 EFLAGS: 00200297
EAX: 00000001 EBX: 4003abc0 ECX: 00000001 EDX:
00000010
ESI: bf5ffbe0 EDI: 00000000 EBP: bf5ffadc DS: 002b ES:
002b
ESP: bf5ffad0 

Then I print the mm_struct's fields:

start_code = 08048000
end_code = 08048721
start_data = 08049724
end_data = 0804983c
start_brk = 08049840
brk = 0804c000
start_stack = bffff5a0 
arg_start = bffff6f1
arg_end = bffff6fa
env_start = bffff6fa
env_end = bffffff3

Finally, I print the thread_struct's fields:

esp0 = cc932000
eip = c011627f
esp = cc931f88

By comparing the results, I note that the regs.esp,
the mm->start_stack, the p->thread->esp and the
p->thread->esp0 differ each other. What's the meaning
of each field? What these fields differ in?
The same question is for regs.eip and p->thread->eip.

Thanks.
Vincenzo Mallozzi.


		
___________________________________ 
Nuovo Yahoo! Messenger: E' molto più divertente: Audibles, Avatar, Webcam, Giochi, Rubrica? Scaricalo ora! 
http://it.messenger.yahoo.it

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux