rem: queue = (struct page_queue *)(atoul(argv[1]));
add: if (strlen(argv[1]) >= 2 && argv[1][0] == '0' && argv[1][1] == 'x') queue = (struct page_queue *)strtoul(argv[1], NULL, 16); if (!strcmp(argv[1], "free")) queue = &page_free_queue; else if (!strcmp(argv[1], "clear")) queue = &page_clear_queue; else if (!strcmp(argv[1], "modified")) queue = &page_modified_queue; else if (!strcmp(argv[1], "active")) queue = &page_active_queue; else { dprintf("page_queue: unknown queue \"%s\".\n", argv[1]); return 0; }
context: dump_page_queue(int argc, char **argv){	struct page_queue *queue;	if (argc < 2		|| strlen(argv[1]) <= 2		|| argv[1][0] != '0'		|| argv[1][1] != 'x') {		dprintf("usage: page_queue <address> [list]\n");		return 0;	}	queue = (struct page_queue *)(atoul(argv[1]));	dprintf("queue->head = %p, queue->tail = %p, queue->count = %d\n", queue->head, queue->tail, queue->count);	if (argc == 3) {		struct vm_page *page = queue->head;		int i;				for (i = 0; page; i++, page = page->queue_next) {			dprintf("%5d. queue_next = %p, queue_prev = %p, type = %d, state = %d\n", i, page->queue_next, page->queue_prev, page->type, page->state);		}	}	return 0;}