The dynamic enum mechanism today only allows specifying the enum values
using XPATH. While this is sufficient from functionality point of view, it
may not provide the best experience as users have to understand the raw
data used internally. The typical way to present more informational labels
of enum values to users is enum names which cannot be supported by the
current XML schema to JSONSchema converter.
This patch allows the XML schema to specify dynamic enum names by adding an
`acrn:option-names` attribute to an element. The attribute is interpreted
as an XPATH which evaluates to a sequence of the same length of
`acrn-options`. The element at index i in that sequence is considered the
enum name of the enum value at index i of the results of `acrn:options`.
This mechanism is first applied to the `pcpu_id` element to indicate
whether a physical CPU is P-core or E-core.
Tracked-On: #8050
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Board files with multiple dots in their name may be splitted
incorrectly, and os.path.basename assumes os.name == posix in pyodide
environment. This workaround partially fixes this problem whenever the
the board filename does not contain '\' character.
Tracked-On: #7582
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>
Use file name as the board xml name instead of using the name in
'board' field in board XML.
e.g.
1. Initial filename is "my_potato.xml"
2. User imports my_potato.xml into the Configurator
3. Resulting file is my_potato.board.xml
Tracked-On: #7521
Signed-off-by: Conghui <conghui.chen@intel.com>
XPATH 2.0 already supports functions like for-expressions,
so we use XPATH expression instead of the python code to format
virtio input data.
Tracked-On: #6691
Signed-off-by: Kunhui-Li <kunhuix.li@intel.com>
Reviewed-by: Junjie Mao <junjie.mao@intel.com>
Currently dynamicEnum hook returns all available options (enums) as a
list of strings. However in some cases strings need to be converted to
target types.
One example is CPU affinity. The dynamicEnum should produce a list of
all available pCPUIDs (a list of integers), instead of a list of
strings.
This patch adds a converter in get_enum to do the type conversion.
Tracked-On: #7420
Signed-off-by: Yifan Liu <yifan1.liu@intel.com>