Commit | Line | Data |
---|---|---|
67620987 AK |
1 | /* |
2 | * This file is based on code from OCTEON SDK by Cavium Networks. | |
80ff0fd3 DD |
3 | * |
4 | * Copyright (c) 2003-2007 Cavium Networks | |
5 | * | |
6 | * This file is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License, Version 2, as | |
8 | * published by the Free Software Foundation. | |
67620987 | 9 | */ |
80ff0fd3 | 10 | |
1d39a5e4 JH |
11 | #include <asm/octeon/cvmx-pip.h> |
12 | #include <asm/octeon/cvmx-helper.h> | |
13 | #include <asm/octeon/cvmx-helper-util.h> | |
14 | ||
80ff0fd3 | 15 | /** |
ec977c5b | 16 | * cvm_oct_get_buffer_ptr - convert packet data address to pointer |
80ff0fd3 | 17 | * @packet_ptr: Packet data hardware address |
ec977c5b | 18 | * |
80ff0fd3 DD |
19 | * Returns Packet buffer pointer |
20 | */ | |
21 | static inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr) | |
22 | { | |
23 | return cvmx_phys_to_ptr(((packet_ptr.s.addr >> 7) - packet_ptr.s.back) | |
24 | << 7); | |
25 | } | |
26 | ||
27 | /** | |
215c47c9 | 28 | * INTERFACE - convert IPD port to logical interface |
80ff0fd3 DD |
29 | * @ipd_port: Port to check |
30 | * | |
31 | * Returns Logical interface | |
32 | */ | |
33 | static inline int INTERFACE(int ipd_port) | |
34 | { | |
9eca4993 | 35 | int interface; |
1d39a5e4 | 36 | |
9eca4993 AK |
37 | if (ipd_port == CVMX_PIP_NUM_INPUT_PORTS) |
38 | return 10; | |
39 | interface = cvmx_helper_get_interface_num(ipd_port); | |
1d39a5e4 JH |
40 | if (interface >= 0) |
41 | return interface; | |
aa66d88d | 42 | panic("Illegal ipd_port %d passed to INTERFACE\n", ipd_port); |
80ff0fd3 DD |
43 | } |
44 | ||
45 | /** | |
ec977c5b | 46 | * INDEX - convert IPD/PKO port number to the port's interface index |
80ff0fd3 DD |
47 | * @ipd_port: Port to check |
48 | * | |
49 | * Returns Index into interface port list | |
50 | */ | |
51 | static inline int INDEX(int ipd_port) | |
52 | { | |
1d39a5e4 | 53 | return cvmx_helper_get_interface_index_num(ipd_port); |
80ff0fd3 | 54 | } |