Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * This file is based on code from OCTEON SDK by Cavium Networks.
0004  *
0005  * Copyright (c) 2003-2007 Cavium Networks
0006  */
0007 
0008 /**
0009  * cvm_oct_get_buffer_ptr - convert packet data address to pointer
0010  * @packet_ptr: Packet data hardware address
0011  *
0012  * Returns Packet buffer pointer
0013  */
0014 static inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr)
0015 {
0016     return cvmx_phys_to_ptr(((packet_ptr.s.addr >> 7) - packet_ptr.s.back)
0017                 << 7);
0018 }
0019 
0020 /**
0021  * INTERFACE - convert IPD port to logical interface
0022  * @ipd_port: Port to check
0023  *
0024  * Returns Logical interface
0025  */
0026 static inline int INTERFACE(int ipd_port)
0027 {
0028     int interface;
0029 
0030     if (ipd_port == CVMX_PIP_NUM_INPUT_PORTS)
0031         return 10;
0032     interface = cvmx_helper_get_interface_num(ipd_port);
0033     if (interface >= 0)
0034         return interface;
0035     panic("Illegal ipd_port %d passed to %s\n", ipd_port, __func__);
0036 }
0037 
0038 /**
0039  * INDEX - convert IPD/PKO port number to the port's interface index
0040  * @ipd_port: Port to check
0041  *
0042  * Returns Index into interface port list
0043  */
0044 static inline int INDEX(int ipd_port)
0045 {
0046     return cvmx_helper_get_interface_index_num(ipd_port);
0047 }