1 /* 2 * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. 3 * 4 * This file is part of libFirm. 5 * 6 * This file may be distributed and/or modified under the terms of the 7 * GNU General Public License version 2 as published by the Free Software 8 * Foundation and appearing in the file LICENSE.GPL included in the 9 * packaging of this file. 10 * 11 * Licensees holding valid libFirm Professional Edition licenses may use 12 * this file in accordance with the libFirm Commercial License. 13 * Agreement provided with the Software. 14 * 15 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 16 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17 * PURPOSE. 18 */ 19 20 /** 21 * @file 22 * @brief Buckets for nodes and edges. 23 * @date 30.11.2008 24 * @author Sebastian Buchwald 25 */ 26 #ifndef KAPS_BUCKET_H 27 #define KAPS_BUCKET_H 28 29 #include "bucket_t.h" 30 31 int edge_bucket_contains(pbqp_edge_bucket_t bucket, pbqp_edge_t *edge); 32 void edge_bucket_free(pbqp_edge_bucket_t *bucket); 33 unsigned edge_bucket_get_length(pbqp_edge_bucket_t bucket); 34 void edge_bucket_init(pbqp_edge_bucket_t *bucket); 35 void edge_bucket_insert(pbqp_edge_bucket_t *bucket, pbqp_edge_t *edge); 36 pbqp_edge_t *edge_bucket_pop(pbqp_edge_bucket_t *bucket); 37 38 int node_bucket_contains(pbqp_node_bucket_t bucket, pbqp_node_t *node); 39 void node_bucket_copy(pbqp_node_bucket_t *dst, pbqp_node_bucket_t src); 40 void node_bucket_deep_copy(pbqp_t *pbqp, pbqp_node_bucket_t *dst, pbqp_node_bucket_t src); 41 void node_bucket_free(pbqp_node_bucket_t *bucket); 42 unsigned node_bucket_get_length(pbqp_node_bucket_t bucket); 43 void node_bucket_init(pbqp_node_bucket_t *bucket); 44 void node_bucket_insert(pbqp_node_bucket_t *bucket, pbqp_node_t *node); 45 pbqp_node_t *node_bucket_pop(pbqp_node_bucket_t *bucket); 46 void node_bucket_remove(pbqp_node_bucket_t *bucket, pbqp_node_t *node); 47 void node_bucket_shrink(pbqp_node_bucket_t *bucket, unsigned len); 48 void node_bucket_update(pbqp_t *pbqp, pbqp_node_bucket_t bucket); 49 50 #endif /* KAPS_BUCKET_H */ 51