summaryrefslogtreecommitdiffstats
path: root/README
blob: 02d4cc4075a856a44427487bff0bf997c0cc33f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    libvirt Python Bindings README
    ==============================

Most of the libvirt python binding code is automatically generated
using the script  generator.py, and the API description from
docs/libvirt-api.xml


Manually written files:

 - libvirt-override.c: methods where the C binding needs to be hand crafted
 - libvirt-override.py: global methods where the C and python bindings have different args
 - libvirt-override-api.xml: methods where the auto-extracted API docs are not
   suitable for python auto-generator. Overriding this if the method is going
   into libvirt-override.c, but we still want auto-generated libvirt-override.py
 - libvirt-override-virConnect.py: virConnect class methods
 - typewrappers.h,.c: Python object wrappers for each libvirt C object


Auto-generated files:

  - libvirt.py: The main python binding. Comprises auto-generated code, along
    with contents from libvirt-override.py and libvirt-override-virConnect.py
  - libvirt.c, libvirt.h: The C glue layer for the python binding. Comprises
    auto-generated code, along with libvirt-override.c
  - libvirt-export.c: List of auto-generated C methods, included into
    the libvirt-override.c method table
72' href='#n72'>72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
/*
 * multiverse.h
 *
 * VME driver for Multiverse
 *
 * Author : Sangmoon Kim
 *	    dogoil@etinsys.com
 *
 * Copyright 2005 ETIN SYSTEMS Co.,Ltd.
 *
 * This program is free software; you can redistribute	it and/or modify it
 * under  the terms of	the GNU General Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

#ifndef __MULTIVERSE_H__
#define __MULTIVERSE_H__

#define VME_A32_MSTR_BUS	0x90000000
#define VME_A32_MSTR_SIZE	0x01000000

#define VME_A32_SLV_SIZE	0x01000000

#define VME_A32_SLV_BUS		0x90000000
#define VME_A24_SLV_BUS		0x00000000
#define VME_A16_SLV_BUS		0x00000000

#define VME_A32_SLV_LOCAL	0x00000000
#define VME_A24_SLV_LOCAL	0x00000000
#define VME_A16_SLV_LOCAL	0x00000000

#define A32_SLV_WINDOW
#undef	A24_SLV_WINDOW
#undef	A16_SLV_WINDOW
#undef	REG_SLV_WINDOW

/* PCI Registers */

#define P_IMG_CTRL0		0x100
#define P_BA0			0x104
#define P_AM0			0x108
#define P_TA0			0x10C
#define P_IMG_CTRL1		0x110
#define P_BA1			0x114
#define P_AM1			0x118
#define P_TA1			0x11C
#define P_IMG_CTRL2		0x120
#define P_BA2			0x124
#define P_AM2			0x128
#define P_TA2			0x12C
#define P_IMG_CTRL3		0x130
#define P_BA3			0x134
#define P_AM3			0x138
#define P_TA3			0x13C
#define P_IMG_CTRL4		0x140
#define P_BA4			0x144
#define P_AM4			0x148
#define P_TA4			0x14C
#define P_IMG_CTRL5		0x150
#define P_BA5			0x154
#define P_AM5			0x158
#define P_TA5			0x15C
#define P_ERR_CS		0x160
#define P_ERR_ADDR		0x164
#define P_ERR_DATA		0x168

#define WB_CONF_SPC_BAR		0x180
#define W_IMG_CTRL1		0x184
#define W_BA1			0x188
#define W_AM1			0x18C
#define W_TA1			0x190
#define W_IMG_CTRL2		0x194
#define W_BA2			0x198
#define W_AM2			0x19C
#define W_TA2			0x1A0
#define W_IMG_CTRL3		0x1A4
#define W_BA3			0x1A8
#define W_AM3			0x1AC
#define W_TA3			0x1B0
#define W_IMG_CTRL4		0x1B4
#define W_BA4			0x1B8
#define W_AM4			0x1BC
#define W_TA4			0x1C0
#define W_IMG_CTRL5		0x1C4
#define W_BA5			0x1C8
#define W_AM5			0x1CC
#define W_TA5			0x1D0
#define W_ERR_CS		0x1D4
#define W_ERR_ADDR		0x1D8
#define W_ERR_DATA		0x1DC
#define CNF_ADDR		0x1E0
#define CNF_DATA		0x1E4
#define INT_ACK			0x1E8
#define ICR			0x1EC
#define ISR			0x1F0

/* VME registers */

#define VME_SLAVE32_AM		0x03
#define VME_SLAVE24_AM		0x02
#define VME_SLAVE16_AM		0x01
#define VME_SLAVE_REG_AM	0x00
#define VME_SLAVE32_A		0x07
#define VME_SLAVE24_A		0x06
#define VME_SLAVE16_A		0x05
#define VME_SLAVE_REG_A		0x04
#define VME_SLAVE32_MASK	0x0B
#define VME_SLAVE24_MASK	0x0A
#define VME_SLAVE16_MASK	0x09
#define VME_SLAVE_REG_MASK	0x08
#define VME_SLAVE32_EN		0x0F
#define VME_SLAVE24_EN		0x0E
#define VME_SLAVE16_EN		0x0D
#define VME_SLAVE_REG_EN	0x0C
#define VME_MASTER32_AM		0x13
#define VME_MASTER24_AM		0x12
#define VME_MASTER16_AM		0x11
#define VME_MASTER_REG_AM	0x10
#define VME_RMW_ADRS		0x14
#define VME_MBOX		0x18
#define VME_STATUS		0x1E
#define VME_CTRL		0x1C
#define VME_IRQ			0x20
#define VME_INT_EN		0x21
#define VME_INT			0x22
#define VME_IRQ1_REG		0x24
#define VME_IRQ2_REG		0x28
#define VME_IRQ3_REG		0x2C
#define VME_IRQ4_REG		0x30
#define VME_IRQ5_REG		0x34
#define VME_IRQ6_REG		0x38
#define VME_IRQ7_REG		0x3C

/* VME control register */

#define VME_CTRL_BRDRST		0x01
#define VME_CTRL_SYSRST		0x02
#define VME_CTRL_RMW		0x04
#define VME_CTRL_SHORT_D	0x08
#define VME_CTRL_SYSFAIL	0x10
#define VME_CTRL_VOWN		0x20
#define VME_CTRL_A16_REG_MODE	0x40

/* VME status register */

#define VME_STATUS_SYSCON	0x01
#define VME_STATUS_SYSFAIL	0x02
#define VME_STATUS_ACFAIL	0x04
#define VME_STATUS_SYSRST	0x08
#define VME_STATUS_VOWN		0x10

/* Interrupt types */

#define LVL1			0x0002
#define LVL2			0x0004
#define LVL3			0x0008
#define LVL4			0x0010
#define LVL5			0x0020
#define LVL6			0x0040
#define LVL7			0x0080
#define MULTIVERSE_INTI_INT	0x0100
#define MULTIVERSE_WB_INT	0x0200
#define MULTIVERSE_PCI_INT	0x0400

/* interrupt acknowledge */

#define VME_IACK1		0x04
#define VME_IACK2		0x08
#define VME_IACK3		0x0c
#define VME_IACK4		0x10
#define VME_IACK5		0x14
#define VME_IACK6		0x18
#define VME_IACK7		0x1c

#endif /* __MULTIVERSE_H__ */