Implement getrusage
Implement getrusage. These fields of struct rusage are not supported and always set to zero at this time long ru_nswap; /* swaps */ long ru_inblock; /* block input operations */ long ru_oublock; /* block output operations */ long ru_msgsnd; /* messages sent */ long ru_msgrcv; /* messages received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary context switches */ test75.c is the unit test for this new function Change-Id: I3f1eb69de1fce90d087d76773b09021fc6106539
This commit is contained in:
committed by
Gerrit Code Review
parent
4241cc5d98
commit
64f10ee644
@@ -228,6 +228,11 @@ int libexec_load_elf(struct exec_info *execi)
|
||||
if(first || startv > vaddr) startv = vaddr;
|
||||
first = 0;
|
||||
|
||||
if ((ph->p_flags & PF_X) != 0 && execi->text_size < seg_membytes)
|
||||
execi->text_size = seg_membytes;
|
||||
else
|
||||
execi->data_size = seg_membytes;
|
||||
|
||||
if(try_mmap && execi->memmap(execi, vaddr, fbytes, foffset, clearend, mmap_prot) == OK) {
|
||||
#if ELF_DEBUG
|
||||
printf("libexec: mmap 0x%lx-0x%lx done, clearend 0x%x\n",
|
||||
|
||||
@@ -32,6 +32,8 @@ struct exec_info {
|
||||
int allow_setuid; /* Allow set{u,g}id execution? */
|
||||
vir_bytes stack_size; /* Desired stack size */
|
||||
vir_bytes load_offset; /* Desired load offset */
|
||||
vir_bytes text_size; /* Text segment size */
|
||||
vir_bytes data_size; /* Data segment size */
|
||||
off_t filesize; /* How big is the file */
|
||||
|
||||
/* Callback pointers for use by libexec */
|
||||
|
||||
Reference in New Issue
Block a user