56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana/*
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * This file and its contents are supplied under the terms of the
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * Common Development and Distribution License ("CDDL"), version 1.0.
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * You may only use this file in accordance with the terms of version
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * 1.0 of the CDDL.
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana *
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * A full copy of the text of the CDDL should have accompanied this
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * source. A copy of the CDDL is also available via the Internet at
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * http://www.illumos.org/license/CDDL.
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana */
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana/*
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * This file is part of the Chelsio T4 support code.
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana *
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * Copyright (C) 2010-2013 Chelsio Communications. All rights reserved.
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana *
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * This program is distributed in the hope that it will be useful, but WITHOUT
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana * release for licensing terms and conditions.
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana */
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#ifndef __CXGBE_OSDEP_H
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define __CXGBE_OSDEP_H
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/ddi.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/sunddi.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/byteorder.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/cmn_err.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/pcie.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/sysmacros.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#include <sys/inttypes.h>
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana/* sys/user.h defines u, and that bothers us. */
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#undef u
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define isdigit(x) ((x) >= '0' && (x) <= '9')
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define isspace(x) ((x) == ' ' || (x) == '\t')
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define toupper(x) (((x) >= 'a' && (x) <= 'z') ? (x) - 'a' + 'A' : (x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define fls(x) ddi_fls(x)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define CH_ERR(sc, ...) cxgb_printf(sc->dip, CE_WARN, ##__VA_ARGS__)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define CH_WARN(sc, ...) cxgb_printf(sc->dip, CE_WARN, ##__VA_ARGS__)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define CH_WARN_RATELIMIT(sc, ...) cxgb_printf(sc->dip, CE_WARN, ##__VA_ARGS__)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define CH_ALERT(sc, ...) cxgb_printf(sc->dip, CE_NOTE, ##__VA_ARGS__)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_BMCR 0x00
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_BMSR 0x01
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_PHYSID1 0x02
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_PHYSID2 0x03
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_ADVERTISE 0x04
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_LPA 0x05
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_EXPANSION 0x06
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_CTRL1000 0x09
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_DCOUNTER 0x12
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_FCSCOUNTER 0x13
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_NWAYTEST 0x14
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_RERRCOUNTER 0x15
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_SREVISION 0x16
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_RESV1 0x17
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_LBRERROR 0x18
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_PHYADDR 0x19
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_RESV2 0x1a
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_TPISTATUS 0x1b
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define MII_NCONFIG 0x1c
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_RESV 0x007f
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_SPEED1000 0x0040
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_CTST 0x0080
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_FULLDPLX 0x0100
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_ANRESTART 0x0200
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_ISOLATE 0x0400
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_PDOWN 0x0800
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_ANENABLE 0x1000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_SPEED100 0x2000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_LOOPBACK 0x4000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMCR_RESET 0x8000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_ERCAP 0x0001
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_JCD 0x0002
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_LSTATUS 0x0004
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_ANEGCAPABLE 0x0008
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_RFAULT 0x0010
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_ANEGCOMPLETE 0x0020
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_RESV 0x07c0
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_10HALF 0x0800
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_10FULL 0x1000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_100HALF 0x2000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_100FULL 0x4000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define BMSR_100BASE4 0x8000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_SLCT 0x001f
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_CSMA 0x0001
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_10HALF 0x0020
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_1000XFULL 0x0020
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_10FULL 0x0040
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_1000XHALF 0x0040
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_100HALF 0x0080
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_1000XPAUSE 0x0080
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_100FULL 0x0100
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_1000XPSE_ASYM 0x0100
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_100BASE4 0x0200
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_PAUSE_CAP 0x0400
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_PAUSE_ASYM 0x0800
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_RESV 0x1c00
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_RFAULT 0x2000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_LPACK 0x4000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_NPAGE 0x8000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_1000FULL 0x0200
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISE_1000HALF 0x0100
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_CAP_ID_EXP PCI_CAP_ID_PCI_E
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_DEVCTL PCIE_DEVCTL
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_DEVCTL_PAYLOAD PCIE_DEVCTL_MAX_PAYLOAD_MASK
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_DEVCTL_READRQ PCIE_DEVCTL_MAX_READ_REQ_MASK
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_LNKCTL PCIE_LINKCTL
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_LNKSTA PCIE_LINKSTS
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_LNKSTA_CLS PCIE_LINKSTS_SPEED_MASK
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_EXP_LNKSTA_NLW PCIE_LINKSTS_NEG_WIDTH_MASK
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_VPD_ADDR 2
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_VPD_ADDR_F 0x8000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PCI_VPD_DATA 4
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define __devinit
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#ifndef ARRAY_SIZE
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ARRAY_SIZE(x) (sizeof (x) / sizeof ((x)[0]))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#endif
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define DIV_ROUND_UP(x, y) howmany(x, y)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define udelay(x) drv_usecwait(x)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define msleep(x) delay(drv_usectohz(1000ULL * (x)))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define mdelay(x) drv_usecwait(1000UL * (x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define le16_to_cpu(x) LE_16((uint16_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define le32_to_cpu(x) LE_32((uint32_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define le64_to_cpu(x) LE_64((uint64_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define cpu_to_le16(x) LE_16((uint16_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define cpu_to_le32(x) LE_32((uint32_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define cpu_to_le64(x) LE_64((uint64_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define be16_to_cpu(x) BE_16((uint16_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define be32_to_cpu(x) BE_32((uint32_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define be64_to_cpu(x) BE_64((uint64_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define cpu_to_be16(x) BE_16((uint16_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define cpu_to_be32(x) BE_32((uint32_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define cpu_to_be64(x) BE_64((uint64_t)(x))
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define swab32(x) BSWAP_32(x)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint8_t u8;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint16_t u16;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint32_t u32;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint64_t u64;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint8_t __u8;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint16_t __u16;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint32_t __u32;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint64_t __u64;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint8_t __be8;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint16_t __be16;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint32_t __be32;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef uint64_t __be64;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanatypedef boolean_t bool;
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define true B_TRUE
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define false B_FALSE
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#if defined(__sparc)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define __BIG_ENDIAN_BITFIELD
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PAGE_SIZE 8192
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PAGE_SHIFT 13
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define CACHE_LINE 64
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#else
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define __LITTLE_ENDIAN_BITFIELD
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PAGE_SIZE 4096
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define PAGE_SHIFT 12
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define CACHE_LINE 32
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#endif
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_10baseT_Half (1 << 0)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_10baseT_Full (1 << 1)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_100baseT_Half (1 << 2)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_100baseT_Full (1 << 3)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_1000baseT_Half (1 << 4)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_1000baseT_Full (1 << 5)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_Autoneg (1 << 6)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_TP (1 << 7)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_AUI (1 << 8)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_MII (1 << 9)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_FIBRE (1 << 10)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_BNC (1 << 11)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_10000baseT_Full (1 << 12)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_Pause (1 << 13)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SUPPORTED_Asym_Pause (1 << 14)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_10baseT_Half (1 << 0)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_10baseT_Full (1 << 1)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_100baseT_Half (1 << 2)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_100baseT_Full (1 << 3)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_1000baseT_Half (1 << 4)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_1000baseT_Full (1 << 5)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_Autoneg (1 << 6)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_TP (1 << 7)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_AUI (1 << 8)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_MII (1 << 9)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_FIBRE (1 << 10)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_BNC (1 << 11)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_10000baseT_Full (1 << 12)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_Pause (1 << 13)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define ADVERTISED_Asym_Pause (1 << 14)
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define AUTONEG_DISABLE 0
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define AUTONEG_ENABLE 1
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SPEED_10 10
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SPEED_100 100
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SPEED_1000 1000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define SPEED_10000 10000
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define DUPLEX_HALF 0
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#define DUPLEX_FULL 1
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanaint ilog2(long x);
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushanaunsigned char *strstrip(unsigned char *s);
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana
56b2bdd1f04d465cfe4a95b88ae5cba5884154e4Gireesh Nagabhushana#endif /* __CXGBE_OSDEP_H */