Files
test/doc/Doxygen/html/sdrv__firewall_8h.html
2025-11-07 20:19:23 +08:00

763 lines
39 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SemiDrive SSDK Appication Program Interface: Z:/01-Code/06-SSDK-DEV-Firewall/ssdk/drivers/include/sdrv_firewall.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">SemiDrive SSDK Appication Program Interface<span id="projectnumber">&#160;PTG3.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_14bc92f4b96c8519b376567118ac28b3.html">drivers</a></li><li class="navelem"><a class="el" href="dir_ee023d43c33bfccc31aa50a48a76892b.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">sdrv_firewall.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;firewall_hw.h&gt;</code><br />
<code>#include &lt;<a class="el" href="sdrv__common_8h_source.html">sdrv_common.h</a>&gt;</code><br />
<code>#include &lt;spinlock.h&gt;</code><br />
</div>
<p><a href="sdrv__firewall_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmpc__region__cfg.html">mpc_region_cfg</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmpc__memport__cfg.html">mpc_memport_cfg</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structppc__addrconfig.html">ppc_addrconfig</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structppc__ipconfig.html">ppc_ipconfig</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgpio__channel__cfg.html">gpio_channel_cfg</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgpio__core__cfg.html">gpio_core_cfg</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsdrv__mpc__irqsta__t.html">sdrv_mpc_irqsta_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsdrv__ppc__irqsta__t.html">sdrv_ppc_irqsta_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsdrv__firewall__err__t.html">sdrv_firewall_err_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsdrv__firewall__cfg__t.html">sdrv_firewall_cfg_t</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsdrv__firewall.html">sdrv_firewall</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a7e16fd4434338f09eccfa71fbe5627bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sdrv__firewall_8h.html#a7e16fd4434338f09eccfa71fbe5627bf">sdrv_firewall_init</a> (<a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *ctrl, const <a class="el" href="structsdrv__firewall__cfg__t.html">sdrv_firewall_cfg_t</a> *cfg)</td></tr>
<tr class="separator:a7e16fd4434338f09eccfa71fbe5627bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d7b810906b1df2675a3323f34cfbf8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sdrv__firewall_8h.html#a4d7b810906b1df2675a3323f34cfbf8e">sdrv_firewall_assign_domain</a> (<a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *ctrl, uint8_t master_id, uint8_t domain_id)</td></tr>
<tr class="separator:a4d7b810906b1df2675a3323f34cfbf8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3b9b2cb66c33b16c938df8c9d466cc6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sdrv__firewall_8h.html#ab3b9b2cb66c33b16c938df8c9d466cc6">sdrv_firewall_lock_domain_assignment</a> (<a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *ctrl)</td></tr>
<tr class="separator:ab3b9b2cb66c33b16c938df8c9d466cc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12574b9afda4ed674b672aa2e49e3918"><td class="memItemLeft" align="right" valign="top"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sdrv__firewall_8h.html#a12574b9afda4ed674b672aa2e49e3918">sdrv_firewall_set_callback</a> (<a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *ctrl, <a class="el" href="sdrv__firewall_8h.html#a76965a3aca34105081a68cbb1d11e2db">sdrv_firewall_callback_t</a> callback, void *userdata)</td></tr>
<tr class="separator:a12574b9afda4ed674b672aa2e49e3918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf4b37aba66846c9eaf0e702ef09560c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sdrv__firewall_8h.html#abf4b37aba66846c9eaf0e702ef09560c">sdrv_firewall_irq_handler</a> (uint32_t irq, void *ctrl)</td></tr>
<tr class="separator:abf4b37aba66846c9eaf0e702ef09560c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09ede931918ae5e91ef21dd6274f2549"><td class="memItemLeft" align="right" valign="top"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sdrv__firewall_8h.html#a09ede931918ae5e91ef21dd6274f2549">sdrv_firewall_get_error_info</a> (<a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *ctrl, <a class="el" href="structsdrv__firewall__err__t.html">sdrv_firewall_err_t</a> *firewall_err_info)</td></tr>
<tr class="separator:a09ede931918ae5e91ef21dd6274f2549"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><hr />
<p> SEMIDRIVE Copyright Statement Copyright (c) SEMIDRIVE. All rights reserved</p>
<p >This software and all rights therein are owned by SEMIDRIVE, and are protected by copyright law and other relevant laws, regulations and protection. Without SEMIDRIVE's prior written consent and/or related rights, please do not use this software or any potion thereof in any form or by any means. You may not reproduce, modify or distribute this software except in compliance with the License. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an 'AS IS' basis, WITHOUT WARRANTIES OF ANY KIND, either express or implied. </p><hr />
<table class="doxtable">
<tr>
<th>Date </th><th>Version </th></tr>
<tr>
<td>2023/11/29 </td><td>1.0.0 </td></tr>
</table>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a3b530392803aab71881f5e16b458827b" name="a3b530392803aab71881f5e16b458827b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b530392803aab71881f5e16b458827b">&#9670;&nbsp;</a></span>FIREWALL_APB_MAC_BASE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_APB_MAC_BASE&#160;&#160;&#160;APB_MAC_BASE</td>
</tr>
</table>
</div><div class="memdoc">
<p>Firewall module base address. </p>
</div>
</div>
<a id="a92e38edd39b3367f0382d5b4a0b4f072" name="a92e38edd39b3367f0382d5b4a0b4f072"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92e38edd39b3367f0382d5b4a0b4f072">&#9670;&nbsp;</a></span>FIREWALL_INIT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_INIT&#160;&#160;&#160;(0x01U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Firewall module initialized state. </p>
</div>
</div>
<a id="a8e4c3f64907370b8270984e6eb0d7472" name="a8e4c3f64907370b8270984e6eb0d7472"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e4c3f64907370b8270984e6eb0d7472">&#9670;&nbsp;</a></span>FIREWALL_PERMISSION_NONE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_PERMISSION_NONE&#160;&#160;&#160;(0x03U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>No permission. </p>
</div>
</div>
<a id="aaa524281903e41e5ef4e312d8c7cf4f6" name="aaa524281903e41e5ef4e312d8c7cf4f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa524281903e41e5ef4e312d8c7cf4f6">&#9670;&nbsp;</a></span>FIREWALL_PERMISSION_RO</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_PERMISSION_RO&#160;&#160;&#160;(0x01U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable read permission. </p>
</div>
</div>
<a id="a48c9b2916f357243a88c195e31171b77" name="a48c9b2916f357243a88c195e31171b77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48c9b2916f357243a88c195e31171b77">&#9670;&nbsp;</a></span>FIREWALL_PERMISSION_RW</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_PERMISSION_RW&#160;&#160;&#160;(0x00U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable read and write permissions. </p>
</div>
</div>
<a id="a6a0daea9cd02f9cde966ededa98f5ae1" name="a6a0daea9cd02f9cde966ededa98f5ae1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a0daea9cd02f9cde966ededa98f5ae1">&#9670;&nbsp;</a></span>FIREWALL_PERMISSION_WO</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_PERMISSION_WO&#160;&#160;&#160;(0x02U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable write permission. </p>
</div>
</div>
<a id="a26135de49336f31e8d6fc3f0b2c21c6c" name="a26135de49336f31e8d6fc3f0b2c21c6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26135de49336f31e8d6fc3f0b2c21c6c">&#9670;&nbsp;</a></span>FIREWALL_REG_VALUE_MAX</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_REG_VALUE_MAX&#160;&#160;&#160;(0xFFFFFFFFU)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum value of register. </p>
</div>
</div>
<a id="ad99769af7393e87def6fb80eb0873002" name="ad99769af7393e87def6fb80eb0873002"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad99769af7393e87def6fb80eb0873002">&#9670;&nbsp;</a></span>FIREWALL_REG_VALUE_MIN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_REG_VALUE_MIN&#160;&#160;&#160;(0x00U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>The minimum value of register. </p>
</div>
</div>
<a id="aecec8b4d04aa9aad9a68c2696f04ccad" name="aecec8b4d04aa9aad9a68c2696f04ccad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aecec8b4d04aa9aad9a68c2696f04ccad">&#9670;&nbsp;</a></span>FIREWALL_UNINIT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FIREWALL_UNINIT&#160;&#160;&#160;(0x00U)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Firewall module uninitialized state. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a76965a3aca34105081a68cbb1d11e2db" name="a76965a3aca34105081a68cbb1d11e2db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76965a3aca34105081a68cbb1d11e2db">&#9670;&nbsp;</a></span>sdrv_firewall_callback_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* sdrv_firewall_callback_t) (<a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *ctrl, void *userdata)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Firewall callback function type. </p>
</div>
</div>
<a id="a2648d5ee1e3a2327718372861f82f054" name="a2648d5ee1e3a2327718372861f82f054"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2648d5ee1e3a2327718372861f82f054">&#9670;&nbsp;</a></span>sdrv_firewall_err_status_e</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="sdrv__firewall_8h.html#ac47b71b3d38cf2d352a75f71ddb9cf38">sdrv_firewall_err_status</a> <a class="el" href="sdrv__firewall_8h.html#a2648d5ee1e3a2327718372861f82f054">sdrv_firewall_err_status_e</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Firewall status return code. </p>
</div>
</div>
<a id="a1ea92e3e49481567a9a7e8ef3ada5175" name="a1ea92e3e49481567a9a7e8ef3ada5175"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ea92e3e49481567a9a7e8ef3ada5175">&#9670;&nbsp;</a></span>sdrv_firewall_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structsdrv__firewall.html">sdrv_firewall</a> <a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aed38d2ae2780695b51216b1c3fa2a47b" name="aed38d2ae2780695b51216b1c3fa2a47b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed38d2ae2780695b51216b1c3fa2a47b">&#9670;&nbsp;</a></span>sdrv_gpio_channel_cfg_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgpio__channel__cfg.html">gpio_channel_cfg</a> <a class="el" href="sdrv__firewall_8h.html#aed38d2ae2780695b51216b1c3fa2a47b">sdrv_gpio_channel_cfg_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Pin configuration. </p>
</div>
</div>
<a id="af41c4ab06ccf74e4d1b9c14e4cf471a5" name="af41c4ab06ccf74e4d1b9c14e4cf471a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af41c4ab06ccf74e4d1b9c14e4cf471a5">&#9670;&nbsp;</a></span>sdrv_gpio_core_cfg_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgpio__core__cfg.html">gpio_core_cfg</a> <a class="el" href="sdrv__firewall_8h.html#af41c4ab06ccf74e4d1b9c14e4cf471a5">sdrv_gpio_core_cfg_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Pin permission for the core. </p>
</div>
</div>
<a id="a65549705f2727daabb563e41608f73c0" name="a65549705f2727daabb563e41608f73c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65549705f2727daabb563e41608f73c0">&#9670;&nbsp;</a></span>sdrv_mac_config_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef const uint8_t* <a class="el" href="sdrv__firewall_8h.html#a65549705f2727daabb563e41608f73c0">sdrv_mac_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The type of configuarion for the MAC module. </p>
</div>
</div>
<a id="a08e53bd2099d06f9d4631560a63dc324" name="a08e53bd2099d06f9d4631560a63dc324"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08e53bd2099d06f9d4631560a63dc324">&#9670;&nbsp;</a></span>sdrv_mpc_memport_cfg_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structmpc__memport__cfg.html">mpc_memport_cfg</a> <a class="el" href="sdrv__firewall_8h.html#a08e53bd2099d06f9d4631560a63dc324">sdrv_mpc_memport_cfg_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>MPC memory port configure. </p>
</div>
</div>
<a id="a8e3c4927c5fc16b520830983db49616f" name="a8e3c4927c5fc16b520830983db49616f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e3c4927c5fc16b520830983db49616f">&#9670;&nbsp;</a></span>sdrv_mpc_region_cfg_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structmpc__region__cfg.html">mpc_region_cfg</a> <a class="el" href="sdrv__firewall_8h.html#a8e3c4927c5fc16b520830983db49616f">sdrv_mpc_region_cfg_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>MPC region configure. </p>
</div>
</div>
<a id="aef6b247c08c8d230260b4db155d46db7" name="aef6b247c08c8d230260b4db155d46db7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef6b247c08c8d230260b4db155d46db7">&#9670;&nbsp;</a></span>sdrv_ppc_ip_config_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structppc__ipconfig.html">ppc_ipconfig</a> <a class="el" href="sdrv__firewall_8h.html#aef6b247c08c8d230260b4db155d46db7">sdrv_ppc_ip_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>PPC ip configure. </p>
</div>
</div>
<a id="a9e7284476fd3110e04a5a6926f73e34b" name="a9e7284476fd3110e04a5a6926f73e34b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e7284476fd3110e04a5a6926f73e34b">&#9670;&nbsp;</a></span>sdrv_ppc_region_config_t</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structppc__addrconfig.html">ppc_addrconfig</a> <a class="el" href="sdrv__firewall_8h.html#a9e7284476fd3110e04a5a6926f73e34b">sdrv_ppc_region_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>PPC address configure. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ac47b71b3d38cf2d352a75f71ddb9cf38" name="ac47b71b3d38cf2d352a75f71ddb9cf38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac47b71b3d38cf2d352a75f71ddb9cf38">&#9670;&nbsp;</a></span>sdrv_firewall_err_status</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="sdrv__firewall_8h.html#ac47b71b3d38cf2d352a75f71ddb9cf38">sdrv_firewall_err_status</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Firewall status return code. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38aa7a196b06d5b867dd0a8018dfb6ca87f" name="ac47b71b3d38cf2d352a75f71ddb9cf38aa7a196b06d5b867dd0a8018dfb6ca87f"></a>FIREWALL_E_OK&#160;</td><td class="fielddoc"><p >status for success. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38acfc7207f2eb2122fec1ee172f0d744ab" name="ac47b71b3d38cf2d352a75f71ddb9cf38acfc7207f2eb2122fec1ee172f0d744ab"></a>FIREWALL_E_INIT&#160;</td><td class="fielddoc"><p >Error due to API duplicated invoked FIREWALL_Init(). </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a5e86dda861ea4188b409fbd0955d85d1" name="ac47b71b3d38cf2d352a75f71ddb9cf38a5e86dda861ea4188b409fbd0955d85d1"></a>FIREWALL_E_UNINIT&#160;</td><td class="fielddoc"><p >Error due to API invoked without performing FIREWALL_Init(). </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a78dc9c9ef8e1d70fba33e12109057c53" name="ac47b71b3d38cf2d352a75f71ddb9cf38a78dc9c9ef8e1d70fba33e12109057c53"></a>FIREWALL_E_NULL_POINTER&#160;</td><td class="fielddoc"><p >Error due to NULL_PTR passed as parameter. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a18cdd6167158ebb4ec37fa41ae9a5194" name="ac47b71b3d38cf2d352a75f71ddb9cf38a18cdd6167158ebb4ec37fa41ae9a5194"></a>FIREWALL_E_MAC_MASTER_ID&#160;</td><td class="fielddoc"><p >Error due to invalid master id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a4ccdd8fcdd35ab9f06f76b4040e9ec3f" name="ac47b71b3d38cf2d352a75f71ddb9cf38a4ccdd8fcdd35ab9f06f76b4040e9ec3f"></a>FIREWALL_E_MAC_DOMAIN_ID&#160;</td><td class="fielddoc"><p >Error due to invalid domain id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a652fb850de54f1d49330a3e29fd1a466" name="ac47b71b3d38cf2d352a75f71ddb9cf38a652fb850de54f1d49330a3e29fd1a466"></a>FIREWALL_E_MAC_LOCKED&#160;</td><td class="fielddoc"><p >Error due to the MAC module has been locked. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38ae3cc9db8116b72d8abc243a3864c63b8" name="ac47b71b3d38cf2d352a75f71ddb9cf38ae3cc9db8116b72d8abc243a3864c63b8"></a>FIREWALL_E_MPC_PORT_NUM&#160;</td><td class="fielddoc"><p >Error due to the unvalid number of memory ports. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38ad412b02dd8e912b62b36fe6458c31d86" name="ac47b71b3d38cf2d352a75f71ddb9cf38ad412b02dd8e912b62b36fe6458c31d86"></a>FIREWALL_E_MPC_REGION_NUM&#160;</td><td class="fielddoc"><p >Error due to the unvalid number of memory regions. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38aaf92ca01a48450ec62a89d511486dcf9" name="ac47b71b3d38cf2d352a75f71ddb9cf38aaf92ca01a48450ec62a89d511486dcf9"></a>FIREWALL_E_PPC_IP_NUM&#160;</td><td class="fielddoc"><p >Error due to the unvalid number of peripherals. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38ab38205a7c497c72037685a94a2deb4c8" name="ac47b71b3d38cf2d352a75f71ddb9cf38ab38205a7c497c72037685a94a2deb4c8"></a>FIREWALL_E_PPC_REGION_NUM&#160;</td><td class="fielddoc"><p >Error due to the unvalid number of apb regions. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a250411497a9799d0fd766445daba3852" name="ac47b71b3d38cf2d352a75f71ddb9cf38a250411497a9799d0fd766445daba3852"></a>FIREWALL_E_GPIO_CORE_ID&#160;</td><td class="fielddoc"><p >Error due to invalid core id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38aae4cba3162d6cd060c9b8cc7a4d4046a" name="ac47b71b3d38cf2d352a75f71ddb9cf38aae4cba3162d6cd060c9b8cc7a4d4046a"></a>FIREWALL_E_GPIO_CHANNEL_ID&#160;</td><td class="fielddoc"><p >Error due to invalid gpio pin channel id. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a5ba782f56498ba08f1115c91aef7733d" name="ac47b71b3d38cf2d352a75f71ddb9cf38a5ba782f56498ba08f1115c91aef7733d"></a>FIREWALL_E_GPIO_CORE_NUM&#160;</td><td class="fielddoc"><p >Error due to invalid number of cores. </p>
</td></tr>
<tr><td class="fieldname"><a id="ac47b71b3d38cf2d352a75f71ddb9cf38a59ee8e25f370a858926686c9aa5bf4d7" name="ac47b71b3d38cf2d352a75f71ddb9cf38a59ee8e25f370a858926686c9aa5bf4d7"></a>FIREWALL_E_GPIO_CHANNEL_NUM&#160;</td><td class="fielddoc"><p >Error due to invalid number of gpio pin channels. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a4d7b810906b1df2675a3323f34cfbf8e" name="a4d7b810906b1df2675a3323f34cfbf8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d7b810906b1df2675a3323f34cfbf8e">&#9670;&nbsp;</a></span>sdrv_firewall_assign_domain()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> sdrv_firewall_assign_domain </td>
<td>(</td>
<td class="paramtype"><a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *&#160;</td>
<td class="paramname"><em>ctrl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>master_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>domain_id</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns the master to the specified domain. </p>
<p >Assigns the specified master to a domain. This function should be executed after the initialization function <a class="el" href="sdrv__firewall_8h.html#a7e16fd4434338f09eccfa71fbe5627bf" title="Configure firewall.">sdrv_firewall_init()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctrl</td><td>the firewall instance. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">master_id</td><td>the id of the master. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">domain_id</td><td>the id of the domain.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of this function.</dd></dl>
<ul>
<li>return FIREWALL_E_OK, Assigned the master to the domain success.</li>
</ul>
<p >return FIREWALL_E_UNINIT: The firewall is uninitialized.</p><ul>
<li>return FIREWALL_E_MAC_MASTER_ID: The master id is unvalid.</li>
<li>return FIREWALL_E_MAC_DOMAIN_ID: The domain id is unvalid.</li>
<li>return FIREWALL_E_MAC_LOCKED: The domain assignment of the master is locked. </li>
</ul>
</div>
</div>
<a id="a09ede931918ae5e91ef21dd6274f2549" name="a09ede931918ae5e91ef21dd6274f2549"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09ede931918ae5e91ef21dd6274f2549">&#9670;&nbsp;</a></span>sdrv_firewall_get_error_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> sdrv_firewall_get_error_info </td>
<td>(</td>
<td class="paramtype"><a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *&#160;</td>
<td class="paramname"><em>ctrl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structsdrv__firewall__err__t.html">sdrv_firewall_err_t</a> *&#160;</td>
<td class="paramname"><em>firewall_err_info</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get firewall illegal access infomation. </p>
<p >Should enable the macro FIREWALL_INTERRUPT_EN.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctrl</td><td>the firewall instance. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">firewall_err_info</td><td>Pointer to the buffer used by system to get the information.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of this function.</dd></dl>
<ul>
<li>return FIREWALL_E_OK : Set callback function success.</li>
</ul>
<p >return FIREWALL_E_NULL_POINTER : The pointer to the MAC configuration is NULL.</p><ul>
<li>return FIREWALL_E_UNINIT : The firewall is uninitialized. </li>
</ul>
</div>
</div>
<a id="a7e16fd4434338f09eccfa71fbe5627bf" name="a7e16fd4434338f09eccfa71fbe5627bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e16fd4434338f09eccfa71fbe5627bf">&#9670;&nbsp;</a></span>sdrv_firewall_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> sdrv_firewall_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *&#160;</td>
<td class="paramname"><em>ctrl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structsdrv__firewall__cfg__t.html">sdrv_firewall_cfg_t</a> *&#160;</td>
<td class="paramname"><em>cfg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Configure firewall. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctrl</td><td>the firewall instance. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>the configuration of the MAC/MPC/PPC/GPIO module.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of the firewall initialization function</dd></dl>
<ul>
<li>return SDRV_STATUS_OK, initializa firewall success.</li>
</ul>
<p >return SDRV_STATUS_INVALID_PARAM, invalid configuration parameter. </p>
</div>
</div>
<a id="abf4b37aba66846c9eaf0e702ef09560c" name="abf4b37aba66846c9eaf0e702ef09560c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf4b37aba66846c9eaf0e702ef09560c">&#9670;&nbsp;</a></span>sdrv_firewall_irq_handler()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int sdrv_firewall_irq_handler </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>irq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>ctrl</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Handle firewall interrupt. </p>
<p >This function clear MAC/PPC/MPC Interruption, return interrupt state.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">irq</td><td>the irq number of the firewall. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ctrl</td><td>sdrv firewall controller.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of this function.</dd></dl>
<ul>
<li>return 0 : Handle firewall interrupt success.</li>
</ul>
<p >return 1 : The pointer to the MAC configuration is NULL.</p><ul>
<li>return 2 : The firewall is uninitialized. </li>
</ul>
</div>
</div>
<a id="ab3b9b2cb66c33b16c938df8c9d466cc6" name="ab3b9b2cb66c33b16c938df8c9d466cc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3b9b2cb66c33b16c938df8c9d466cc6">&#9670;&nbsp;</a></span>sdrv_firewall_lock_domain_assignment()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> sdrv_firewall_lock_domain_assignment </td>
<td>(</td>
<td class="paramtype"><a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *&#160;</td>
<td class="paramname"><em>ctrl</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Lock the domain assignment of the master. </p>
<p >This function lock the domain assignment of the master, should be called after the initialization function <a class="el" href="sdrv__firewall_8h.html#a7e16fd4434338f09eccfa71fbe5627bf" title="Configure firewall.">sdrv_firewall_init()</a> or domain assignment function <a class="el" href="sdrv__firewall_8h.html#a4d7b810906b1df2675a3323f34cfbf8e" title="Assigns the master to the specified domain.">sdrv_firewall_assign_domain()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctrl</td><td>the firewall instance.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of this function.</dd></dl>
<ul>
<li>return FIREWALL_E_OK : Lock domain assignment success.</li>
</ul>
<p >return FIREWALL_E_INIT : The firewall is uninitialized.</p><ul>
<li>return FIREWALL_E_NULL_POINTER : The pointer to the MAC configuration is NULL. </li>
</ul>
</div>
</div>
<a id="a12574b9afda4ed674b672aa2e49e3918" name="a12574b9afda4ed674b672aa2e49e3918"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12574b9afda4ed674b672aa2e49e3918">&#9670;&nbsp;</a></span>sdrv_firewall_set_callback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="sdrv__common_8h.html#aaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> sdrv_firewall_set_callback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="sdrv__firewall_8h.html#a1ea92e3e49481567a9a7e8ef3ada5175">sdrv_firewall_t</a> *&#160;</td>
<td class="paramname"><em>ctrl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="sdrv__firewall_8h.html#a76965a3aca34105081a68cbb1d11e2db">sdrv_firewall_callback_t</a>&#160;</td>
<td class="paramname"><em>callback</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>userdata</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set callback function for firewall. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ctrl</td><td>the firewall instance. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>the callback function. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">userdata</td><td>the param of callback function.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The result of this function.</dd></dl>
<ul>
<li>return FIREWALL_E_OK : Set callback function success.</li>
</ul>
<p >return FIREWALL_E_NULL_POINTER : The pointer to the MAC configuration is NULL.</p><ul>
<li>return FIREWALL_E_UNINIT : The firewall is uninitialized. </li>
</ul>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>