On Wed, 2023-01-18 at 11:26 +0100, Thomas Huth wrote:
On 17/01/2023 17.56, Pierre Morel wrote:
On 1/10/23 15:29, Thomas Huth wrote:
On 05/01/2023 15.53, Pierre Morel wrote:
On interception of STSI(15.1.x) the System Information Block
(SYSIB) is built from the list of pre-ordered topology entries.
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
---
...
+typedef struct SysIBTl_container {
+ uint8_t nl;
+ uint8_t reserved[6];
+ uint8_t id;
+} QEMU_PACKED QEMU_ALIGNED(8) SysIBTl_container;
+QEMU_BUILD_BUG_ON(sizeof(SysIBTl_container) != 8);
+
+/* CPU type Topology List Entry */
+typedef struct SysIBTl_cpu {
+ uint8_t nl;
+ uint8_t reserved0[3];
+ uint8_t reserved1:5;
+ uint8_t dedicated:1;
+ uint8_t polarity:2;
Hmmm, yet another bitfield...
Yes, this is the firmware interface.
If it makes problem I can use masks and logic arithmetic
It depends ... if we are sure that this will ever only be used with KVM on
real s390x hardware, then bitfields are OK. If we think that this is
something that could be implemented in TCG, too, I'd scratch the bitfields
and use logic arithmetic instead...
Is there something like linux' bitfield.h in qemu?
In this case it's only two fields, and not too complicated, but I imagine it
could
get quite ugly to do it manually in other cases.
I'm not too experienced with this CPU topology stuff, but it sounds like it
could be implemented in TCG without too much efforts one day, too, so I'd
rather go with the logic arithmetic immediately instead if it is not too
annoying for you right now.