reg_list
vgic_register_read(struct hypctx *hypctx, struct vgic_register *reg_list,
if (reg_list[i].start <= reg && reg_list[i].end >= reg + size) {
offset = reg & (reg_list[i].size - 1);
if ((reg_list[i].flags & size) != 0) {
reg_list[i].read(hypctx, reg, rval, NULL);
vgic_register_write(struct hypctx *hypctx, struct vgic_register *reg_list,
if (reg_list[i].start <= reg && reg_list[i].end >= reg + size) {
offset = reg & (reg_list[i].size - 1);
if ((reg_list[i].flags & size) != 0) {
reg_list[i].write(hypctx, reg, offset,
TAILQ_HEAD(, reg_list) regs;
TAILQ_ENTRY(reg_list) next;
struct reg_list *regp;
struct reg_list *regp;
oct->reg_list.pci_win_wr_addr = LIO_CN23XX_SLI_WIN_WR_ADDR64;
oct->reg_list.pci_win_rd_addr_hi = LIO_CN23XX_SLI_WIN_RD_ADDR_HI;
oct->reg_list.pci_win_rd_addr_lo = LIO_CN23XX_SLI_WIN_RD_ADDR64;
oct->reg_list.pci_win_rd_addr = LIO_CN23XX_SLI_WIN_RD_ADDR64;
oct->reg_list.pci_win_wr_data_hi = LIO_CN23XX_SLI_WIN_WR_DATA_HI;
oct->reg_list.pci_win_wr_data_lo = LIO_CN23XX_SLI_WIN_WR_DATA_LO;
oct->reg_list.pci_win_wr_data = LIO_CN23XX_SLI_WIN_WR_DATA64;
oct->reg_list.pci_win_rd_data = LIO_CN23XX_SLI_WIN_RD_DATA64;
lio_write_csr32(oct, oct->reg_list.pci_win_rd_addr_hi, addrhi);
(void)lio_read_csr32(oct, oct->reg_list.pci_win_rd_addr_hi);
lio_write_csr32(oct, oct->reg_list.pci_win_rd_addr_lo,
(void)lio_read_csr32(oct, oct->reg_list.pci_win_rd_addr_lo);
val64 = lio_read_csr64(oct, oct->reg_list.pci_win_rd_data);
lio_write_csr64(oct, oct->reg_list.pci_win_wr_addr, addr);
lio_write_csr32(oct, oct->reg_list.pci_win_wr_data_hi, val >> 32);
(void)lio_read_csr32(oct, oct->reg_list.pci_win_wr_data_hi);
lio_write_csr32(oct, oct->reg_list.pci_win_wr_data_lo,
struct lio_reg_list reg_list;