xtalk.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  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. #endif /* !__ASSEMBLY__ */
  39. #endif /* _ASM_XTALK_XTALK_H */