1/* 2 * Copyright (c) 2012, The Linux Foundation. All rights reserved. 3 * Permission to use, copy, modify, and/or distribute this software for 4 * any purpose with or without fee is hereby granted, provided that the 5 * above copyright notice and this permission notice appear in all copies. 6 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 7 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 8 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 9 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 10 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 11 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 12 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 13 */ 14 15 16 17#ifndef _ATHENA_FDB_H 18#define _ATHENA_FDB_H 19 20#ifdef __cplusplus 21extern "C" { 22#endif /* __cplusplus */ 23 24#include "fal/fal_fdb.h" 25 26 sw_error_t athena_fdb_init(a_uint32_t dev_id); 27 28#ifdef IN_FDB 29#define ATHENA_FDB_INIT(rv, dev_id) \ 30 { \ 31 rv = athena_fdb_init(dev_id); \ 32 SW_RTN_ON_ERROR(rv); \ 33 } 34#else 35#define ATHENA_FDB_INIT(rv, dev_id) 36#endif 37 38#ifdef HSL_STANDALONG 39 40 41 HSL_LOCAL sw_error_t 42 athena_fdb_add(a_uint32_t dev_id, const fal_fdb_entry_t * entry); 43 44 45 46 HSL_LOCAL sw_error_t 47 athena_fdb_del_all(a_uint32_t dev_id, a_uint32_t flag); 48 49 50 51 HSL_LOCAL sw_error_t 52 athena_fdb_del_by_port(a_uint32_t dev_id, a_uint32_t port_id, 53 a_uint32_t flag); 54 55 56 57 HSL_LOCAL sw_error_t 58 athena_fdb_del_by_mac(a_uint32_t dev_id, const fal_fdb_entry_t * addr); 59 60 61 62 HSL_LOCAL sw_error_t 63 athena_fdb_first(a_uint32_t dev_id, fal_fdb_entry_t * entry); 64 65 66 67 HSL_LOCAL sw_error_t 68 athena_fdb_next(a_uint32_t dev_id, fal_fdb_entry_t * entry); 69 70#endif 71 72#ifdef __cplusplus 73} 74#endif /* __cplusplus */ 75#endif /* _ATHENA_FDB_H */ 76 77