diff options
| author | Gleb Natapov <gleb@redhat.com> | 2013-04-28 05:50:07 -0400 |
|---|---|---|
| committer | Gleb Natapov <gleb@redhat.com> | 2013-04-28 05:50:07 -0400 |
| commit | 064d1afaa5a60fc391d0b4b77599fc8f63f99cd3 (patch) | |
| tree | 2e640cdfa50b0048c52e021f07a8b24560251b26 | |
| parent | 730dca42c1d363c939da18c1499c7327c66e2b37 (diff) | |
| parent | 8b78645c93b5d469e8006d68dbc92edc2640c654 (diff) | |
Merge git://github.com/agraf/linux-2.6.git kvm-ppc-next into queue
53 files changed, 5549 insertions, 449 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 976eb650e7ef..c09d1832e935 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
| @@ -1792,6 +1792,23 @@ registers, find a list below: | |||
| 1792 | PPC | KVM_REG_PPC_TSR | 32 | 1792 | PPC | KVM_REG_PPC_TSR | 32 |
| 1793 | PPC | KVM_REG_PPC_OR_TSR | 32 | 1793 | PPC | KVM_REG_PPC_OR_TSR | 32 |
| 1794 | PPC | KVM_REG_PPC_CLEAR_TSR | 32 | 1794 | PPC | KVM_REG_PPC_CLEAR_TSR | 32 |
| 1795 | PPC | KVM_REG_PPC_MAS0 | 32 | ||
| 1796 | PPC | KVM_REG_PPC_MAS1 | 32 | ||
| 1797 | PPC | KVM_REG_PPC_MAS2 | 64 | ||
| 1798 | PPC | KVM_REG_PPC_MAS7_3 | 64 | ||
| 1799 | PPC | KVM_REG_PPC_MAS4 | 32 | ||
| 1800 | PPC | KVM_REG_PPC_MAS6 | 32 | ||
| 1801 | PPC | KVM_REG_PPC_MMUCFG | 32 | ||
| 1802 | PPC | KVM_REG_PPC_TLB0CFG | 32 | ||
| 1803 | PPC | KVM_REG_PPC_TLB1CFG | 32 | ||
| 1804 | PPC | KVM_REG_PPC_TLB2CFG | 32 | ||
| 1805 | PPC | KVM_REG_PPC_TLB3CFG | 32 | ||
| 1806 | PPC | KVM_REG_PPC_TLB0PS | 32 | ||
| 1807 | PPC | KVM_REG_PPC_TLB1PS | 32 | ||
| 1808 | PPC | KVM_REG_PPC_TLB2PS | 32 | ||
| 1809 | PPC | KVM_REG_PPC_TLB3PS | 32 | ||
| 1810 | PPC | KVM_REG_PPC_EPTCFG | 32 | ||
| 1811 | PPC | KVM_REG_PPC_ICP_STATE | 64 | ||
| 1795 | 1812 | ||
| 1796 | ARM registers are mapped using the lower 32 bits. The upper 16 of that | 1813 | ARM registers are mapped using the lower 32 bits. The upper 16 of that |
| 1797 | is the register group type, or coprocessor number: | 1814 | is the register group type, or coprocessor number: |
| @@ -2173,6 +2190,76 @@ header; first `n_valid' valid entries with contents from the data | |||
| 2173 | written, then `n_invalid' invalid entries, invalidating any previously | 2190 | written, then `n_invalid' invalid entries, invalidating any previously |
| 2174 | valid entries found. | 2191 | valid entries found. |
| 2175 | 2192 | ||
| 2193 | 4.79 KVM_CREATE_DEVICE | ||
| 2194 | |||
| 2195 | Capability: KVM_CAP_DEVICE_CTRL | ||
| 2196 | Type: vm ioctl | ||
| 2197 | Parameters: struct kvm_create_device (in/out) | ||
| 2198 | Returns: 0 on success, -1 on error | ||
| 2199 | Errors: | ||
| 2200 | ENODEV: The device type is unknown or unsupported | ||
| 2201 | EEXIST: Device already created, and this type of device may not | ||
| 2202 | be instantiated multiple times | ||
| 2203 | |||
| 2204 | Other error conditions may be defined by individual device types or | ||
| 2205 | have their standard meanings. | ||
| 2206 | |||
| 2207 | Creates an emulated device in the kernel. The file descriptor returned | ||
| 2208 | in fd can be used with KVM_SET/GET/HAS_DEVICE_ATTR. | ||
| 2209 | |||
| 2210 | If the KVM_CREATE_DEVICE_TEST flag is set, only test whether the | ||
| 2211 | device type is supported (not necessarily whether it can be created | ||
| 2212 | in the current vm). | ||
| 2213 | |||
| 2214 | Individual devices should not define flags. Attributes should be used | ||
| 2215 | for specifying any behavior that is not implied by the device type | ||
| 2216 | number. | ||
| 2217 | |||
| 2218 | struct kvm_create_device { | ||
| 2219 | __u32 type; /* in: KVM_DEV_TYPE_xxx */ | ||
| 2220 | __u32 fd; /* out: device handle */ | ||
| 2221 | __u32 flags; /* in: KVM_CREATE_DEVICE_xxx */ | ||
| 2222 | }; | ||
| 2223 | |||
| 2224 | 4.80 KVM_SET_DEVICE_ATTR/KVM_GET_DEVICE_ATTR | ||
| 2225 | |||
| 2226 | Capability: KVM_CAP_DEVICE_CTRL | ||
| 2227 | Type: device ioctl | ||
| 2228 | Parameters: struct kvm_device_attr | ||
| 2229 | Returns: 0 on success, -1 on error | ||
| 2230 | Errors: | ||
| 2231 | ENXIO: The group or attribute is unknown/unsupported for this device | ||
| 2232 | EPERM: The attribute cannot (currently) be accessed this way | ||
| 2233 | (e.g. read-only attribute, or attribute that only makes | ||
| 2234 | sense when the device is in a different state) | ||
| 2235 | |||
| 2236 | Other error conditions may be defined by individual device types. | ||
| 2237 | |||
| 2238 | Gets/sets a specified piece of device configuration and/or state. The | ||
| 2239 | semantics are device-specific. See individual device documentation in | ||
| 2240 | the "devices" directory. As with ONE_REG, the size of the data | ||
| 2241 | transferred is defined by the particular attribute. | ||
| 2242 | |||
| 2243 | struct kvm_device_attr { | ||
| 2244 | __u32 flags; /* no flags currently defined */ | ||
| 2245 | __u32 group; /* device-defined */ | ||
| 2246 | __u64 attr; /* group-defined */ | ||
| 2247 | __u64 addr; /* userspace address of attr data */ | ||
| 2248 | }; | ||
| 2249 | |||
| 2250 | 4.81 KVM_HAS_DEVICE_ATTR | ||
| 2251 | |||
| 2252 | Capability: KVM_CAP_DEVICE_CTRL | ||
| 2253 | Type: device ioctl | ||
| 2254 | Parameters: struct kvm_device_attr | ||
| 2255 | Returns: 0 on success, -1 on error | ||
| 2256 | Errors: | ||
| 2257 | ENXIO: The group or attribute is unknown/unsupported for this device | ||
| 2258 | |||
| 2259 | Tests whether a device supports a particular attribute. A successful | ||
| 2260 | return indicates the attribute is implemented. It does not necessarily | ||
| 2261 | indicate that the attribute can be read or written in the device's | ||
| 2262 | current state. "addr" is ignored. | ||
| 2176 | 2263 | ||
| 2177 | 4.77 KVM_ARM_VCPU_INIT | 2264 | 4.77 KVM_ARM_VCPU_INIT |
| 2178 | 2265 | ||
| @@ -2255,6 +2342,25 @@ and distributor interface, the ioctl must be called after calling | |||
