VirtualBox

Changeset 90022 in vbox for trunk/include


Ignore:
Timestamp:
Jul 5, 2021 11:25:25 AM (4 years ago)
Author:
vboxsync
Message:

iprt/linux/version.h: Doxygen fixes for ubuntu abi macros, fixed incorrect RTLNX_UBUNTU_ABI_RANGE parameter list for non-ubuntu kernels. bugref:10007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/linux/version.h

    r89047 r90022  
    125125
    126126
    127 #if defined(UTS_UBUNTU_RELEASE_ABI)
    128 /* Ubuntu kernel ABI version is represented as a constant which can be interpreted
    129  * by compiler as an octal constant (e.g. 050818). We add '0x' prefix to it in
    130  * order to be able to treat it as a hexadecimal number. */
     127#if defined(UTS_UBUNTU_RELEASE_ABI) || defined(DOXYGEN_RUNNING)
     128
     129/** Hack to make the UTS_UBUNTU_RELEASE_ABI palatable by the C preprocesor.
     130 *
     131 * While the Ubuntu kernel ABI version looks like a decimal number, some
     132 * kernels has a leading zero (e.g. 050818) that makes the preprocessor think
     133 * it's an octal number.  To work around that, we turn it into an hexadecimal
     134 * number by prefixing it with '0x'. */
    131135# define RTLNX_UBUNTU_ABI(a_iAbi)   (RT_CONCAT(0x,a_iAbi))
    132136
    133137/** @def RTLNX_UBUNTU_ABI_MIN
    134  * Require Ubuntu release to be equal or newer than specified version.
    135  * Kernel version should exactly match to specified @a_iMajor, @a_iMinor
    136  * and @a_iPatch. Number @a_iAbi should be equal or greater than current
    137  * ABI version.
     138 * Require Ubuntu release ABI to be equal or newer than specified version.
     139 *
     140 * The kernel version should exactly match the specified @a a_iMajor, @a
     141 * a_iMinor and @a a_iPatch.  The @a a_iAbi number should be equal to or greater
     142 * than the current ABI version.
    138143 *
    139144 * @param a_iMajor      The major kernel version number.
    140145 * @param a_iMinor      The minor kernel version number.
    141  * @param a_iPatch      The micro kernel version number.
    142  * @param a_iAbi        Ubuntu kernel ABI version number.
     146 * @param a_iPatch      The kernel patch level.
     147 * @param a_iAbi        Ubuntu kernel ABI version number (inclusive).
    143148 */
    144149# define RTLNX_UBUNTU_ABI_MIN(a_iMajor, a_iMinor, a_iPatch, a_iAbi) \
     
    147152
    148153/** @def RTLNX_UBUNTU_ABI_MAX
    149  * Require Ubuntu release to be older than specified version.
    150  * Kernel version should exactly match to specified @a_iMajor, @a_iMinor
    151  * and @a_iPatch. Number @a_iAbi should be less than current ABI version.
     154 * Require Ubuntu release ABI to be older than specified version.
     155 *
     156 * The kernel version should exactly match the specified @a_iMajor, @a_iMinor
     157 * and @a a_iPatch. Number @a a_iAbi should be less than the current ABI
     158 * version.
    152159 *
    153160 * @param a_iMajor      The major kernel version number.
    154161 * @param a_iMinor      The minor kernel version number.
    155  * @param a_iPatch      The micro kernel version number.
    156  * @param a_iAbi        Ubuntu kernel ABI version number.
     162 * @param a_iPatch      The kernel patch level.
     163 * @param a_iAbi        Ubuntu kernel ABI version number (exclusive).
    157164 */
    158165# define RTLNX_UBUNTU_ABI_MAX(a_iMajor, a_iMinor, a_iPatch, a_iAbi) \
     
    160167     && RTLNX_UBUNTU_ABI(UTS_UBUNTU_RELEASE_ABI) < RTLNX_UBUNTU_ABI(a_iAbi))
    161168
    162 /** @def RTLNX_UBUNTU_RANGE
    163  * Require Ubuntu release to be in specified ABI versions range.
    164  * Kernel version should exactly match to specified @a_iMajor, @a_iMinor
    165  * and @a_iPatch. Numbers @a_iAbiMin and @a_iAbiMax specify ABI versions range.
    166  * The max version is exclusive, the minimum inclusive.
     169/** @def RTLNX_UBUNTU_ABI_RANGE
     170 * Require Ubuntu release ABI to be in specified range.
     171 *
     172 * The kernel version should exactly match the specified @a a_iMajor, @a
     173 * a_iMinor and @a a_iPatch.  The numbers @a a_iAbiMin and @a a_iAbiMax specify
     174 * ABI versions range.  The max ABI version is exclusive, the minimum inclusive.
    167175 *
    168176 * @param a_iMajor      The major kernel version number.
    169177 * @param a_iMinor      The minor kernel version number.
    170  * @param a_iPatch      The micro kernel version number.
    171  * @param a_iAbiMin     Ubuntu kernel ABI version number (minimum).
    172  * @param a_iAbiMax     Ubuntu kernel ABI version number (maximum).
     178 * @param a_iPatch      The kernel patch level.
     179 * @param a_iAbiMin     The minimum Ubuntu kernel ABI version number (inclusive).
     180 * @param a_iAbiMax     The maximum Ubuntu kernel ABI version number (exclusive).
    173181 */
    174182# define RTLNX_UBUNTU_ABI_RANGE(a_iMajor, a_iMinor, a_iPatch, a_iAbiMin, a_iAbiMax) \
     
    180188# define RTLNX_UBUNTU_ABI_MIN(a_iMajor, a_iMinor, a_iPatch, a_iAbi) (0)
    181189# define RTLNX_UBUNTU_ABI_MAX(a_iMajor, a_iMinor, a_iPatch, a_iAbi) (0)
    182 # define RTLNX_UBUNTU_ABI_RANGE(a_iMajorMin, a_iMinorMin, a_iPatchMin, a_iAbiMin, \
    183     a_iMajorMax, a_iMinorMax, a_iPatchMax, a_iAbiMax) (0)
     190# define RTLNX_UBUNTU_ABI_RANGE(a_iMajorMin, a_iMinorMin, a_iPatchMin, a_iAbiMin, a_iAbiMax) (0)
    184191
    185192#endif /* !UTS_UBUNTU_RELEASE_ABI */
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