linux/arch/ia64/include/asm/sn/tioce_provider.h
<<
>>
Prefs
   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