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 * @defgroup shiva_acl SHIVA_ACL
18 * @{
19 */
20#ifndef _SHIVA_ACL_H_
21#define _SHIVA_ACL_H_
22
23#ifdef __cplusplus
24extern "C" {
25#endif                          /* __cplusplus */
26
27#include "fal/fal_acl.h"
28
29    sw_error_t
30    shiva_acl_init(a_uint32_t dev_id);
31
32    sw_error_t
33    shiva_acl_reset(a_uint32_t dev_id);
34
35#ifdef IN_ACL
36#define SHIVA_ACL_INIT(rv, dev_id) \
37    { \
38        rv = shiva_acl_init(dev_id); \
39        SW_RTN_ON_ERROR(rv); \
40    }
41
42#define SHIVA_ACL_RESET(rv, dev_id) \
43    { \
44        rv = shiva_acl_reset(dev_id); \
45        SW_RTN_ON_ERROR(rv); \
46    }
47#else
48#define SHIVA_ACL_INIT(rv, dev_id)
49#define SHIVA_ACL_RESET(rv, dev_id)
50#endif
51
52#ifdef HSL_STANDALONG
53
54    HSL_LOCAL sw_error_t
55    shiva_acl_list_creat(a_uint32_t dev_id, a_uint32_t list_id,
56                         a_uint32_t list_pri);
57
58
59    HSL_LOCAL sw_error_t
60    shiva_acl_list_destroy(a_uint32_t dev_id, a_uint32_t list_id);
61
62
63    HSL_LOCAL sw_error_t
64    shiva_acl_rule_add(a_uint32_t dev_id, a_uint32_t list_id,
65                       a_uint32_t rule_id, a_uint32_t rule_nr,
66                       fal_acl_rule_t * rule);
67
68
69    HSL_LOCAL sw_error_t
70    shiva_acl_rule_delete(a_uint32_t dev_id, a_uint32_t list_id,
71                          a_uint32_t rule_id, a_uint32_t rule_nr);
72
73
74    HSL_LOCAL sw_error_t
75    shiva_acl_rule_query(a_uint32_t dev_id, a_uint32_t list_id,
76                         a_uint32_t rule_id, fal_acl_rule_t * rule);
77
78
79    HSL_LOCAL sw_error_t
80    shiva_acl_list_bind(a_uint32_t dev_id, a_uint32_t list_id,
81                        fal_acl_direc_t direc, fal_acl_bind_obj_t obj_t,
82                        a_uint32_t obj_idx);
83
84
85    HSL_LOCAL sw_error_t
86    shiva_acl_list_unbind(a_uint32_t dev_id, a_uint32_t list_id,
87                          fal_acl_direc_t direc, fal_acl_bind_obj_t obj_t,
88                          a_uint32_t obj_idx);
89
90
91    HSL_LOCAL sw_error_t
92    shiva_acl_status_set(a_uint32_t dev_id, a_bool_t enable);
93
94
95    HSL_LOCAL sw_error_t
96    shiva_acl_status_get(a_uint32_t dev_id, a_bool_t * enable);
97
98
99    HSL_LOCAL sw_error_t
100    shiva_acl_list_dump(a_uint32_t dev_id);
101
102
103    HSL_LOCAL sw_error_t
104    shiva_acl_rule_dump(a_uint32_t dev_id);
105
106#endif
107
108#ifdef __cplusplus
109}
110#endif                          /* __cplusplus */
111#endif                          /* _SHIVA_ACL_H_ */
112/**
113 * @}
114 */
115