1422d97b8SChris Packham /* SPDX-License-Identifier: GPL-2.0 */ 2422d97b8SChris Packham /* 3422d97b8SChris Packham * This file is based on code from OCTEON SDK by Cavium Networks. 4422d97b8SChris Packham * 5422d97b8SChris Packham * Copyright (c) 2003-2007 Cavium Networks 6422d97b8SChris Packham */ 7422d97b8SChris Packham 8422d97b8SChris Packham /** 9422d97b8SChris Packham * cvm_oct_get_buffer_ptr - convert packet data address to pointer 10422d97b8SChris Packham * @packet_ptr: Packet data hardware address 11422d97b8SChris Packham * 12422d97b8SChris Packham * Returns Packet buffer pointer 13422d97b8SChris Packham */ cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr)14422d97b8SChris Packhamstatic inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr) 15422d97b8SChris Packham { 16422d97b8SChris Packham return cvmx_phys_to_ptr(((packet_ptr.s.addr >> 7) - packet_ptr.s.back) 17422d97b8SChris Packham << 7); 18422d97b8SChris Packham } 19422d97b8SChris Packham 20422d97b8SChris Packham /** 21422d97b8SChris Packham * INTERFACE - convert IPD port to logical interface 22422d97b8SChris Packham * @ipd_port: Port to check 23422d97b8SChris Packham * 24422d97b8SChris Packham * Returns Logical interface 25422d97b8SChris Packham */ INTERFACE(int ipd_port)26422d97b8SChris Packhamstatic inline int INTERFACE(int ipd_port) 27422d97b8SChris Packham { 28422d97b8SChris Packham int interface; 29422d97b8SChris Packham 30422d97b8SChris Packham if (ipd_port == CVMX_PIP_NUM_INPUT_PORTS) 31422d97b8SChris Packham return 10; 32422d97b8SChris Packham interface = cvmx_helper_get_interface_num(ipd_port); 33422d97b8SChris Packham if (interface >= 0) 34422d97b8SChris Packham return interface; 35422d97b8SChris Packham panic("Illegal ipd_port %d passed to %s\n", ipd_port, __func__); 36422d97b8SChris Packham } 37422d97b8SChris Packham 38422d97b8SChris Packham /** 39422d97b8SChris Packham * INDEX - convert IPD/PKO port number to the port's interface index 40422d97b8SChris Packham * @ipd_port: Port to check 41422d97b8SChris Packham * 42422d97b8SChris Packham * Returns Index into interface port list 43422d97b8SChris Packham */ INDEX(int ipd_port)44422d97b8SChris Packhamstatic inline int INDEX(int ipd_port) 45422d97b8SChris Packham { 46422d97b8SChris Packham return cvmx_helper_get_interface_index_num(ipd_port); 47422d97b8SChris Packham } 48