| # -*- Mode: Python -*- | |
| # vim: filetype=python | |
| # | |
| # This work is licensed under the terms of the GNU GPL, version 2 or later. | |
| # See the COPYING file in the top-level directory. | |
| ## | |
| # ******************** | |
| # Common machine types | |
| # ******************** | |
| ## | |
| ## | |
| # @S390CpuEntitlement: | |
| # An enumeration of CPU entitlements that can be assumed by a | |
| # virtual S390 CPU | |
| # | |
| # Since: 8.2 | |
| ## | |
| { 'enum': 'S390CpuEntitlement', | |
| 'data': [ 'auto', 'low', 'medium', 'high' ] } | |
| ## | |
| # @CpuTopologyLevel: | |
| # An enumeration of CPU topology levels. | |
| # | |
| # @thread: thread level, which would also be called SMT level or | |
| # logical processor level. The @threads option in | |
| # `SMPConfiguration` is used to configure the topology of this | |
| # level. | |
| # | |
| # @core: core level. The @cores option in `SMPConfiguration` is used | |
| # to configure the topology of this level. | |
| # | |
| # @module: module level. The @modules option in `SMPConfiguration` is | |
| # used to configure the topology of this level. | |
| # | |
| # @cluster: cluster level. The @clusters option in `SMPConfiguration` | |
| # is used to configure the topology of this level. | |
| # | |
| # @die: die level. The @dies option in `SMPConfiguration` is used to | |
| # configure the topology of this level. | |
| # | |
| # @socket: socket level, which would also be called package level. | |
| # The @sockets option in `SMPConfiguration` is used to configure | |
| # the topology of this level. | |
| # | |
| # @book: book level. The @books option in `SMPConfiguration` is used | |
| # to configure the topology of this level. | |
| # | |
| # @drawer: drawer level. The @drawers option in `SMPConfiguration` is | |
| # used to configure the topology of this level. | |
| # | |
| # @default: default level. Some architectures will have default | |
| # topology settings (e.g., cache topology), and this special | |
| # level means following the architecture-specific settings. | |
| # | |
| # Since: 9.2 | |
| ## | |
| { 'enum': 'CpuTopologyLevel', | |
| 'data': [ 'thread', 'core', 'module', 'cluster', 'die', | |
| 'socket', 'book', 'drawer', 'default' ] } | |
| ## | |
| # @CacheLevelAndType: | |
| # Caches a system may have. The enumeration value here is the | |
| # combination of cache level and cache type. | |
| # | |
| # @l1d: L1 data cache. | |
| # | |
| # @l1i: L1 instruction cache. | |
| # | |
| # @l2: L2 (unified) cache. | |
| # | |
| # @l3: L3 (unified) cache | |
| # | |
| # Since: 9.2 | |
| ## | |
| { 'enum': 'CacheLevelAndType', | |
| 'data': [ 'l1d', 'l1i', 'l2', 'l3' ] } | |
| ## | |
| # @SmpCacheProperties: | |
| # Cache information for SMP system. | |
| # | |
| # @cache: Cache name, which is the combination of cache level and | |
| # cache type. | |
| # | |
| # @topology: Cache topology level. It accepts the CPU topology | |
| # enumeration as the parameter, i.e., CPUs in the same | |
| # topology container share the same cache. | |
| # | |
| # Since: 9.2 | |
| ## | |
| { 'struct': 'SmpCacheProperties', | |
| 'data': { | |
| 'cache': 'CacheLevelAndType', | |
| 'topology': 'CpuTopologyLevel' } } | |
| ## | |
| # @SmpCachePropertiesWrapper: | |
| # List wrapper of `SmpCacheProperties`. | |
| # | |
| # @caches: the list of `SmpCacheProperties`. | |
| # | |
| # Since: 9.2 | |
| ## | |
| { 'struct': 'SmpCachePropertiesWrapper', | |
| 'data': { 'caches': ['SmpCacheProperties'] } } |