xtalk.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * xtalk.h -- platform-independent crosstalk interface, derived from
  7. * IRIX <sys/PCI/bridge.h>, revision 1.38.
  8. *
  9. * Copyright (C) 1995 - 1997, 1999 Silcon Graphics, Inc.
  10. * Copyright (C) 1999 Ralf Baechle ([email protected])
  11. */
  12. #ifndef _ASM_XTALK_XTALK_H
  13. #define _ASM_XTALK_XTALK_H
  14. #ifndef __ASSEMBLY__
  15. /*
  16. * User-level device driver visible types
  17. */
  18. typedef char xwidgetnum_t; /* xtalk widget number (0..15) */
  19. #define XWIDGET_NONE -1
  20. typedef int xwidget_part_num_t; /* xtalk widget part number */
  21. #define XWIDGET_PART_NUM_NONE -1
  22. typedef int xwidget_rev_num_t; /* xtalk widget revision number */
  23. #define XWIDGET_REV_NUM_NONE -1
  24. typedef int xwidget_mfg_num_t; /* xtalk widget manufacturing ID */
  25. #define XWIDGET_MFG_NUM_NONE -1
  26. typedef struct xtalk_piomap_s *xtalk_piomap_t;
  27. /* It is often convenient to fold the XIO target port
  28. * number into the XIO address.
  29. */
  30. #define XIO_NOWHERE (0xFFFFFFFFFFFFFFFFull)
  31. #define XIO_ADDR_BITS (0x0000FFFFFFFFFFFFull)
  32. #define XIO_PORT_BITS (0xF000000000000000ull)
  33. #define XIO_PORT_SHIFT (60)
  34. #define XIO_PACKED(x) (((x)&XIO_PORT_BITS) != 0)
  35. #define XIO_ADDR(x) ((x)&XIO_ADDR_BITS)
  36. #define XIO_PORT(x) ((xwidgetnum_t)(((x)&XIO_PORT_BITS) >> XIO_PORT_SHIFT))
  37. #define XIO_PACK(p, o) ((((uint64_t)(p))<<XIO_PORT_SHIFT) | ((o)&XIO_ADDR_BITS))
  38. #endif /* !__ASSEMBLY__ */
  39. #endif /* _ASM_XTALK_XTALK_H */