xref: /freebsd/sys/contrib/alpine-hal/eth/al_hal_eth_alu.h (revision 2414e86439f4c53aff73d1afe0453fb48145d9e5)
1*49b49cdaSZbigniew Bodek /*******************************************************************************
2*49b49cdaSZbigniew Bodek Copyright (C) 2015 Annapurna Labs Ltd.
3*49b49cdaSZbigniew Bodek 
4*49b49cdaSZbigniew Bodek This file may be licensed under the terms of the Annapurna Labs Commercial
5*49b49cdaSZbigniew Bodek License Agreement.
6*49b49cdaSZbigniew Bodek 
7*49b49cdaSZbigniew Bodek Alternatively, this file can be distributed under the terms of the GNU General
8*49b49cdaSZbigniew Bodek Public License V2 as published by the Free Software Foundation and can be
9*49b49cdaSZbigniew Bodek found at http://www.gnu.org/licenses/gpl-2.0.html
10*49b49cdaSZbigniew Bodek 
11*49b49cdaSZbigniew Bodek Alternatively, redistribution and use in source and binary forms, with or
12*49b49cdaSZbigniew Bodek without modification, are permitted provided that the following conditions are
13*49b49cdaSZbigniew Bodek met:
14*49b49cdaSZbigniew Bodek 
15*49b49cdaSZbigniew Bodek *     Redistributions of source code must retain the above copyright notice,
16*49b49cdaSZbigniew Bodek this list of conditions and the following disclaimer.
17*49b49cdaSZbigniew Bodek 
18*49b49cdaSZbigniew Bodek *     Redistributions in binary form must reproduce the above copyright
19*49b49cdaSZbigniew Bodek notice, this list of conditions and the following disclaimer in
20*49b49cdaSZbigniew Bodek the documentation and/or other materials provided with the
21*49b49cdaSZbigniew Bodek distribution.
22*49b49cdaSZbigniew Bodek 
23*49b49cdaSZbigniew Bodek THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
24*49b49cdaSZbigniew Bodek ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25*49b49cdaSZbigniew Bodek WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26*49b49cdaSZbigniew Bodek DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
27*49b49cdaSZbigniew Bodek ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28*49b49cdaSZbigniew Bodek (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29*49b49cdaSZbigniew Bodek LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
30*49b49cdaSZbigniew Bodek ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31*49b49cdaSZbigniew Bodek (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32*49b49cdaSZbigniew Bodek SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33*49b49cdaSZbigniew Bodek 
34*49b49cdaSZbigniew Bodek *******************************************************************************/
35*49b49cdaSZbigniew Bodek 
36*49b49cdaSZbigniew Bodek /**
37*49b49cdaSZbigniew Bodek  * @defgroup group_eth_alu_api API
38*49b49cdaSZbigniew Bodek  * Ethernet Controller generic ALU API
39*49b49cdaSZbigniew Bodek  * @ingroup group_eth
40*49b49cdaSZbigniew Bodek  * @{
41*49b49cdaSZbigniew Bodek  * @file   al_hal_eth_alu.h
42*49b49cdaSZbigniew Bodek  *
43*49b49cdaSZbigniew Bodek  * @brief Header file for control parameters for the generic ALU unit in the Ethernet Datapath for Advanced Ethernet port.
44*49b49cdaSZbigniew Bodek  *
45*49b49cdaSZbigniew Bodek  */
46*49b49cdaSZbigniew Bodek 
47*49b49cdaSZbigniew Bodek #ifndef __AL_HAL_ETH_ALU_H__
48*49b49cdaSZbigniew Bodek #define __AL_HAL_ETH_ALU_H__
49*49b49cdaSZbigniew Bodek 
50*49b49cdaSZbigniew Bodek /* *INDENT-OFF* */
51*49b49cdaSZbigniew Bodek #ifdef __cplusplus
52*49b49cdaSZbigniew Bodek extern "C" {
53*49b49cdaSZbigniew Bodek #endif
54*49b49cdaSZbigniew Bodek /* *INDENT-ON* */
55*49b49cdaSZbigniew Bodek 
56*49b49cdaSZbigniew Bodek enum AL_ETH_ALU_OPCODE
57*49b49cdaSZbigniew Bodek {
58*49b49cdaSZbigniew Bodek 	AL_ALU_FWD_A                            = 0,
59*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_ADD                   = 1,
60*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_SUBTRACT              = 2,
61*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_AND                      = 3,
62*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_OR                       = 4,
63*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_RIGHT_A_BY_B               = 5,
64*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_LEFT_A_BY_B                = 6,
65*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_XOR                      = 7,
66*49b49cdaSZbigniew Bodek 	AL_ALU_FWD_INV_A                        = 16,
67*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_ADD_INV_A_AND_B       = 17,
68*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_SUBTRACT_INV_A_AND_B  = 18,
69*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_AND_INV_A_AND_B          = 19,
70*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_OR_INV_A_AND_B           = 20,
71*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_RIGHT_INV_A_BY_B           = 21,
72*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_LEFT_INV_A_BY_B            = 22,
73*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_XOR_INV_A_AND_B          = 23,
74*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_ADD_A_AND_INV_B       = 33,
75*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_SUBTRACT_A_AND_INV_B  = 34,
76*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_AND_A_AND_INV_B          = 35,
77*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_OR_A_AND_INV_B           = 36,
78*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_RIGHT_A_BY_INV_B           = 37,
79*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_LEFT_A_BY_INV_B            = 38,
80*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_XOR_A_AND_INV_B          = 39,
81*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_ADD_INV_A_AND_INV_B   = 49,
82*49b49cdaSZbigniew Bodek 	AL_ALU_ARITHMETIC_SUBTRACT_INV_A_AND    = 50,
83*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_AND_INV_A_AND_INV_B      = 51,
84*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_OR_INV_A_AND_INV_B       = 52,
85*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_RIGHT_INV_A_BY_INV_B       = 53,
86*49b49cdaSZbigniew Bodek 	AL_ALU_SHIFT_LEFT_INV_A_BY_INV_B        = 54,
87*49b49cdaSZbigniew Bodek 	AL_ALU_BITWISE_XOR_INV_A_AND_INV_B      = 55
88*49b49cdaSZbigniew Bodek };
89*49b49cdaSZbigniew Bodek 
90*49b49cdaSZbigniew Bodek #ifdef __cplusplus
91*49b49cdaSZbigniew Bodek }
92*49b49cdaSZbigniew Bodek #endif
93*49b49cdaSZbigniew Bodek /* *INDENT-ON* */
94*49b49cdaSZbigniew Bodek #endif /* __AL_HAL_ETH_ALU_H__ */
95*49b49cdaSZbigniew Bodek /** @} end of Ethernet group */
96