Example #1
0
int
sys_migrate_pages(struct tcb *tcp)
{
	if (entering(tcp)) {
		tprintf("%ld, ", (long) (pid_t) tcp->u_arg[0]);
		get_nodes(tcp, tcp->u_arg[2], tcp->u_arg[1], 0);
		tprints(", ");
		get_nodes(tcp, tcp->u_arg[3], tcp->u_arg[1], 0);
	}
	return 0;
}
Example #2
0
void BinTree::get_nodes(tree_node *ptr, std::vector<int> & nodes) {
	std::cout<<"get_nodes"<<std::endl;
	if (root == NULL) {
		std::cout << "Tree is empty" << std::endl;
		return;
	}
	if (ptr != NULL) {
		nodes.push_back(ptr->key);
		get_nodes(ptr->left,nodes);
		get_nodes(ptr->right,nodes);
	}
}
// ---------------------------------------------------------------------------
//
// ------------
int bXMapNetClean::join_on_nodes(bArray& loop, int* fields, bool report){
_bTrace_("bXMapNetClean::join_on_nodes",true);
bGenericGeoElement	*oa,*op;
ivertices			*vsa,*vsp;
bArray				bdg(sizeof(bGenericGeoElement*));
bArray				nod(sizeof(bGenericGeoElement*));
bool				mod;
char				msg[__MESSAGE_STRING_LENGTH_MAX__];
char				ttl[__MESSAGE_STRING_LENGTH_MAX__];
    
    get_localized_name(ttl,getbundle());

    b_message_string(kXMapNetCleanJoinOnNodesMessage,msg,getbundle(),0);
bProgressWait	wt(ttl,msg,true,true,loop.count());
    for(long i=1;i<=loop.count();i++){
        if(!wt.set_progress(i)){
            break;
        }
        loop.get(i,&oa);
        oa->getVertices(&vsa);
        mod=false;
        get_bridges(&vsa->vx.vx2[0],bdg);
        if(bdg.count()==0){
            get_nodes(&vsa->vx.vx2[0],nod);
            if(nod.count()==1){
                nod.get(1,&op);
                op->getVertices(&vsp);
                vsa->vx.vx2[0]=vsp->vx.vx2[0];
                mod=true;
            }
        }
        get_bridges(&vsa->vx.vx2[vsa->nv-1],bdg);
        if(bdg.count()==0){
            get_nodes(&vsa->vx.vx2[vsa->nv-1],nod);
            if(nod.count()==1){
                nod.get(1,&op);
                op->getVertices(&vsp);
                vsa->vx.vx2[vsa->nv-1]=vsp->vx.vx2[0];
                mod=true;
            }
        }
        
        if(mod){
            oa->setVertices(vsa);
            if(report){
                set_net_flag(oa,fields[oa->getType()-1],_kEdgeJoined);
            }
        }
    }
    
    return(0);
}
Example #4
0
static void check_pids(void *arg)
{
	int i;
	size_t nr;
	struct local_node lnodes[SD_MAX_NODES];
	struct local_event *ev;

	shm_queue_lock();

	nr = get_nodes(lnodes);

	for (i = 0; i < nr; i++)
		if (!process_exists(lnodes[i].pid)) {
			add_event(EVENT_LEAVE, lnodes + i, NULL, 0);

			/* unblock blocking event if sender has gone */
			ev = shm_queue_peek_block_event();
			if (lnode_eq(lnodes + i, &ev->sender)) {
				ev->removed = true;
				msync(ev, sizeof(*ev), MS_SYNC);
			}
		}

	shm_queue_unlock();

	add_timer(arg, PROCESS_CHECK_INTERVAL);
}
void qsearch_fulltree_to_searchtree(FullTree *src, QSearchTree *clt) {
    
    FullNode *map = get_nodes(src);
    int node_count = src->node_count;
    int leaf_count = (node_count + 2)/2;
    int i,j;
    
    // write out resulting tree in clt
    for (i = 0; i < leaf_count; ++i) {
        g_array_index(clt->leaf_placement, guint32, i) = i;
    }
    
    for (i = 0; i < node_count; ++i) {
        
       QSearchNeighborList *lst = g_ptr_array_index(clt->n, i);
       GArray *n = lst->n;
       // lst->n is GArray  
        g_array_set_size(n, 0);
           
        for (j = 0; j < 3; ++j) {
            int con = map[i].connections[j];
            if (con <= i) continue; // no need to write
            g_array_append_val(n, con);
        }
    }
    
    clt->score = (clt->dist_max - src->raw_score) / (clt->dist_max - clt->dist_min); 

    clt->must_recalculate_paths = TRUE;
    clt->f_score_good = TRUE;
}
Example #6
0
static void __acrd_leave(struct work *work)
{
	struct acrd_leave_info *info = container_of(work, typeof(*info), work);
	struct acrd_handle *ah = info->ah;
	int i;
	size_t nr_nodes;
	uint64_t ids[SD_MAX_NODES];
	struct sd_node nodes[SD_MAX_NODES];
	struct acrd_tx *atx;

	pthread_mutex_lock(&queue_lock);

	/* unlock if left node is locking one */
	atx = acrd_tx_init(ah);
	acrd_tx_cmp(atx, LOCK_FILE, &info->left_nodeid,
		    sizeof(info->left_nodeid), 0);
	acrd_tx_del(atx, LOCK_FILE, 0);
	acrd_tx_commit(atx, 0);
	acrd_tx_close(atx);

	/* check the failed node */
	nr_nodes = get_nodes(ah, nodes, ids);

	for (i = 0; i < nr_nodes; i++) {
		if (ids[i] == info->left_nodeid) {
			add_event(ah, EVENT_LEAVE, nodes + i, NULL, 0,
				  NULL);
			break;
		}
	}

	pthread_mutex_unlock(&queue_lock);
}
Example #7
0
void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
{
	static const uint16_t spd_addr [] = {
		DIMM0, DIMM2, 0, 0,
		DIMM1, DIMM3, 0, 0,
#if CONFIG_MAX_PHYSICAL_CPUS > 1
		DIMM4, DIMM6, 0, 0,
		DIMM5, DIMM7, 0, 0,
#endif
	};

	int needs_reset;
	unsigned bsp_apicid = 0, nodes;
	struct mem_controller ctrl[8];

	if (bist == 0)
		bsp_apicid = init_cpus(cpu_init_detectedx);

	pc87360_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE);
	console_init();

	/* Halt if there was a built in self test failure */
	report_bist_failure(bist);

	setup_default_resource_map();

	needs_reset = setup_coherent_ht_domain();

#if CONFIG_LOGICAL_CPUS
	// It is said that we should start core1 after all core0 launched
	start_other_cores();
	wait_all_other_cores_started(bsp_apicid);
#endif
	/* This is needed to be able to call udelay().  It could be moved to
	 * memreset_setup, since udelay is called in memreset. */
	init_timer();

	// automatically set that for you, but you might meet tight space
	needs_reset |= ht_setup_chains_x();

       	if (needs_reset) {
	       	print_info("ht reset -\n");
	       	soft_reset();
       	}

	allow_all_aps_stop(bsp_apicid);

	nodes = get_nodes();

	fill_mem_ctrl(nodes, ctrl, spd_addr);

	enable_smbus();

	memreset_setup();

	sdram_initialize(nodes, ctrl);

	post_cache_as_ram();
}
	void CServer::dump_libintegra_state()
	{
		std::cout << std::endl;
		std::cout << "Print State:" << std::endl;
		std::cout << "************" << std::endl;
		std::cout << std::endl;
		dump_state( get_nodes(), 0 );
	}
Example #9
0
int
sys_set_mempolicy(struct tcb *tcp)
{
	if (entering(tcp)) {
		printxval(policies, tcp->u_arg[0], "MPOL_???");
		get_nodes(tcp, tcp->u_arg[1], tcp->u_arg[2], 0);
	}
	return 0;
}
void qsearch_fulltree_get_children(FullTree *tree, int node, int ancestor, int *child1, int *child2) {
    
    FullNode *map = get_nodes(tree);
    int branch = map[node].node_branch[ancestor];
    
    *child1 = map[node].connections[ (3 + branch-1) % 3];
    *child2 = map[node].connections[ (branch + 1) % 3];

}
double  qsearch_fulltree_sum_distance_org(FullTree *tree, int a, int b) {
    
    FullNode *map = get_nodes(tree);
    int branch2b = map[a].node_branch[b];
    int branch2a = map[b].node_branch[a];
     
    return npairs( map[a].leaf_count[branch2b] ) * map[a].dist[branch2b] + npairs( map[b].leaf_count[branch2a] ) * map[b].dist[branch2a];

}
// ---------------------------------------------------------------------------
//
// ------------
int bXMapNetClean::check_edges(bArray& loop, int* fields){
_bTrace_("bXMapNetClean::check_edges",true);
bGenericGeoElement	*oa;
ivertices			*vsa;
bArray				arra(sizeof(bGenericGeoElement*));
bArray				arrb(sizeof(bGenericGeoElement*));
double				dbk=_cfg_prm.dnod;
char				msg[__MESSAGE_STRING_LENGTH_MAX__];
char				ttl[__MESSAGE_STRING_LENGTH_MAX__];
    
    _cfg_prm.dnod=0;
    
    get_localized_name(ttl,getbundle());

    b_message_string(kXMapNetCleanCheckEdgesMessage,msg,getbundle(),0);
bProgressWait	wt(ttl,msg,true,true,loop.count());
    for(long i=1;i<=loop.count();i++){
        if(!wt.set_progress(i)){
            break;
        }
        loop.get(i,&oa);
        oa->getVertices(&vsa);
        
        get_edges(&vsa->vx.vx2[0],arra,true);
        get_edges(&vsa->vx.vx2[vsa->nv-1],arrb,true);
        if((arra.count()==1)&&(arrb.count()==1)){
            set_net_flag(oa,fields[oa->getType()-1],_kEdgeAlone);
        }
        else if((arra.count()==1)||(arrb.count()==1)){
            set_net_flag(oa,fields[oa->getType()-1],_kEdgeDeadEnd);
        }
        
        get_nodes(&vsa->vx.vx2[0],arra);
        get_nodes(&vsa->vx.vx2[vsa->nv-1],arrb);
        if((arra.count()==0)||(arrb.count()==0)){
            set_net_flag(oa,fields[oa->getType()-1],_kEdgeNotJoined);
        }
    }
    
    _cfg_prm.dnod=dbk;
    
    return(0);
}
static void set_score(FullTree *tree) {
    // calculate the score
    tree->raw_score = 0;
    FullNode *map = get_nodes(tree);
    int i;
    for (i = (tree->node_count + 2)/2; i < tree->node_count; ++i) {
        tree->raw_score += npairs(map[i].leaf_count[0]) * map[i].dist[0];
        tree->raw_score += npairs(map[i].leaf_count[1]) * map[i].dist[1];
        tree->raw_score += npairs(map[i].leaf_count[2]) * map[i].dist[2];
    }
}
gboolean qsearch_fulltree_can_swap(FullTree *tree, int A, int B) {
   FullNode *ctm = get_nodes(tree);

   if (A == B) return FALSE; // no point in doing anything
    
   int interiorA = ctm[A].connections[ ctm[A].node_branch[B] ];
   int interiorB = ctm[B].connections[ (int) ctm[B].node_branch[A] ];
   
   if (interiorA == interiorB || interiorA == B) return FALSE; // swap does not change score
    
   return TRUE;
}
Example #15
0
int
sys_mbind(struct tcb *tcp)
{
	if (entering(tcp)) {
		tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
		printxval(policies, tcp->u_arg[2], "MPOL_???");
		get_nodes(tcp, tcp->u_arg[3], tcp->u_arg[4], 0);
		tprints(", ");
		printflags(mbindflags, tcp->u_arg[5], "MPOL_???");
	}
	return 0;
}
Example #16
0
vector<int> get_nodes_random(const TreeInterface& t,int n0) {
    vector<int> nodes = get_nodes(t,n0);

    vector<int> nodes2;
    nodes2.insert(nodes2.end(),nodes.begin()+1,nodes.end());
    random_shuffle(nodes2);
    nodes[1] = nodes2[0];
    nodes[2] = nodes2[1];
    nodes[3] = nodes2[2];

    return nodes;
}
void qsearch_free_fulltree(FullTree *tree) {
    
    g_array_free(get_tmpA(tree), TRUE);
    g_array_free(get_tmpB(tree), TRUE);

    FullNode *map = get_nodes(tree);
     
    int i;
    for (i = 0; i < tree->node_count; ++i) free(map[i].node_branch);
    free(map);
    free(tree->data);
    free(tree);
}
Example #18
0
static void shm_queue_notify(void)
{
	int i;
	size_t nr;
	pid_t pids[SD_MAX_NODES];

	shm_queue_set_chksum();

	nr = get_nodes(NULL, pids);

	for (i = 0; i < nr; i++)
		kill(pids[i], SIGUSR1);
}
Example #19
0
static void shm_queue_notify(void)
{
	int i;
	size_t nr;
	struct local_node lnodes[SD_MAX_NODES];

	nr = get_nodes(lnodes);

	for (i = 0; i < nr; i++) {
		sd_dprintf("send signal to %s", lnode_to_str(lnodes + i));
		kill(lnodes[i].pid, SIGUSR1);
	}
}
Example #20
0
static void add_event(enum local_event_type type, struct local_node *lnode,
		void *buf, size_t buf_len)
{
	int idx, i;
	struct local_node *n;
	struct local_event ev = {
		.type = type,
		.sender = *lnode,
	};

	ev.buf_len = buf_len;
	if (buf)
		memcpy(ev.buf, buf, buf_len);

	ev.nr_lnodes = get_nodes(ev.lnodes);

	switch (type) {
	case EVENT_JOIN_REQUEST:
		ev.lnodes[ev.nr_lnodes] = *lnode;
		ev.nr_lnodes++;
		break;
	case EVENT_LEAVE:
		n = find_lnode(lnode, ev.nr_lnodes, ev.lnodes);
		idx = n - ev.lnodes;

		ev.nr_lnodes--;
		memmove(n, n + 1, sizeof(*n) * (ev.nr_lnodes - idx));
		break;
	case EVENT_GATEWAY:
		n = find_lnode(lnode, ev.nr_lnodes, ev.lnodes);
		n->gateway = true;
		break;
	case EVENT_NOTIFY:
	case EVENT_BLOCK:
		break;
	case EVENT_UPDATE_NODE:
		n = find_lnode(lnode, ev.nr_lnodes, ev.lnodes);
		n->node = lnode->node;
		break;
	case EVENT_JOIN_RESPONSE:
		abort();
	}

	sd_dprintf("type = %d, sender = %s", ev.type, lnode_to_str(&ev.sender));
	for (i = 0; i < ev.nr_lnodes; i++)
		sd_dprintf("%d: %s", i, lnode_to_str(ev.lnodes + i));

	shm_queue_push(&ev);

	shm_queue_notify();
}
Example #21
0
static int add_event(struct acrd_handle *ah, enum acrd_event_type type,
		     struct sd_node *node, void *buf,
		     size_t buf_len)
{
	int idx;
	struct sd_node *n;
	uint64_t *i;
	struct acrd_event ev;

	acrd_lock(ah);

	ev.type = type;
	ev.sender = *node;
	ev.buf_len = buf_len;
	if (buf)
		memcpy(ev.buf, buf, buf_len);

	ev.nr_nodes = get_nodes(ah, ev.nodes, ev.ids);

	switch (type) {
	case EVENT_JOIN_REQUEST:
		ev.nodes[ev.nr_nodes] = *node;
		ev.ids[ev.nr_nodes] = this_id; /* must be local node */
		ev.nr_nodes++;
		break;
	case EVENT_LEAVE:
		n = lfind(node, ev.nodes, &ev.nr_nodes, sizeof(*n),
			  node_id_cmp);
		if (!n)
			goto out;
		idx = n - ev.nodes;
		i = ev.ids + idx;

		ev.nr_nodes--;
		memmove(n, n + 1, sizeof(*n) * (ev.nr_nodes - idx));
		memmove(i, i + 1, sizeof(*i) * (ev.nr_nodes - idx));
		break;
	case EVENT_NOTIFY:
	case EVENT_BLOCK:
		break;
	case EVENT_JOIN_RESPONSE:
		abort();
	}

	acrd_queue_push(ah, &ev);
out:
	acrd_unlock(ah);
	return 0;
}
Example #22
0
const http_mime_node* http_mime::get_node(const char* name) const
{
	get_nodes();

	const char* ptr;
	std::list<http_mime_node*>::const_iterator cit = mime_nodes_.begin();
	for (; cit != mime_nodes_.end(); ++cit)
	{
		ptr = (*cit)->get_name();
		if (ptr && strcmp(ptr, name) == 0)
			return *cit;
	}

	return NULL;
}
Example #23
0
static int add_event(enum local_event_type type, struct local_node *lnode,
		      void *buf, size_t buf_len)
{
	struct local_node *n;
	struct local_event ev = {
		.type = type,
		.sender = *lnode,
	};

	ev.buf_len = buf_len;
	if (buf)
		memcpy(ev.buf, buf, buf_len);

	ev.nr_lnodes = get_nodes(ev.lnodes);

	switch (type) {
	case EVENT_JOIN:
		ev.lnodes[ev.nr_lnodes] = *lnode;
		ev.nr_lnodes++;
		break;
	case EVENT_LEAVE:
		xlremove(lnode, ev.lnodes, &ev.nr_lnodes, lnode_cmp);
		break;
	case EVENT_GATEWAY:
		n = xlfind(lnode, ev.lnodes, ev.nr_lnodes, lnode_cmp);
		n->gateway = true;
		break;
	case EVENT_NOTIFY:
	case EVENT_BLOCK:
		break;
	case EVENT_UPDATE_NODE:
		n = xlfind(lnode, ev.lnodes, ev.nr_lnodes, lnode_cmp);
		n->node = lnode->node;
		break;
	case EVENT_ACCEPT:
		abort();
	}

	sd_debug("type = %d, sender = %s", ev.type, lnode_to_str(&ev.sender));
	for (int i = 0; i < ev.nr_lnodes; i++)
		sd_debug("%d: %s", i, lnode_to_str(ev.lnodes + i));

	shm_queue_push(&ev);

	shm_queue_notify();

	return SD_RES_SUCCESS;
}
Example #24
0
/* Load a type description.
 * A type description is the type AST node contained in square brackets.
 * The leading [ must have been loaded before this is called.
 */
static ast_t* get_type(build_parser_t* builder, ast_t* parent)
{
  if(parent == NULL)
  {
    build_error(builder, "Type with no containing node");
    return NULL;
  }

  if(ast_type(parent) != NULL)
  {
    build_error(builder, "Node has multiple types");
    return NULL;
  }

  return get_nodes(builder, AT_RSQUARE);
}
Example #25
0
void FadeCurve::solve_node_positions( )
{
// 	printf("FadeCurve::solve_node_positions()\n");
	// calculate control points values
	if (m_mode == 0) { // bended
		if (m_type == FadeIn) {
			m_controlPoints[1] = QPointF(m_strenghtFactor * (1.0 - m_bendFactor), m_strenghtFactor * m_bendFactor);
			m_controlPoints[2] = QPointF(1.0 - (m_strenghtFactor * m_bendFactor), 1.0 - (m_strenghtFactor * (1.0 - m_bendFactor)));
		}
		if (m_type == FadeOut) {
			m_controlPoints[1] = QPointF(m_strenghtFactor * m_bendFactor, m_strenghtFactor * (1.0 - m_bendFactor));
			m_controlPoints[2] = QPointF(1.0 - (m_strenghtFactor * (1.0 - m_bendFactor)), 1.0 - (m_strenghtFactor * m_bendFactor));
		}
	}
	if (m_mode == 1) { // s-shape
		m_controlPoints[1] = QPointF(m_strenghtFactor * (1.0 - m_bendFactor), m_strenghtFactor * m_bendFactor);
		m_controlPoints[2] = QPointF(1.0 - (m_strenghtFactor * (1.0 - m_bendFactor)), 1.0 - (m_strenghtFactor * m_bendFactor));
	}
	if (m_mode == 2) { // long
		if (m_type == FadeIn) {
			m_controlPoints[1] = QPointF(m_strenghtFactor * (1.0 - m_bendFactor), m_strenghtFactor * m_bendFactor);
			m_controlPoints[2] = QPointF(1.0, 1.0);
		}
		if (m_type == FadeOut) {
			m_controlPoints[1] = QPointF(0.0, 0.0);
			m_controlPoints[2] = QPointF(1.0 - (m_strenghtFactor * (1.0 - m_bendFactor)), 1.0 - (m_strenghtFactor * m_bendFactor));
		}
	}


	// calculate curve nodes values
	float f = 0.0;
	APILinkedList list = get_nodes();
	int listsize = list.size();
	if (listsize > 0) {
		APILinkedListNode* node = list.first()->next;
		
		while (node) {
			f += 1.0 / (listsize - 1);
			QPointF p = get_curve_point(f);
			((CurveNode*)node)->set_relative_when_and_value(p.x(), p.y());
			node = node->next;
		}
	}
	
	set_changed();
}
Example #26
0
int ROKEN_LIB_FUNCTION
getaddrinfo(const char *nodename,
	    const char *servname,
	    const struct addrinfo *hints,
	    struct addrinfo **res)
{
    int ret;
    int port     = 0;
    int protocol = 0;
    int socktype = 0;

    *res = NULL;

    if (servname == NULL && nodename == NULL)
	return EAI_NONAME;

    if (hints != NULL
	&& hints->ai_family != PF_UNSPEC
	&& hints->ai_family != PF_INET
#ifdef HAVE_IPV6
	&& hints->ai_family != PF_INET6
#endif
	)
	return EAI_FAMILY;

    if (servname != NULL) {
	ret = get_port_protocol_socktype (servname, hints,
					  &port, &protocol, &socktype);
	if (ret)
	    return ret;
    }
    if (nodename != NULL) {
	ret = get_number (nodename, hints, port, protocol, socktype, res);
	if (ret) {
	    if(hints && hints->ai_flags & AI_NUMERICHOST)
		ret = EAI_NONAME;
	    else
		ret = get_nodes (nodename, hints, port, protocol, socktype,
				 res);
	}
    } else {
	ret = get_null (hints, port, protocol, socktype, res);
    }
    if (ret)
	freeaddrinfo (*res);
    return ret;
}
Example #27
0
//it is running on core0 of node0
static inline void start_other_cores(void)
{
	unsigned nodes;
	unsigned nodeid;

	if (read_option(multi_core, 0))  {
		return; // disable multi_core
	}

	nodes = get_nodes();

	for (nodeid=0; nodeid<nodes; nodeid++) {
		if ( get_core_num_in_bsp(nodeid) > 0) {
			real_start_other_core(nodeid);
		}
	}
}
Example #28
0
static void add_event(enum local_event_type type,
		      struct sheepdog_node_list_entry *node, void *buf,
		      size_t buf_len, void (*block_cb)(void *arg))
{
	int idx;
	struct sheepdog_node_list_entry *n;
	pid_t *p;
	struct local_event ev = {
		.type = type,
		.sender = *node,
	};

	ev.buf_len = buf_len;
	if (buf)
		memcpy(ev.buf, buf, buf_len);

	ev.nr_nodes = get_nodes(ev.nodes, ev.pids);

	switch (type) {
	case EVENT_JOIN:
		ev.blocked = 1;
		ev.nodes[ev.nr_nodes] = *node;
		ev.pids[ev.nr_nodes] = getpid(); /* must be local node */
		ev.nr_nodes++;
		break;
	case EVENT_LEAVE:
		n = lfind(node, ev.nodes, &ev.nr_nodes, sizeof(*n), node_cmp);
		if (!n)
			panic("internal error\n");
		idx = n - ev.nodes;
		p = ev.pids + idx;

		ev.nr_nodes--;
		memmove(n, n + 1, sizeof(*n) * (ev.nr_nodes - idx));
		memmove(p, p + 1, sizeof(*p) * (ev.nr_nodes - idx));
		break;
	case EVENT_NOTIFY:
		ev.blocked = !!block_cb;
		ev.block_cb = block_cb;
		break;
	}

	shm_queue_push(&ev);

	shm_queue_notify();
}
Example #29
0
static bool is_shm_queue_valid(void)
{
	int i;
	size_t nr;
	struct local_node lnodes[SD_MAX_NODES];

	nr = get_nodes(lnodes);

	if (nr == 0)
		return true;

	for (i = 0; i < nr; i++)
		if (process_exists(lnodes[i].pid))
			return true;

	return false;
}
Example #30
0
int
sys_get_mempolicy(struct tcb *tcp)
{
	if (exiting(tcp)) {
		int pol;
		if (tcp->u_arg[0] == 0)
			tprints("NULL");
		else if (syserror(tcp) || umove(tcp, tcp->u_arg[0], &pol) < 0)
			tprintf("%#lx", tcp->u_arg[0]);
		else
			printxval(policies, pol, "MPOL_???");
		get_nodes(tcp, tcp->u_arg[1], tcp->u_arg[2], syserror(tcp));
		tprintf(", %#lx, ", tcp->u_arg[3]);
		printflags(mempolicyflags, tcp->u_arg[4], "MPOL_???");
	}
	return 0;
}