neighborhood.h 822 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11
/*
 * EMULAB-COPYRIGHT
 * Copyright (c) 2005-2006 University of Utah and the Flux Group.
 * All rights reserved.
 */

/*
 * A set of functions useful for exploring the neighborhood of a particular
 * solution.
 */

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
#ifndef __NEIGHBORHOOD_H
#define __NEIGHBORHOOD_H

#include "port.h"
#include "common.h"
#include "physical.h"
#include "vclass.h"
#include "virtual.h"
#include "pclass.h"

/*
 * This overly-verbose function returns true if it's okay to map vn to pn,
 * false otherwise
 */
inline bool pnode_is_match(tb_vnode *vn, tb_pnode *pn);

/*
 * Finds a pnode which:
 * 1) One of the vnode's neighbors is mapped to
 * 2) Satisifies the usual pnode mapping constraints
 * 3) The vnode is not already mapped to
 */
tb_pnode *find_pnode_connected(vvertex vv, tb_vnode *vn);

tb_pnode *find_pnode(tb_vnode *vn);

#endif