xtalk.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 (ralf@gnu.org)
  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. #ifdef CONFIG_PCI
  39. extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
  40. #else
  41. static inline int bridge_probe(nasid_t nasid, int widget, int masterwid)
  42. {
  43. return 0;
  44. }
  45. #endif
  46. #endif /* !__ASSEMBLY__ */
  47. #endif /* _ASM_XTALK_XTALK_H */