1a7187a2fSDavid Daney /***********************license start*************** 2a7187a2fSDavid Daney * Author: Cavium Networks 3a7187a2fSDavid Daney * 4a7187a2fSDavid Daney * Contact: support@caviumnetworks.com 5a7187a2fSDavid Daney * This file is part of the OCTEON SDK 6a7187a2fSDavid Daney * 7aa32a955SDavid Daney * Copyright (c) 2003-2010 Cavium Networks 8a7187a2fSDavid Daney * 9a7187a2fSDavid Daney * This file is free software; you can redistribute it and/or modify 10a7187a2fSDavid Daney * it under the terms of the GNU General Public License, Version 2, as 11a7187a2fSDavid Daney * published by the Free Software Foundation. 12a7187a2fSDavid Daney * 13a7187a2fSDavid Daney * This file is distributed in the hope that it will be useful, but 14a7187a2fSDavid Daney * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15a7187a2fSDavid Daney * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16a7187a2fSDavid Daney * NONINFRINGEMENT. See the GNU General Public License for more 17a7187a2fSDavid Daney * details. 18a7187a2fSDavid Daney * 19a7187a2fSDavid Daney * You should have received a copy of the GNU General Public License 20a7187a2fSDavid Daney * along with this file; if not, write to the Free Software 21a7187a2fSDavid Daney * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22a7187a2fSDavid Daney * or visit http://www.gnu.org/licenses/. 23a7187a2fSDavid Daney * 24a7187a2fSDavid Daney * This file may also be available under a different license from Cavium. 25a7187a2fSDavid Daney * Contact Cavium Networks for more information 26a7187a2fSDavid Daney ***********************license end**************************************/ 27a7187a2fSDavid Daney 28a7187a2fSDavid Daney #ifndef __CVMX_MIXX_DEFS_H__ 29a7187a2fSDavid Daney #define __CVMX_MIXX_DEFS_H__ 30a7187a2fSDavid Daney 31aa32a955SDavid Daney #define CVMX_MIXX_BIST(offset) (CVMX_ADD_IO_SEG(0x0001070000100078ull) + ((offset) & 1) * 2048) 32aa32a955SDavid Daney #define CVMX_MIXX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100020ull) + ((offset) & 1) * 2048) 33aa32a955SDavid Daney #define CVMX_MIXX_INTENA(offset) (CVMX_ADD_IO_SEG(0x0001070000100050ull) + ((offset) & 1) * 2048) 34aa32a955SDavid Daney #define CVMX_MIXX_IRCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100030ull) + ((offset) & 1) * 2048) 35aa32a955SDavid Daney #define CVMX_MIXX_IRHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100028ull) + ((offset) & 1) * 2048) 36aa32a955SDavid Daney #define CVMX_MIXX_IRING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100010ull) + ((offset) & 1) * 2048) 37aa32a955SDavid Daney #define CVMX_MIXX_IRING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100018ull) + ((offset) & 1) * 2048) 38aa32a955SDavid Daney #define CVMX_MIXX_ISR(offset) (CVMX_ADD_IO_SEG(0x0001070000100048ull) + ((offset) & 1) * 2048) 39aa32a955SDavid Daney #define CVMX_MIXX_ORCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100040ull) + ((offset) & 1) * 2048) 40aa32a955SDavid Daney #define CVMX_MIXX_ORHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100038ull) + ((offset) & 1) * 2048) 41aa32a955SDavid Daney #define CVMX_MIXX_ORING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100000ull) + ((offset) & 1) * 2048) 42aa32a955SDavid Daney #define CVMX_MIXX_ORING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100008ull) + ((offset) & 1) * 2048) 43aa32a955SDavid Daney #define CVMX_MIXX_REMCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100058ull) + ((offset) & 1) * 2048) 44aa32a955SDavid Daney #define CVMX_MIXX_TSCTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100068ull) + ((offset) & 1) * 2048) 45aa32a955SDavid Daney #define CVMX_MIXX_TSTAMP(offset) (CVMX_ADD_IO_SEG(0x0001070000100060ull) + ((offset) & 1) * 2048) 46a7187a2fSDavid Daney 47a7187a2fSDavid Daney union cvmx_mixx_bist { 48a7187a2fSDavid Daney uint64_t u64; 49a7187a2fSDavid Daney struct cvmx_mixx_bist_s { 50aa32a955SDavid Daney uint64_t reserved_6_63:58; 51aa32a955SDavid Daney uint64_t opfdat:1; 52aa32a955SDavid Daney uint64_t mrgdat:1; 53a7187a2fSDavid Daney uint64_t mrqdat:1; 54a7187a2fSDavid Daney uint64_t ipfdat:1; 55a7187a2fSDavid Daney uint64_t irfdat:1; 56a7187a2fSDavid Daney uint64_t orfdat:1; 57a7187a2fSDavid Daney } s; 58aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx { 59aa32a955SDavid Daney uint64_t reserved_4_63:60; 60aa32a955SDavid Daney uint64_t mrqdat:1; 61aa32a955SDavid Daney uint64_t ipfdat:1; 62aa32a955SDavid Daney uint64_t irfdat:1; 63aa32a955SDavid Daney uint64_t orfdat:1; 64aa32a955SDavid Daney } cn52xx; 65aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx cn52xxp1; 66aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx cn56xx; 67aa32a955SDavid Daney struct cvmx_mixx_bist_cn52xx cn56xxp1; 68aa32a955SDavid Daney struct cvmx_mixx_bist_s cn63xx; 69aa32a955SDavid Daney struct cvmx_mixx_bist_s cn63xxp1; 70a7187a2fSDavid Daney }; 71a7187a2fSDavid Daney 72a7187a2fSDavid Daney union cvmx_mixx_ctl { 73a7187a2fSDavid Daney uint64_t u64; 74a7187a2fSDavid Daney struct cvmx_mixx_ctl_s { 75aa32a955SDavid Daney uint64_t reserved_12_63:52; 76aa32a955SDavid Daney uint64_t ts_thresh:4; 77a7187a2fSDavid Daney uint64_t crc_strip:1; 78a7187a2fSDavid Daney uint64_t busy:1; 79a7187a2fSDavid Daney uint64_t en:1; 80a7187a2fSDavid Daney uint64_t reset:1; 81a7187a2fSDavid Daney uint64_t lendian:1; 82a7187a2fSDavid Daney uint64_t nbtarb:1; 83a7187a2fSDavid Daney uint64_t mrq_hwm:2; 84a7187a2fSDavid Daney } s; 85aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx { 86aa32a955SDavid Daney uint64_t reserved_8_63:56; 87aa32a955SDavid Daney uint64_t crc_strip:1; 88aa32a955SDavid Daney uint64_t busy:1; 89aa32a955SDavid Daney uint64_t en:1; 90aa32a955SDavid Daney uint64_t reset:1; 91aa32a955SDavid Daney uint64_t lendian:1; 92aa32a955SDavid Daney uint64_t nbtarb:1; 93aa32a955SDavid Daney uint64_t mrq_hwm:2; 94aa32a955SDavid Daney } cn52xx; 95aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx cn52xxp1; 96aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx cn56xx; 97aa32a955SDavid Daney struct cvmx_mixx_ctl_cn52xx cn56xxp1; 98aa32a955SDavid Daney struct cvmx_mixx_ctl_s cn63xx; 99aa32a955SDavid Daney struct cvmx_mixx_ctl_s cn63xxp1; 100a7187a2fSDavid Daney }; 101a7187a2fSDavid Daney 102a7187a2fSDavid Daney union cvmx_mixx_intena { 103a7187a2fSDavid Daney uint64_t u64; 104a7187a2fSDavid Daney struct cvmx_mixx_intena_s { 105aa32a955SDavid Daney uint64_t reserved_8_63:56; 106aa32a955SDavid Daney uint64_t tsena:1; 107a7187a2fSDavid Daney uint64_t orunena:1; 108a7187a2fSDavid Daney uint64_t irunena:1; 109a7187a2fSDavid Daney uint64_t data_drpena:1; 110a7187a2fSDavid Daney uint64_t ithena:1; 111a7187a2fSDavid Daney uint64_t othena:1; 112a7187a2fSDavid Daney uint64_t ivfena:1; 113a7187a2fSDavid Daney uint64_t ovfena:1; 114a7187a2fSDavid Daney } s; 115aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx { 116aa32a955SDavid Daney uint64_t reserved_7_63:57; 117aa32a955SDavid Daney uint64_t orunena:1; 118aa32a955SDavid Daney uint64_t irunena:1; 119aa32a955SDavid Daney uint64_t data_drpena:1; 120aa32a955SDavid Daney uint64_t ithena:1; 121aa32a955SDavid Daney uint64_t othena:1; 122aa32a955SDavid Daney uint64_t ivfena:1; 123aa32a955SDavid Daney uint64_t ovfena:1; 124aa32a955SDavid Daney } cn52xx; 125aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx cn52xxp1; 126aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx cn56xx; 127aa32a955SDavid Daney struct cvmx_mixx_intena_cn52xx cn56xxp1; 128aa32a955SDavid Daney struct cvmx_mixx_intena_s cn63xx; 129aa32a955SDavid Daney struct cvmx_mixx_intena_s cn63xxp1; 130a7187a2fSDavid Daney }; 131a7187a2fSDavid Daney 132a7187a2fSDavid Daney union cvmx_mixx_ircnt { 133a7187a2fSDavid Daney uint64_t u64; 134a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s { 135a7187a2fSDavid Daney uint64_t reserved_20_63:44; 136a7187a2fSDavid Daney uint64_t ircnt:20; 137a7187a2fSDavid Daney } s; 138a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn52xx; 139a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn52xxp1; 140a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn56xx; 141a7187a2fSDavid Daney struct cvmx_mixx_ircnt_s cn56xxp1; 142aa32a955SDavid Daney struct cvmx_mixx_ircnt_s cn63xx; 143aa32a955SDavid Daney struct cvmx_mixx_ircnt_s cn63xxp1; 144a7187a2fSDavid Daney }; 145a7187a2fSDavid Daney 146a7187a2fSDavid Daney union cvmx_mixx_irhwm { 147a7187a2fSDavid Daney uint64_t u64; 148a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s { 149a7187a2fSDavid Daney uint64_t reserved_40_63:24; 150a7187a2fSDavid Daney uint64_t ibplwm:20; 151a7187a2fSDavid Daney uint64_t irhwm:20; 152a7187a2fSDavid Daney } s; 153a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn52xx; 154a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn52xxp1; 155a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn56xx; 156a7187a2fSDavid Daney struct cvmx_mixx_irhwm_s cn56xxp1; 157aa32a955SDavid Daney struct cvmx_mixx_irhwm_s cn63xx; 158aa32a955SDavid Daney struct cvmx_mixx_irhwm_s cn63xxp1; 159a7187a2fSDavid Daney }; 160a7187a2fSDavid Daney 161a7187a2fSDavid Daney union cvmx_mixx_iring1 { 162a7187a2fSDavid Daney uint64_t u64; 163a7187a2fSDavid Daney struct cvmx_mixx_iring1_s { 164a7187a2fSDavid Daney uint64_t reserved_60_63:4; 165a7187a2fSDavid Daney uint64_t isize:20; 166aa32a955SDavid Daney uint64_t ibase:37; 167aa32a955SDavid Daney uint64_t reserved_0_2:3; 168aa32a955SDavid Daney } s; 169aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx { 170aa32a955SDavid Daney uint64_t reserved_60_63:4; 171aa32a955SDavid Daney uint64_t isize:20; 172a7187a2fSDavid Daney uint64_t reserved_36_39:4; 173a7187a2fSDavid Daney uint64_t ibase:33; 174a7187a2fSDavid Daney uint64_t reserved_0_2:3; 175aa32a955SDavid Daney } cn52xx; 176aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx cn52xxp1; 177aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx cn56xx; 178aa32a955SDavid Daney struct cvmx_mixx_iring1_cn52xx cn56xxp1; 179aa32a955SDavid Daney struct cvmx_mixx_iring1_s cn63xx; 180aa32a955SDavid Daney struct cvmx_mixx_iring1_s cn63xxp1; 181a7187a2fSDavid Daney }; 182a7187a2fSDavid Daney 183a7187a2fSDavid Daney union cvmx_mixx_iring2 { 184a7187a2fSDavid Daney uint64_t u64; 185a7187a2fSDavid Daney struct cvmx_mixx_iring2_s { 186a7187a2fSDavid Daney uint64_t reserved_52_63:12; 187a7187a2fSDavid Daney uint64_t itlptr:20; 188a7187a2fSDavid Daney uint64_t reserved_20_31:12; 189a7187a2fSDavid Daney uint64_t idbell:20; 190a7187a2fSDavid Daney } s; 191a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn52xx; 192a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn52xxp1; 193a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn56xx; 194a7187a2fSDavid Daney struct cvmx_mixx_iring2_s cn56xxp1; 195aa32a955SDavid Daney struct cvmx_mixx_iring2_s cn63xx; 196aa32a955SDavid Daney struct cvmx_mixx_iring2_s cn63xxp1; 197a7187a2fSDavid Daney }; 198a7187a2fSDavid Daney 199a7187a2fSDavid Daney union cvmx_mixx_isr { 200a7187a2fSDavid Daney uint64_t u64; 201a7187a2fSDavid Daney struct cvmx_mixx_isr_s { 202aa32a955SDavid Daney uint64_t reserved_8_63:56; 203aa32a955SDavid Daney uint64_t ts:1; 204a7187a2fSDavid Daney uint64_t orun:1; 205a7187a2fSDavid Daney uint64_t irun:1; 206a7187a2fSDavid Daney uint64_t data_drp:1; 207a7187a2fSDavid Daney uint64_t irthresh:1; 208a7187a2fSDavid Daney uint64_t orthresh:1; 209a7187a2fSDavid Daney uint64_t idblovf:1; 210a7187a2fSDavid Daney uint64_t odblovf:1; 211a7187a2fSDavid Daney } s; 212aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx { 213aa32a955SDavid Daney uint64_t reserved_7_63:57; 214aa32a955SDavid Daney uint64_t orun:1; 215aa32a955SDavid Daney uint64_t irun:1; 216aa32a955SDavid Daney uint64_t data_drp:1; 217aa32a955SDavid Daney uint64_t irthresh:1; 218aa32a955SDavid Daney uint64_t orthresh:1; 219aa32a955SDavid Daney uint64_t idblovf:1; 220aa32a955SDavid Daney uint64_t odblovf:1; 221aa32a955SDavid Daney } cn52xx; 222aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx cn52xxp1; 223aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx cn56xx; 224aa32a955SDavid Daney struct cvmx_mixx_isr_cn52xx cn56xxp1; 225aa32a955SDavid Daney struct cvmx_mixx_isr_s cn63xx; 226aa32a955SDavid Daney struct cvmx_mixx_isr_s cn63xxp1; 227a7187a2fSDavid Daney }; 228a7187a2fSDavid Daney 229a7187a2fSDavid Daney union cvmx_mixx_orcnt { 230a7187a2fSDavid Daney uint64_t u64; 231a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s { 232a7187a2fSDavid Daney uint64_t reserved_20_63:44; 233a7187a2fSDavid Daney uint64_t orcnt:20; 234a7187a2fSDavid Daney } s; 235a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn52xx; 236a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn52xxp1; 237a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn56xx; 238a7187a2fSDavid Daney struct cvmx_mixx_orcnt_s cn56xxp1; 239aa32a955SDavid Daney struct cvmx_mixx_orcnt_s cn63xx; 240aa32a955SDavid Daney struct cvmx_mixx_orcnt_s cn63xxp1; 241a7187a2fSDavid Daney }; 242a7187a2fSDavid Daney 243a7187a2fSDavid Daney union cvmx_mixx_orhwm { 244a7187a2fSDavid Daney uint64_t u64; 245a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s { 246a7187a2fSDavid Daney uint64_t reserved_20_63:44; 247a7187a2fSDavid Daney uint64_t orhwm:20; 248a7187a2fSDavid Daney } s; 249a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn52xx; 250a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn52xxp1; 251a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn56xx; 252a7187a2fSDavid Daney struct cvmx_mixx_orhwm_s cn56xxp1; 253aa32a955SDavid Daney struct cvmx_mixx_orhwm_s cn63xx; 254aa32a955SDavid Daney struct cvmx_mixx_orhwm_s cn63xxp1; 255a7187a2fSDavid Daney }; 256a7187a2fSDavid Daney 257a7187a2fSDavid Daney union cvmx_mixx_oring1 { 258a7187a2fSDavid Daney uint64_t u64; 259a7187a2fSDavid Daney struct cvmx_mixx_oring1_s { 260a7187a2fSDavid Daney uint64_t reserved_60_63:4; 261a7187a2fSDavid Daney uint64_t osize:20; 262aa32a955SDavid Daney uint64_t obase:37; 263aa32a955SDavid Daney uint64_t reserved_0_2:3; 264aa32a955SDavid Daney } s; 265aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx { 266aa32a955SDavid Daney uint64_t reserved_60_63:4; 267aa32a955SDavid Daney uint64_t osize:20; 268a7187a2fSDavid Daney uint64_t reserved_36_39:4; 269a7187a2fSDavid Daney uint64_t obase:33; 270a7187a2fSDavid Daney uint64_t reserved_0_2:3; 271aa32a955SDavid Daney } cn52xx; 272aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx cn52xxp1; 273aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx cn56xx; 274aa32a955SDavid Daney struct cvmx_mixx_oring1_cn52xx cn56xxp1; 275aa32a955SDavid Daney struct cvmx_mixx_oring1_s cn63xx; 276aa32a955SDavid Daney struct cvmx_mixx_oring1_s cn63xxp1; 277a7187a2fSDavid Daney }; 278a7187a2fSDavid Daney 279a7187a2fSDavid Daney union cvmx_mixx_oring2 { 280a7187a2fSDavid Daney uint64_t u64; 281a7187a2fSDavid Daney struct cvmx_mixx_oring2_s { 282a7187a2fSDavid Daney uint64_t reserved_52_63:12; 283a7187a2fSDavid Daney uint64_t otlptr:20; 284a7187a2fSDavid Daney uint64_t reserved_20_31:12; 285a7187a2fSDavid Daney uint64_t odbell:20; 286a7187a2fSDavid Daney } s; 287a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn52xx; 288a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn52xxp1; 289a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn56xx; 290a7187a2fSDavid Daney struct cvmx_mixx_oring2_s cn56xxp1; 291aa32a955SDavid Daney struct cvmx_mixx_oring2_s cn63xx; 292aa32a955SDavid Daney struct cvmx_mixx_oring2_s cn63xxp1; 293a7187a2fSDavid Daney }; 294a7187a2fSDavid Daney 295a7187a2fSDavid Daney union cvmx_mixx_remcnt { 296a7187a2fSDavid Daney uint64_t u64; 297a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s { 298a7187a2fSDavid Daney uint64_t reserved_52_63:12; 299a7187a2fSDavid Daney uint64_t iremcnt:20; 300a7187a2fSDavid Daney uint64_t reserved_20_31:12; 301a7187a2fSDavid Daney uint64_t oremcnt:20; 302a7187a2fSDavid Daney } s; 303a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn52xx; 304a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn52xxp1; 305a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn56xx; 306a7187a2fSDavid Daney struct cvmx_mixx_remcnt_s cn56xxp1; 307aa32a955SDavid Daney struct cvmx_mixx_remcnt_s cn63xx; 308aa32a955SDavid Daney struct cvmx_mixx_remcnt_s cn63xxp1; 309aa32a955SDavid Daney }; 310aa32a955SDavid Daney 311aa32a955SDavid Daney union cvmx_mixx_tsctl { 312aa32a955SDavid Daney uint64_t u64; 313aa32a955SDavid Daney struct cvmx_mixx_tsctl_s { 314aa32a955SDavid Daney uint64_t reserved_21_63:43; 315aa32a955SDavid Daney uint64_t tsavl:5; 316aa32a955SDavid Daney uint64_t reserved_13_15:3; 317aa32a955SDavid Daney uint64_t tstot:5; 318aa32a955SDavid Daney uint64_t reserved_5_7:3; 319aa32a955SDavid Daney uint64_t tscnt:5; 320aa32a955SDavid Daney } s; 321aa32a955SDavid Daney struct cvmx_mixx_tsctl_s cn63xx; 322aa32a955SDavid Daney struct cvmx_mixx_tsctl_s cn63xxp1; 323aa32a955SDavid Daney }; 324aa32a955SDavid Daney 325aa32a955SDavid Daney union cvmx_mixx_tstamp { 326aa32a955SDavid Daney uint64_t u64; 327aa32a955SDavid Daney struct cvmx_mixx_tstamp_s { 328aa32a955SDavid Daney uint64_t tstamp:64; 329aa32a955SDavid Daney } s; 330aa32a955SDavid Daney struct cvmx_mixx_tstamp_s cn63xx; 331aa32a955SDavid Daney struct cvmx_mixx_tstamp_s cn63xxp1; 332a7187a2fSDavid Daney }; 333a7187a2fSDavid Daney 334a7187a2fSDavid Daney #endif 335