• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/ia64/include/asm/sn/
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 * Copyright (c) 2003-2005 Silicon Graphics, Inc. All rights reserved.
7 */
8
9#ifndef _ASM_IA64_SN_CE_PROVIDER_H
10#define _ASM_IA64_SN_CE_PROVIDER_H
11
12#include <asm/sn/pcibus_provider_defs.h>
13#include <asm/sn/tioce.h>
14
15/*
16 * Common TIOCE structure shared between the prom and kernel
17 *
18 * DO NOT CHANGE THIS STRUCT WITHOUT MAKING CORRESPONDING CHANGES TO THE
19 * PROM VERSION.
20 */
21struct tioce_common {
22	struct pcibus_bussoft	ce_pcibus;	/* common pciio header */
23
24	u32		ce_rev;
25	u64		ce_kernel_private;
26	u64		ce_prom_private;
27};
28
29struct tioce_kernel {
30	struct tioce_common	*ce_common;
31	spinlock_t		ce_lock;
32	struct list_head	ce_dmamap_list;
33
34	u64		ce_ate40_shadow[TIOCE_NUM_M40_ATES];
35	u64		ce_ate3240_shadow[TIOCE_NUM_M3240_ATES];
36	u32		ce_ate3240_pagesize;
37
38	u8			ce_port1_secondary;
39
40	/* per-port resources */
41	struct {
42		int 		dirmap_refcnt;
43		u64	dirmap_shadow;
44	} ce_port[TIOCE_NUM_PORTS];
45};
46
47struct tioce_dmamap {
48	struct list_head	ce_dmamap_list;	/* headed by tioce_kernel */
49	u32		refcnt;
50
51	u64		nbytes;		/* # bytes mapped */
52
53	u64		ct_start;	/* coretalk start address */
54	u64		pci_start;	/* bus start address */
55
56	u64		__iomem *ate_hw;/* hw ptr of first ate in map */
57	u64		*ate_shadow;	/* shadow ptr of firat ate */
58	u16		ate_count;	/* # ate's in the map */
59};
60
61extern int tioce_init_provider(void);
62
63#endif  /* __ASM_IA64_SN_CE_PROVIDER_H */
64