Annotation of sys/arch/sh/dev/shpcicvar.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: shpcicvar.h,v 1.3 2006/10/19 03:36:38 drahn Exp $ */
! 2: /* $NetBSD: shpcicvar.h,v 1.6 2005/12/11 12:18:58 christos Exp $ */
! 3:
! 4: /*-
! 5: * Copyright (c) 2005 NONAKA Kimihiro
! 6: * All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: *
! 17: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
! 18: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 19: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 20: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
! 21: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 22: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 23: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 24: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 25: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 26: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 27: * SUCH DAMAGE.
! 28: */
! 29:
! 30: #ifndef SH_DEV_PCICVAR_H
! 31: #define SH_DEV_PCICVAR_H
! 32:
! 33: #include <machine/bus.h>
! 34:
! 35: bus_space_tag_t shpcic_get_bus_io_tag(void);
! 36: bus_space_tag_t shpcic_get_bus_mem_tag(void);
! 37: bus_dma_tag_t shpcic_get_bus_dma_tag(void);
! 38:
! 39: int shpcic_bus_maxdevs(void *v, int busno);
! 40: pcitag_t shpcic_make_tag(void *v, int bus, int device, int function);
! 41: void shpcic_decompose_tag(void *v, pcitag_t tag, int *bp, int *dp, int *fp);
! 42: pcireg_t shpcic_conf_read(void *v, pcitag_t tag, int reg);
! 43: void shpcic_conf_write(void *v, pcitag_t tag, int reg, pcireg_t data);
! 44:
! 45: int shpcic_set_intr_priority(int intr, int level);
! 46: void *shpcic_intr_establish(int evtcode, int (*ih_func)(void *), void *ih_arg,
! 47: const char *ih_name);
! 48: void shpcic_intr_disestablish(void *ih);
! 49:
! 50: struct config_bus_space {
! 51: u_int32_t bus_base;
! 52: u_int32_t bus_size;
! 53: int bus_io;
! 54: };
! 55:
! 56: struct shpcic_softc {
! 57: struct device s_dev;
! 58:
! 59: pci_chipset_tag_t sc_pci_chipset;
! 60:
! 61: /* Structures to do bus fixup */
! 62: int nbogus;
! 63: struct extent *extent_mem;
! 64: struct extent *extent_port;
! 65: struct config_bus_space sc_membus_space;
! 66: struct config_bus_space sc_iobus_space;
! 67: };
! 68:
! 69: void pci_addr_fixup(void *v, int maxbus);
! 70:
! 71: /*
! 72: * shpcic io/mem bus space
! 73: */
! 74: int shpcic_iomem_map(void *v, bus_addr_t bpa, bus_size_t size, int flags,
! 75: bus_space_handle_t *bshp);
! 76: void shpcic_iomem_unmap(void *v, bus_space_handle_t bsh, bus_size_t size);
! 77: int shpcic_iomem_subregion(void *v, bus_space_handle_t bsh, bus_size_t offset,
! 78: bus_size_t size, bus_space_handle_t *nbshp);
! 79: int shpcic_iomem_alloc(void *v, bus_addr_t rstart, bus_addr_t rend,
! 80: bus_size_t size, bus_size_t alignment, bus_size_t boundary, int flags,
! 81: bus_addr_t *bpap, bus_space_handle_t *bshp);
! 82: void shpcic_iomem_free(void *v, bus_space_handle_t bsh, bus_size_t size);
! 83:
! 84: /* read single */
! 85: uint8_t shpcic_io_read_1(void *v, bus_space_handle_t bsh, bus_size_t offset);
! 86: uint16_t shpcic_io_read_2(void *v, bus_space_handle_t bsh, bus_size_t offset);
! 87: uint32_t shpcic_io_read_4(void *v, bus_space_handle_t bsh, bus_size_t offset);
! 88: uint8_t shpcic_mem_read_1(void *v, bus_space_handle_t bsh, bus_size_t offset);
! 89: uint16_t shpcic_mem_read_2(void *v, bus_space_handle_t bsh, bus_size_t offset);
! 90: uint32_t shpcic_mem_read_4(void *v, bus_space_handle_t bsh, bus_size_t offset);
! 91:
! 92: /* read multi */
! 93: void shpcic_io_read_multi_1(void *v, bus_space_handle_t bsh,
! 94: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 95: void shpcic_io_read_multi_2(void *v, bus_space_handle_t bsh,
! 96: bus_size_t offset, uint16_t *addr, bus_size_t count);
! 97: void shpcic_io_read_multi_4(void *v, bus_space_handle_t bsh,
! 98: bus_size_t offset, uint32_t *addr, bus_size_t count);
! 99: void shpcic_mem_read_multi_1(void *v, bus_space_handle_t bsh,
! 100: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 101: void shpcic_mem_read_multi_2(void *v, bus_space_handle_t bsh,
! 102: bus_size_t offset, uint16_t *addr, bus_size_t count);
! 103: void shpcic_mem_read_multi_4(void *v, bus_space_handle_t bsh,
! 104: bus_size_t offset, uint32_t *addr, bus_size_t count);
! 105:
! 106: /* read raw multi */
! 107: void shpcic_io_read_raw_multi_2(void *v, bus_space_handle_t bsh,
! 108: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 109: void shpcic_io_read_raw_multi_4(void *v, bus_space_handle_t bsh,
! 110: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 111: void shpcic_mem_read_raw_multi_2(void *v, bus_space_handle_t bsh,
! 112: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 113: void shpcic_mem_read_raw_multi_4(void *v, bus_space_handle_t bsh,
! 114: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 115:
! 116: /* read region */
! 117: void shpcic_io_read_region_1(void *v, bus_space_handle_t bsh,
! 118: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 119: void shpcic_io_read_region_2(void *v, bus_space_handle_t bsh,
! 120: bus_size_t offset, uint16_t *addr, bus_size_t count);
! 121: void shpcic_io_read_region_4(void *v, bus_space_handle_t bsh,
! 122: bus_size_t offset, uint32_t *addr, bus_size_t count);
! 123: void shpcic_mem_read_region_1(void *v, bus_space_handle_t bsh,
! 124: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 125: void shpcic_mem_read_region_2(void *v, bus_space_handle_t bsh,
! 126: bus_size_t offset, uint16_t *addr, bus_size_t count);
! 127: void shpcic_mem_read_region_4(void *v, bus_space_handle_t bsh,
! 128: bus_size_t offset, uint32_t *addr, bus_size_t count);
! 129:
! 130: /* read raw region */
! 131: void shpcic_io_read_raw_region_2(void *v, bus_space_handle_t bsh,
! 132: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 133: void shpcic_io_read_raw_region_4(void *v, bus_space_handle_t bsh,
! 134: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 135: void shpcic_mem_read_raw_region_2(void *v, bus_space_handle_t bsh,
! 136: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 137: void shpcic_mem_read_raw_region_4(void *v, bus_space_handle_t bsh,
! 138: bus_size_t offset, uint8_t *addr, bus_size_t count);
! 139:
! 140: /* write single */
! 141: void shpcic_io_write_1(void *v, bus_space_handle_t bsh,
! 142: bus_size_t offset, uint8_t data);
! 143: void shpcic_io_write_2(void *v, bus_space_handle_t bsh,
! 144: bus_size_t offset, uint16_t data);
! 145: void shpcic_io_write_4(void *v, bus_space_handle_t bsh,
! 146: bus_size_t offset, uint32_t data);
! 147: void shpcic_mem_write_1(void *v, bus_space_handle_t bsh,
! 148: bus_size_t offset, uint8_t data);
! 149: void shpcic_mem_write_2(void *v, bus_space_handle_t bsh,
! 150: bus_size_t offset, uint16_t data);
! 151: void shpcic_mem_write_4(void *v, bus_space_handle_t bsh,
! 152: bus_size_t offset, uint32_t data);
! 153:
! 154: /* write multi */
! 155: void shpcic_io_write_multi_1(void *v, bus_space_handle_t bsh,
! 156: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 157: void shpcic_io_write_multi_2(void *v, bus_space_handle_t bsh,
! 158: bus_size_t offset, const uint16_t *addr, bus_size_t count);
! 159: void shpcic_io_write_multi_4(void *v, bus_space_handle_t bsh,
! 160: bus_size_t offset, const uint32_t *addr, bus_size_t count);
! 161: void shpcic_mem_write_multi_1(void *v, bus_space_handle_t bsh,
! 162: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 163: void shpcic_mem_write_multi_2(void *v, bus_space_handle_t bsh,
! 164: bus_size_t offset, const uint16_t *addr, bus_size_t count);
! 165: void shpcic_mem_write_multi_4(void *v, bus_space_handle_t bsh,
! 166: bus_size_t offset, const uint32_t *addr, bus_size_t count);
! 167:
! 168: /* write raw multi */
! 169: void shpcic_io_write_raw_multi_2(void *v, bus_space_handle_t bsh,
! 170: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 171: void shpcic_io_write_raw_multi_4(void *v, bus_space_handle_t bsh,
! 172: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 173: void shpcic_mem_write_raw_multi_2(void *v, bus_space_handle_t bsh,
! 174: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 175: void shpcic_mem_write_raw_multi_4(void *v, bus_space_handle_t bsh,
! 176: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 177:
! 178: /* write region */
! 179: void shpcic_io_write_region_1(void *v, bus_space_handle_t bsh,
! 180: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 181: void shpcic_io_write_region_2(void *v, bus_space_handle_t bsh,
! 182: bus_size_t offset, const uint16_t *addr, bus_size_t count);
! 183: void shpcic_io_write_region_4(void *v, bus_space_handle_t bsh,
! 184: bus_size_t offset, const uint32_t *addr, bus_size_t count);
! 185: void shpcic_mem_write_region_1(void *v, bus_space_handle_t bsh,
! 186: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 187: void shpcic_mem_write_region_2(void *v, bus_space_handle_t bsh,
! 188: bus_size_t offset, const uint16_t *addr, bus_size_t count);
! 189: void shpcic_mem_write_region_4(void *v, bus_space_handle_t bsh,
! 190: bus_size_t offset, const uint32_t *addr, bus_size_t count);
! 191:
! 192: /* write raw region */
! 193: void shpcic_io_write_raw_region_2(void *v, bus_space_handle_t bsh,
! 194: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 195: void shpcic_io_write_raw_region_4(void *v, bus_space_handle_t bsh,
! 196: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 197: void shpcic_mem_write_raw_region_2(void *v, bus_space_handle_t bsh,
! 198: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 199: void shpcic_mem_write_raw_region_4(void *v, bus_space_handle_t bsh,
! 200: bus_size_t offset, const uint8_t *addr, bus_size_t count);
! 201:
! 202: /* set multi */
! 203: void shpcic_io_set_multi_1(void *v, bus_space_handle_t bsh,
! 204: bus_size_t offset, uint8_t val, bus_size_t count);
! 205: void shpcic_io_set_multi_2(void *v, bus_space_handle_t bsh,
! 206: bus_size_t offset, uint16_t val, bus_size_t count);
! 207: void shpcic_io_set_multi_4(void *v, bus_space_handle_t bsh,
! 208: bus_size_t offset, uint32_t val, bus_size_t count);
! 209: void shpcic_mem_set_multi_1(void *v, bus_space_handle_t bsh,
! 210: bus_size_t offset, uint8_t val, bus_size_t count);
! 211: void shpcic_mem_set_multi_2(void *v, bus_space_handle_t bsh,
! 212: bus_size_t offset, uint16_t val, bus_size_t count);
! 213: void shpcic_mem_set_multi_4(void *v, bus_space_handle_t bsh,
! 214: bus_size_t offset, uint32_t val, bus_size_t count);
! 215:
! 216: /* set region */
! 217: void shpcic_io_set_region_1(void *v, bus_space_handle_t bsh,
! 218: bus_size_t offset, uint8_t val, bus_size_t count);
! 219: void shpcic_io_set_region_2(void *v, bus_space_handle_t bsh,
! 220: bus_size_t offset, uint16_t val, bus_size_t count);
! 221: void shpcic_io_set_region_4(void *v, bus_space_handle_t bsh,
! 222: bus_size_t offset, uint32_t val, bus_size_t count);
! 223: void shpcic_mem_set_region_1(void *v, bus_space_handle_t bsh,
! 224: bus_size_t offset, uint8_t val, bus_size_t count);
! 225: void shpcic_mem_set_region_2(void *v, bus_space_handle_t bsh,
! 226: bus_size_t offset, uint16_t val, bus_size_t count);
! 227: void shpcic_mem_set_region_4(void *v, bus_space_handle_t bsh,
! 228: bus_size_t offset, uint32_t val, bus_size_t count);
! 229:
! 230: /* copy region */
! 231: void shpcic_io_copy_region_1(void *v, bus_space_handle_t bsh1,
! 232: bus_size_t off1, bus_space_handle_t bsh2, bus_size_t off2,
! 233: bus_size_t count);
! 234: void shpcic_io_copy_region_2(void *v, bus_space_handle_t bsh1,
! 235: bus_size_t off1, bus_space_handle_t bsh2, bus_size_t off2,
! 236: bus_size_t count);
! 237: void shpcic_io_copy_region_4(void *v, bus_space_handle_t bsh1,
! 238: bus_size_t off1, bus_space_handle_t bsh2, bus_size_t off2,
! 239: bus_size_t count);
! 240: void shpcic_mem_copy_region_1(void *v, bus_space_handle_t bsh1,
! 241: bus_size_t off1, bus_space_handle_t bsh2, bus_size_t off2,
! 242: bus_size_t count);
! 243: void shpcic_mem_copy_region_2(void *v, bus_space_handle_t bsh1,
! 244: bus_size_t off1, bus_space_handle_t bsh2, bus_size_t off2,
! 245: bus_size_t count);
! 246: void shpcic_mem_copy_region_4(void *v, bus_space_handle_t bsh1,
! 247: bus_size_t off1, bus_space_handle_t bsh2, bus_size_t off2,
! 248: bus_size_t count);
! 249: #endif /* SH_DEV_PCICVAR_H */
CVSweb