1219820Sjeff/* 2219820Sjeff * Copyright (c) 2008 Voltaire, Inc. All rights reserved. 3219820Sjeff * Copyright (c) 2007 Lawrence Livermore National Lab 4219820Sjeff * 5219820Sjeff * This software is available to you under a choice of one of two 6219820Sjeff * licenses. You may choose to be licensed under the terms of the GNU 7219820Sjeff * General Public License (GPL) Version 2, available from the file 8219820Sjeff * COPYING in the main directory of this source tree, or the 9219820Sjeff * OpenIB.org BSD license below: 10219820Sjeff * 11219820Sjeff * Redistribution and use in source and binary forms, with or 12219820Sjeff * without modification, are permitted provided that the following 13219820Sjeff * conditions are met: 14219820Sjeff * 15219820Sjeff * - Redistributions of source code must retain the above 16219820Sjeff * copyright notice, this list of conditions and the following 17219820Sjeff * disclaimer. 18219820Sjeff * 19219820Sjeff * - Redistributions in binary form must reproduce the above 20219820Sjeff * copyright notice, this list of conditions and the following 21219820Sjeff * disclaimer in the documentation and/or other materials 22219820Sjeff * provided with the distribution. 23219820Sjeff * 24219820Sjeff * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 25219820Sjeff * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 26219820Sjeff * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 27219820Sjeff * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 28219820Sjeff * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 29219820Sjeff * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 30219820Sjeff * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31219820Sjeff * SOFTWARE. 32219820Sjeff * 33219820Sjeff */ 34219820Sjeff 35219820Sjeff#ifndef _CL_NODE_NAME_MAP_H_ 36219820Sjeff#define _CL_NODE_NAME_MAP_H_ 37219820Sjeff 38219820Sjeff#include <stdio.h> 39219820Sjeff#include <stdint.h> 40219820Sjeff#include <complib/cl_qmap.h> 41219820Sjeff 42219820Sjeff/* NOTE: this may modify the parameter "nodedesc". */ 43219820Sjeffchar *clean_nodedesc(char *nodedesc); 44219820Sjeff 45219820Sjefftypedef struct _name_map_item { 46219820Sjeff cl_map_item_t item; 47219820Sjeff uint64_t guid; 48219820Sjeff char *name; 49219820Sjeff} name_map_item_t; 50219820Sjeff 51219820Sjefftypedef cl_qmap_t nn_map_t; 52219820Sjeff 53219820Sjeff/** 54219820Sjeff * Node name map interface. 55219820Sjeff * It is OK to pass NULL for the node_name_map[_fp] parameters. 56219820Sjeff */ 57219820Sjeffnn_map_t *open_node_name_map(char *node_name_map); 58219820Sjeffvoid close_node_name_map(nn_map_t *map); 59219820Sjeffchar *remap_node_name(nn_map_t *map, uint64_t target_guid, 60219820Sjeff char *nodedesc); 61219820Sjeff /* NOTE: parameter "nodedesc" may be modified here. */ 62219820Sjeffint parse_node_map(const char *file_name, 63219820Sjeff int (*create)(void *, uint64_t, char *), void *cxt); 64219820Sjeff 65219820Sjeff#endif /* _CL_NODE_NAME_MAP_H_ */ 66