VirtualBox

Changeset 103553 in vbox


Ignore:
Timestamp:
Feb 23, 2024 5:09:45 PM (9 months ago)
Author:
vboxsync
Message:

doc/SDKRef,Main/VirtualBox.xidl: Document the changes to the Main API
which added support for the ARM64 architecture. bugref:10508

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manual/en_US/SDKRef.xml

    r103052 r103553  
    25772577    <computeroutput>reloadExts</computeroutput> command if the shell is
    25782578    already running. Your new command will now be available.</para>
     2579  </chapter>
     2580
     2581  <chapter id="vboxarm">
     2582    <title>Main API changes to support the ARM64 architecture</title>
     2583
     2584    <para>VirtualBox 7.1 introduces support for running virtual machines on
     2585    hosts containing an ARM CPU. Since VirtualBox has been designed and
     2586    developed for virtualizing x86 hardware since its inception adding
     2587    support for ARM CPUs required a variety of changes to the Main API to
     2588    accommodate two different CPU architectures.</para>
     2589
     2590    <sect1>
     2591      <title>Overview of the Changes to the Main API</title>
     2592
     2593      <para>In order to support two different types of processor architecture
     2594      in the VirtualBox Main API the key abstraction was the addition of a new
     2595      interface named <link linkend="IPlatform">IPlatform</link> which contains
     2596      the details which relate to the operating environment of a VM.  The
     2597      <link linkend="IPlatform">IPlatform</link> interface is distinct from the
     2598      VM itself (the <link linkend="IMachine">IMachine</link> interface), the VM
     2599      management interfaces (<link linkend="IVirtualBox">IVirtualBox</link> and
     2600      <link linkend="IConsole">IConsole</link>), as well as the global properties of
     2601      the VM (the <link linkend="ISystemProperties">ISystemProperties</link> interface).
     2602      The contents of the <link linkend="IPlatform">IPlatform</link> interface can be
     2603      broken down into three different categories:</para>
     2604      <itemizedlist>
     2605        <listitem>
     2606          <para>properties relating to the VM which are CPU architecture-neutral (<link linkend="IPlatformProperties">IPlatformProperties</link>)</para>
     2607        </listitem>
     2608        <listitem>
     2609          <para>properties which are CPU architecture-specific (<link linkend="IPlatformX86">IPlatformX86</link> or <link linkend="IPlatformARM">IPlatformARM</link>)</para>
     2610        </listitem>
     2611        <listitem>
     2612          <para>attributes of the VM which are CPU architecture-neutral such as:</para>
     2613          <itemizedlist>
     2614            <listitem><para>the architecture of the VM (<link linkend="IPlatform__architecture">IPlatform::architecture</link>)</para>
     2615            </listitem>
     2616            <listitem><para>the type of chipset used by the VM (<link linkend="IPlatform__chipsetType">IPlatform::chipsetType</link>)</para>
     2617            </listitem>
     2618            <listitem><para>the type of IOMMU used by the VM (<link linkend="IPlatform__iommuType">IPlatform::iommuType</link>).</para>
     2619            </listitem>
     2620          </itemizedlist>
     2621        </listitem>
     2622      </itemizedlist>
     2623
     2624      <para>The <link linkend="IPlatform">IPlatform</link> interface can be retrieved from
     2625      the <link linkend="IMachine">IMachine</link> interface via the new
     2626      <link linkend="IMachine__platform">IMachine::platform</link> attribute.  The
     2627      <link linkend="IPlatform__architecture">IPlatform::architecture</link> attribute
     2628      returns the <emphasis>architecture</emphasis> type in a new enumeration named
     2629      <link linkend="PlatformArchitecture">PlatformArchitecture</link>.  This enumeration value
     2630      can be used to determine which CPU-specific properties to query, for example:
     2631      <screen>
     2632      IPlatform platform;
     2633      result = machine.getPlatform(platform);
     2634
     2635      PlatformArchitecture_T platformArch;
     2636      result = platform.getArchitecture(platformArch);
     2637      if (platformArch == x86)
     2638        IPlatformX86 platformX86;
     2639        result = platform.getX86(platformX86);
     2640      else if (platformArch == ARM)
     2641        IPlatformARM platformARM;
     2642        result = platform.getARM(platformARM);
     2643      else
     2644        error;
     2645      </screen>
     2646
     2647      The value of the <link linkend="PlatformArchitecture">PlatformArchitecture</link> enumeration
     2648      can also be used when creating a new VM using <link linkend="IVirtualBox__createMachine">IVirtualBox::createMachine</link>.
     2649      </para>
     2650
     2651      <para>The CPU architecture-neutral properties in (<link linkend="IPlatformProperties">IPlatformProperties</link>)
     2652      can be found in several places:</para>
     2653      <itemizedlist>
     2654        <listitem>
     2655          <para>They can be retrieved from the <link linkend="IPlatform__properties">IPlatform::properties</link>
     2656          attribute.</para>
     2657        </listitem>
     2658        <listitem>
     2659          <para>They can be retrieved from the <link linkend="ISystemProperties__platform">ISystemProperties::platform</link>
     2660          attribute.</para>
     2661        </listitem>
     2662        <listitem>
     2663          <para>They can retrieved from the <link linkend="IVirtualBox">IVirtualBox</link> interface
     2664          using the new <link linkend="IVirtualBox__getPlatformProperties">IVirtualBox::getPlatformProperties</link> method.
     2665          </para>
     2666        </listitem>
     2667      </itemizedlist>
     2668
     2669      <para>The attributes and methods contained in <link linkend="IPlatformProperties">IPlatformProperties</link>
     2670      were moved from the <link linkend="ISystemProperties">ISystemProperties</link> interface as they
     2671      can vary based on the platform of the VM:</para>
     2672
     2673      <table>
     2674        <title>IPlatformProperties Attributes</title>
     2675        <tgroup cols="2" style="verywide">
     2676          <tbody>
     2677            <row>
     2678              <entry><emphasis role="bold">Original Attribute</emphasis></entry>
     2679              <entry><emphasis role="bold">New Attribute</emphasis></entry>
     2680            </row>
     2681
     2682            <row>
     2683              <entry>ISystemProperties::rawModeSupported</entry>
     2684              <entry><link linkend="IPlatformProperties__rawModeSupported">IPlatformProperties::rawModeSupported</link></entry>
     2685            </row>
     2686
     2687            <row>
     2688              <entry>ISystemProperties::exclusiveHwVirt</entry>
     2689              <entry><link linkend="IPlatformProperties__exclusiveHwVirt">IPlatformProperties::exclusiveHwVirt</link></entry>
     2690            </row>
     2691
     2692            <row>
     2693              <entry>ISystemProperties::serialPortCount</entry>
     2694              <entry><link linkend="IPlatformProperties__serialPortCount">IPlatformProperties::serialPortCount</link></entry>
     2695            </row>
     2696
     2697            <row>
     2698              <entry>ISystemProperties::parallelPortCount</entry>
     2699              <entry><link linkend="IPlatformProperties__parallelPortCount">IPlatformProperties::parallelPortCount</link></entry>
     2700            </row>
     2701
     2702            <row>
     2703              <entry>ISystemProperties::maxBootPosition</entry>
     2704              <entry><link linkend="IPlatformProperties__maxBootPosition">IPlatformProperties::maxBootPosition</link></entry>
     2705            </row>
     2706
     2707            <row>
     2708              <entry>ISystemProperties::supportedParavirtProviders[]</entry>
     2709              <entry><link linkend="IPlatformProperties__supportedParavirtProviders">IPlatformProperties::supportedParavirtProviders[]</link></entry>
     2710            </row>
     2711
     2712            <row>
     2713              <entry>ISystemProperties::supportedFirmwareTypes[]</entry>
     2714              <entry><link linkend="IPlatformProperties__supportedFirmwareTypes">IPlatformProperties::supportedFirmwareTypes[]</link></entry>
     2715            </row>
     2716
     2717            <row>
     2718              <entry>ISystemProperties::supportedGuestOSTypes[]</entry>
     2719              <entry><link linkend="IPlatformProperties__supportedGuestOSTypes">IPlatformProperties::supportedGuestOSTypes[]</link></entry>
     2720            </row>
     2721
     2722            <row>
     2723              <entry>ISystemProperties::supportedGraphicsControllerTypes[]</entry>
     2724              <entry><link linkend="IPlatformProperties__supportedGraphicsControllerTypes">IPlatformProperties::supportedGraphicsControllerTypes[]</link></entry>
     2725            </row>
     2726
     2727            <row>
     2728              <entry>ISystemProperties::supportedNetAdpPromiscModePols[]</entry>
     2729              <entry><link linkend="IPlatformProperties__supportedNetAdpPromiscModePols">IPlatformProperties::supportedNetAdpPromiscModePols[]</link></entry>
     2730            </row>
     2731
     2732            <row>
     2733              <entry>ISystemProperties::supportedNetworkAdapterTypes[]</entry>
     2734              <entry><link linkend="IPlatformProperties__supportedNetworkAdapterTypes">IPlatformProperties::supportedNetworkAdapterTypes[]</link></entry>
     2735            </row>
     2736
     2737            <row>
     2738              <entry>ISystemProperties::supportedUartTypes[]</entry>
     2739              <entry><link linkend="IPlatformProperties__supportedUartTypes">IPlatformProperties::supportedUartTypes[]</link></entry>
     2740            </row>
     2741
     2742            <row>
     2743              <entry>ISystemProperties::supportedUSBControllerTypes[]</entry>
     2744              <entry><link linkend="IPlatformProperties__supportedUSBControllerTypes">IPlatformProperties::supportedUSBControllerTypes[]</link></entry>
     2745            </row>
     2746
     2747            <row>
     2748              <entry>ISystemProperties::supportedAudioControllerTypes[]</entry>
     2749              <entry><link linkend="IPlatformProperties__supportedAudioControllerTypes">IPlatformProperties::supportedAudioControllerTypes[]</link></entry>
     2750            </row>
     2751
     2752            <row>
     2753              <entry>ISystemProperties::supportedBootDevices[]</entry>
     2754              <entry><link linkend="IPlatformProperties__supportedBootDevices">IPlatformProperties::supportedBootDevices[]</link></entry>
     2755            </row>
     2756
     2757            <row>
     2758              <entry>ISystemProperties::supportedStorageBuses[]</entry>
     2759              <entry><link linkend="IPlatformProperties__supportedStorageBuses">IPlatformProperties::supportedStorageBuses[]</link></entry>
     2760            </row>
     2761
     2762            <row>
     2763              <entry>ISystemProperties::supportedStorageControllerTypes[]</entry>
     2764              <entry><link linkend="IPlatformProperties__supportedStorageControllerTypes">IPlatformProperties::supportedStorageControllerTypes[]</link></entry>
     2765            </row>
     2766
     2767            <row>
     2768              <entry>ISystemProperties::supportedChipsetTypes[]</entry>
     2769              <entry><link linkend="IPlatformProperties__supportedChipsetTypes">IPlatformProperties::supportedChipsetTypes[]</link></entry>
     2770            </row>
     2771
     2772            <row>
     2773              <entry>ISystemProperties::supportedIommuTypes[]</entry>
     2774              <entry><link linkend="IPlatformProperties__supportedIommuTypes">IPlatformProperties::supportedIommuTypes[]</link></entry>
     2775            </row>
     2776
     2777            <row>
     2778              <entry>ISystemProperties::supportedTpmTypes[]</entry>
     2779              <entry><link linkend="IPlatformProperties__supportedTpmTypes">IPlatformProperties::supportedTpmTypes[]</link></entry>
     2780            </row>
     2781
     2782          </tbody>
     2783        </tgroup>
     2784      </table>
     2785
     2786      <table>
     2787        <title>IPlatformProperties Attributes</title>
     2788        <tgroup cols="2" style="verywide">
     2789          <tbody>
     2790            <row>
     2791              <entry><emphasis role="bold">Original Method</emphasis></entry>
     2792              <entry><emphasis role="bold">New Method</emphasis></entry>
     2793            </row>
     2794
     2795           <row>
     2796             <entry>ISystemProperties::getDeviceTypesForStorageBus</entry>
     2797             <entry><link linkend="IPlatformProperties__getDeviceTypesForStorageBus">IPlatformProperties::getDeviceTypesForStorageBus</link></entry>
     2798           </row>
     2799
     2800           <row>
     2801             <entry>ISystemProperties::getMaxDevicesPerPortForStorageBus</entry>
     2802             <entry><link linkend="IPlatformProperties__getMaxDevicesPerPortForStorageBus">IPlatformProperties::getMaxDevicesPerPortForStorageBus</link></entry>
     2803           </row>
     2804
     2805           <row>
     2806             <entry>ISystemProperties::getMaxInstancesOfStorageBus</entry>
     2807             <entry><link linkend="IPlatformProperties__getMaxInstancesOfStorageBus">IPlatformProperties::getMaxInstancesOfStorageBus</link></entry>
     2808           </row>
     2809
     2810           <row>
     2811             <entry>ISystemProperties::getMaxInstancesOfUSBControllerType</entry>
     2812             <entry><link linkend="IPlatformProperties__getMaxInstancesOfUSBControllerType">IPlatformProperties::getMaxInstancesOfUSBControllerType</link></entry>
     2813           </row>
     2814
     2815           <row>
     2816             <entry>ISystemProperties::getMaxNetworkAdapters</entry>
     2817             <entry><link linkend="IPlatformProperties__getMaxNetworkAdapters">IPlatformProperties::getMaxNetworkAdapters</link></entry>
     2818           </row>
     2819
     2820           <row>
     2821             <entry>ISystemProperties::getMaxNetworkAdaptersOfType</entry>
     2822             <entry><link linkend="IPlatformProperties__getMaxNetworkAdaptersOfType">IPlatformProperties::getMaxNetworkAdaptersOfType</link></entry>
     2823           </row>
     2824
     2825           <row>
     2826             <entry>ISystemProperties::getMaxPortCountForStorageBus</entry>
     2827             <entry><link linkend="IPlatformProperties__getMaxPortCountForStorageBus">IPlatformProperties::getMaxPortCountForStorageBus</link></entry>
     2828           </row>
     2829
     2830           <row>
     2831             <entry>ISystemProperties::getMinPortCountForStorageBus</entry>
     2832             <entry><link linkend="IPlatformProperties__getMinPortCountForStorageBus">IPlatformProperties::getMinPortCountForStorageBus</link></entry>
     2833           </row>
     2834
     2835           <row>
     2836             <entry>ISystemProperties::getStorageBusForControllerType</entry>
     2837             <entry><link linkend="IPlatformProperties__getStorageBusForControllerType">IPlatformProperties::getStorageBusForControllerType</link></entry>
     2838           </row>
     2839
     2840           <row>
     2841             <entry>ISystemProperties::getStorageControllerHotplugCapable</entry>
     2842             <entry><link linkend="IPlatformProperties__getStorageControllerHotplugCapable">IPlatformProperties::getStorageControllerHotplugCapable</link></entry>
     2843           </row>
     2844
     2845           <row>
     2846             <entry>ISystemProperties::getStorageControllerTypesForBus</entry>
     2847             <entry><link linkend="IPlatformProperties__getStorageControllerTypesForBus">IPlatformProperties::getStorageControllerTypesForBus</link></entry>
     2848           </row>
     2849
     2850          </tbody>
     2851        </tgroup>
     2852      </table>
     2853
     2854      <para>The single attribute and all of the properties contained in the new
     2855      <link linkend="IPlatformX86">IPlatformX86</link> interface were moved from the
     2856      <link linkend="IMachine">IMachine</link> interface as they are specific to the x86
     2857      CPU architecture:</para>
     2858
     2859      <table>
     2860        <title>IPlatformX86 Attribute</title>
     2861        <tgroup cols="2">
     2862          <tbody>
     2863            <row>
     2864              <entry><emphasis role="bold">Original Attribute</emphasis></entry>
     2865              <entry><emphasis role="bold">New Attribute</emphasis></entry>
     2866            </row>
     2867
     2868            <row>
     2869              <entry>IMachine::HPETEnabled</entry>
     2870              <entry><link linkend="IPlatformX86__HPETEnabled">IPlatformX86::HPETEnabled</link></entry>
     2871            </row>
     2872          </tbody>
     2873        </tgroup>
     2874      </table>
     2875
     2876      <table>
     2877        <title>IPlatformX86 Methods</title>
     2878        <tgroup cols="2">
     2879          <tbody>
     2880             <row>
     2881              <entry><emphasis role="bold">Original Method</emphasis></entry>
     2882              <entry><emphasis role="bold">New Method</emphasis></entry>
     2883            </row>
     2884
     2885            <row>
     2886              <entry>IMachine::getCPUIDLeaf</entry>
     2887              <entry><link linkend="IPlatformX86__getCPUIDLeaf">IPlatformX86::getCPUIDLeaf</link></entry>
     2888            </row>
     2889
     2890            <row>
     2891              <entry>IMachine::getCPUIDLeafByOrdinal</entry>
     2892              <entry><link linkend="IPlatformX86__getCPUIDLeafByOrdinal">IPlatformX86::getCPUIDLeafByOrdinal</link></entry>
     2893            </row>
     2894
     2895            <row>
     2896              <entry>IMachine::getCPUProperty</entry>
     2897              <entry><link linkend="IPlatformX86__getCPUProperty">IPlatformX86::getCPUProperty</link></entry>
     2898            </row>
     2899
     2900            <row>
     2901              <entry>IMachine::getHWVirtExProperty</entry>
     2902              <entry><link linkend="IPlatformX86__getHWVirtExProperty">IPlatformX86::getHWVirtExProperty</link></entry>
     2903            </row>
     2904
     2905            <row>
     2906              <entry>IMachine::removeAllCPUIDLeaves</entry>
     2907              <entry><link linkend="IPlatformX86__removeAllCPUIDLeaves">IPlatformX86::removeAllCPUIDLeaves</link></entry>
     2908            </row>
     2909
     2910            <row>
     2911              <entry>IMachine::removeCPUIDLeaf</entry>
     2912              <entry><link linkend="IPlatformX86__removeCPUIDLeaf">IPlatformX86::removeCPUIDLeaf</link></entry>
     2913            </row>
     2914
     2915            <row>
     2916              <entry>IMachine::setCPUIDLeaf</entry>
     2917              <entry><link linkend="IPlatformX86__setCPUIDLeaf">IPlatformX86::setCPUIDLeaf</link></entry>
     2918            </row>
     2919
     2920            <row>
     2921              <entry>IMachine::setCPUProperty</entry>
     2922              <entry><link linkend="IPlatformX86__setCPUProperty">IPlatformX86::setCPUProperty</link></entry>
     2923            </row>
     2924
     2925            <row>
     2926              <entry>IMachine::setHWVirtExProperty</entry>
     2927              <entry><link linkend="IPlatformX86__setHWVirtExProperty">IPlatformX86::setHWVirtExProperty</link></entry>
     2928            </row>
     2929
     2930          </tbody>
     2931        </tgroup>
     2932      </table>
     2933
     2934      <para>An itemized breakdown of the changes made to the Main API for ARM64 support is described below.</para>
     2935
     2936    <sect2>
     2937      <title>Changes to Classes (Interfaces)</title>
     2938
     2939    <sect3>
     2940      <title>New Classes (Interfaces) Added</title>
     2941
     2942      <itemizedlist>
     2943        <listitem>
     2944          <para><link linkend="IPlatform">IPlatform</link></para>
     2945          <para>An umbrella-like interface containing a collection of properties and attributes
     2946          of the software environment of the VM.</para>
     2947        </listitem>
     2948        <listitem>
     2949          <para><link linkend="IPlatformX86">IPlatformX86</link></para>
     2950          <para>An interface containing the x86-specific properties of the software
     2951          environment of the VM.</para>
     2952        </listitem>
     2953        <listitem>
     2954          <para><link linkend="IPlatformARM">IPlatformARM</link></para>
     2955          <para>An interface containing the ARM-specific properties of the software
     2956          environment of the VM.</para>
     2957        </listitem>
     2958        <listitem>
     2959          <para><link linkend="IPlatformProperties">IPlatformProperties</link></para>
     2960          <para>An interface containing the properties specific to the platform of the VM.</para>
     2961        </listitem>
     2962        <listitem>
     2963          <para><link linkend="IHostX86">IHostX86</link></para>
     2964          <para>An interface which provides further classification of the x86-specific
     2965          properties of the physical host machine.</para>
     2966        </listitem>
     2967      </itemizedlist>
     2968    </sect3>
     2969
     2970    <sect3>
     2971      <title>Classes (Interfaces) Renamed</title>
     2972
     2973      <table>
     2974        <title>Classes (Interfaces) Renamed</title>
     2975        <tgroup cols="2" style="verywide">
     2976          <tbody>
     2977             <row>
     2978              <entry><emphasis role="bold">Original Class Name</emphasis></entry>
     2979              <entry><emphasis role="bold">New Class Name</emphasis></entry>
     2980            </row>
     2981            <row>
     2982              <entry>IBIOSSettings</entry>
     2983              <entry><link linkend="IFirmwareSettings">IFirmwareSettings</link></entry>
     2984            </row>
     2985          </tbody>
     2986        </tgroup>
     2987      </table>
     2988      <para>The IBIOSSettings interface has been renamed to the more platform-neutral IFirmwareSettings.</para>
     2989
     2990    </sect3>
     2991
     2992    <sect3>
     2993      <title>New Methods Added to Classes (Interfaces)</title>
     2994      <itemizedlist>
     2995        <listitem>
     2996          <para><link
     2997          linkend="IPlatformProperties">IPlatformProperties</link> <link linkend="IVirtualBox__getPlatformProperties">IVirtualBox::getPlatformProperties</link></para>
     2998          <para>The new IVirtualBox::getPlatformProperties method returns
     2999          an IPlatformProperties object which contains the platform-specific
     3000          properties of a VM as described above.</para>
     3001        </listitem>
     3002      </itemizedlist>
     3003    </sect3>
     3004
     3005    <sect3>
     3006      <title>New Attributes Added to Classes (Interfaces)</title>
     3007      <itemizedlist>
     3008        <listitem>
     3009          <para><link linkend="IPlatformProperties">IPlatformProperties</link><link linkend="ISystemProperties__platform">
     3010          ISystemProperties::platform</link></para>
     3011          <para>The ISystemProperties interface gets a new <emphasis>platform</emphasis>
     3012          attribute which returns an IPlatformProperties object which contains the
     3013          platform-specific properties of a VM as described above.</para>
     3014        </listitem>
     3015        <listitem>
     3016          <para><link linkend="FirmwareType">FirmwareType</link> <link linkend="IFirmwareSettings__firmwareType">IFirmwareSettings::firmwareType</link></para>
     3017          <para>The new IFirmwareSettings interface (renamed from IBIOSSettings) gets a new
     3018          <emphasis>firmwareType</emphasis> attribute which returns a FirmwareType enumeration which
     3019          contains the VM's firmware type.</para>
     3020        </listitem>
     3021        <listitem>
     3022          <para><link linkend="PlatformArchitecture">PlatformArchitecture</link> <link linkend="IHost__architecture">IHost::architecture</link></para>
     3023          <para>The IHost interface gets a new <emphasis>architecture</emphasis>
     3024          attribute which returns a PlatformArchitecture enumeration which contains the
     3025          platform's architecture.</para>
     3026        </listitem>
     3027        <listitem>
     3028          <para><link linkend="IHostX86">IHostX86</link> <link linkend="IHost__x86">IHost::x86</link></para>
     3029          <para>The IHost interface gets a new <emphasis>x86</emphasis>
     3030          attribute which returns an IHostX86 object which contains the
     3031          x86-specific properties of the physical host machine.</para>
     3032        </listitem>
     3033        <listitem>
     3034          <para><link linkend="IPlatform">IPlatform</link> <link linkend="IMachine__platform">IMachine::platform</link></para>
     3035          <para>The IMachine interface gets a new <emphasis>platform</emphasis>
     3036          attribute which returns an IPlatform object which contains the
     3037          properties related to the platform of the VM.</para>
     3038        </listitem>
     3039        <listitem>
     3040          <para><link linkend="IFirmwareSettings">IFirmwareSettings</link> <link linkend="IMachine__firmwareSettings">IMachine::firmwareSettings</link></para>
     3041          <para>The IMachine interface gets a new <emphasis>firmwareSettings</emphasis>
     3042          attribute which returns an IFirmWareSettings object which contains the
     3043          properties related to the platform of the VM.</para>
     3044        </listitem>
     3045      </itemizedlist>
     3046    </sect3>
     3047
     3048    <sect3>
     3049      <title>Class (Interface) Attribute Changes</title>
     3050
     3051      <table>
     3052        <title>Classes Renamed</title>
     3053        <tgroup cols="2" style="verywide">
     3054          <tbody>
     3055             <row>
     3056              <entry><emphasis role="bold">Original Class Name</emphasis></entry>
     3057              <entry><emphasis role="bold">New Class Name</emphasis></entry>
     3058            </row>
     3059            <row>
     3060              <entry>BIOSBootMenuMode IBIOSSettings::bootMenuMode</entry>
     3061              <entry><link linkend="FirmwareBootMenuMode">FirmwareBootMenuMode</link><link linkend="IFirmwareSettings__bootMenuMode"> IFirmwareSettings::bootMenuMode</link></entry>
     3062            </row>
     3063          </tbody>
     3064        </tgroup>
     3065      </table>
     3066
     3067      <para>The IBIOSSettings::bootMenuMode attribute has been moved to the new
     3068      IFirmwareSettings interface and now returns the firmware boot menu mode in
     3069      the new <link linkend="FirmwareBootMenuMode">FirmwareBootMenuMode</link> enumeration.</para>
     3070
     3071      <table>
     3072        <title>Classes Renamed</title>
     3073        <tgroup cols="2" style="verywide">
     3074          <tbody>
     3075             <row>
     3076              <entry><emphasis role="bold">Original Class Name</emphasis></entry>
     3077              <entry><emphasis role="bold">New Class Name</emphasis></entry>
     3078            </row>
     3079            <row>
     3080              <entry>unsigned long ISerialPort::IOBase</entry>
     3081              <entry>unsigned long <link linkend="ISerialPort__IOAddress">ISerialPort::IOAddress</link></entry>
     3082            </row>
     3083          </tbody>
     3084        </tgroup>
     3085      </table>
     3086
     3087      <para>The ISerialPort::IOBase attribute has been renamed to ISerialPort::IOAddress.</para>
     3088
     3089    </sect3>
     3090
     3091    </sect2>
     3092
     3093    <sect2>
     3094      <title>Changes to Enumerations</title>
     3095
     3096    <sect3>
     3097      <title>New Enumerations Added</title>
     3098      <itemizedlist>
     3099        <listitem>
     3100          <para><link linkend="PlatformArchitecture">PlatformArchitecture</link></para>
     3101          <para>The new PlatformArchitecture enumeration contains the CPU
     3102          architecture type of the VM.</para>
     3103        </listitem>
     3104      </itemizedlist>
     3105    </sect3>
     3106
     3107    <sect3>
     3108      <title>New Enumerations Values</title>
     3109      <itemizedlist>
     3110        <listitem>
     3111          <para><link linkend="CPUArchitecture">CPUArchitecture</link>
     3112          <itemizedlist>
     3113            <listitem><para><link linkend="CPUArchitecture__ARMv8_32">ARMv8_32</link></para></listitem>
     3114            <listitem><para><link linkend="CPUArchitecture__ARMv8_64">ARMv8_64</link></para></listitem>
     3115          </itemizedlist>
     3116          </para>
     3117          <para>The CPUArchitecture enumeration gets two new additions corresponding
     3118          to 32-bit and 64-bit ARMv8 CPUs respectively.</para>
     3119        </listitem>
     3120        <listitem>
     3121          <para><link linkend="AudioControllerType">AudioControllerType</link>
     3122          <itemizedlist>
     3123            <listitem><para><link linkend="AudioControllerType__VirtioSound">VirtioSound</link></para></listitem>
     3124          </itemizedlist>
     3125          </para>
     3126          <para>The AudioControllerType enumeration gets a new value named <emphasis>VirtioSound</emphasis>.
     3127          </para>
     3128        </listitem>
     3129        <listitem>
     3130          <para><link linkend="ChipsetType">ChipsetType</link>
     3131          <itemizedlist>
     3132            <listitem><para><link linkend="ChipsetType__ARMv8Virtual">ARMv8Virtual</link></para></listitem>
     3133          </itemizedlist>
     3134          </para>
     3135          <para>The ChipsetType enumeration gets a new value named <emphasis>ARMv8Virtual</emphasis>.
     3136          </para>
     3137        </listitem>
     3138      </itemizedlist>
     3139    </sect3>
     3140
     3141    <sect3>
     3142      <title>Enumerations Renamed</title>
     3143
     3144      <table>
     3145        <title>Enumerations Renamed</title>
     3146        <tgroup cols="2" style="verywide">
     3147          <tbody>
     3148             <row>
     3149              <entry><emphasis role="bold">Original Enumeration Name</emphasis></entry>
     3150              <entry><emphasis role="bold">New Enumeration Name</emphasis></entry>
     3151            </row>
     3152            <row>
     3153              <entry>CPUPropertyType</entry>
     3154              <entry><link linkend="CPUPropertyTypeX86">CPUPropertyTypeX86</link></entry>
     3155            </row>
     3156          </tbody>
     3157        </tgroup>
     3158      </table>
     3159
     3160      <para>The CPUPropertyType enumeration has been renamed to CPUPropertyTypeX86.</para>
     3161
     3162      <table>
     3163        <title>Enumerations Renamed</title>
     3164        <tgroup cols="2" style="verywide">
     3165          <tbody>
     3166             <row>
     3167              <entry><emphasis role="bold">Original Enumeration Name</emphasis></entry>
     3168              <entry><emphasis role="bold">New Enumeration Name</emphasis></entry>
     3169            </row>
     3170            <row>
     3171              <entry>BIOSBootMenuMode</entry>
     3172              <entry><link linkend="FirmwareBootMenuMode">FirmwareBootMenuMode</link></entry>
     3173            </row>
     3174          </tbody>
     3175        </tgroup>
     3176      </table>
     3177
     3178      <para>The BIOSBootMenuMode enumeration has been renamed to FirmwareBootMenuMode.</para>
     3179
     3180    </sect3>
     3181    </sect2>
     3182    </sect1>
     3183
    25793184  </chapter>
    25803185
     
    42244829        <listitem><para>The attribute <link linkend="IGuestSession__mountPoints">IGuestSession::mountPoints</link> has been
    42254830          added. This requires 7.1 (or newer) Guest Additions to be installed on the guest.</para>
     4831        </listitem>
     4832
     4833        <listitem><para>Review the Main API changes made for the ARM64 CPU architecture <link linkend="vboxarm">here</link>
     4834        for incompatible changes to interfaces, methods, and attributes.</para>
    42264835        </listitem>
    42274836
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r103088 r103553  
    14651465    >
    14661466    <desc>
    1467       BIOS boot menu mode.
     1467      Firmware boot menu mode.
    14681468    </desc>
    14691469
     
    73257325
    73267326    <desc>
    7327       The x86 specific platform properties for a virtual machine.
     7327      The ARM-specific platform properties for a virtual machine.
    73287328
    73297329      Accessed via <link to="IMachine::platform"/> and <link to="IPlatform::ARM"/>.
     
    1225612256
    1225712257    <desc>
    12258       The x86 specific interface for the physical host machine.
     12258      The x86-specific interface for the physical host machine.
    1225912259    </desc>
    1226012260
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette