goto err;
clear_pageframe(pageframe);
+ INIT_LIST_HEAD(&pageframe->ml.list);
err:
return pageframe;
}
* Add a link from the physical page to this
* process's page map
*/
- if (!match->ml) {
- match->ml = alloc_maplist();
- match->ml->map = map;
- } else {
- tmp = alloc_maplist();
- tmp->map = map;
- list_add(&tmp->list, &match->ml->list);
- }
+ tmp = alloc_maplist();
+ tmp->map = map;
+ list_add(&tmp->list, &match->ml.list);
if (match->page_present)
map->pages_present++;
}
static int read_pageframe(int pid, int tid, struct pageframe *pageframe,
- struct process **process_list, struct parse_opts *opts)
+ struct process *process_list, struct parse_opts *opts)
{
struct maps *maps;
struct process *process;
memset(process, 0, sizeof(*process));
INIT_LIST_HEAD(&process->list);
- if (*process_list == NULL)
- *process_list = process;
-
process->pid = pid;
process->tid = tid;
}
}
- list_add_tail(&process->list, &(*process_list)->list);
+ list_add_tail(&process->list, &process_list->list);
return 1;
free:
static int read_pageframe_with_threads(int pid,
struct pageframe *pageframe,
- struct process **process_list,
+ struct process *process_list,
struct parse_opts *opts)
{
DIR *dir = NULL;
return count;
}
-int scan_all_pids(struct pageframe *pf, struct process **process_list,
+int scan_all_pids(struct pageframe *pf, struct process *process_list,
struct parse_opts *opts)
{
DIR *dir = NULL;