[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] docs/misra: document the expected sizes of integer types



commit f48299cad5c3c69fdc2c101517a6dab9c9827ea5
Author:     Stefano Stabellini <sstabellini@xxxxxxxxxx>
AuthorDate: Fri Apr 5 11:44:46 2024 -0700
Commit:     Stefano Stabellini <stefano.stabellini@xxxxxxx>
CommitDate: Tue Apr 9 14:28:59 2024 -0700

    docs/misra: document the expected sizes of integer types
    
    Xen makes assumptions about the size of integer types on the various
    architectures. Document these assumptions.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxx>
    Acked-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
---
 docs/misra/C-language-toolchain.rst | 73 +++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/docs/misra/C-language-toolchain.rst 
b/docs/misra/C-language-toolchain.rst
index b7c2000992..5ddfe7bdbe 100644
--- a/docs/misra/C-language-toolchain.rst
+++ b/docs/misra/C-language-toolchain.rst
@@ -480,4 +480,77 @@ The table columns are as follows:
      - See Section "4.13 Preprocessing Directives" of GCC_MANUAL and Section 
"11.1 Implementation-defined behavior" of CPP_MANUAL.
 
 
+Sizes of Integer types
+______________________
+
+Xen expects System V ABI on x86_64:
+  https://gitlab.com/x86-psABIs/x86-64-ABI
+
+Xen expects AAPCS32 on ARMv8-A AArch32 and ARMv7-A:
+  https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst
+
+Xen expects AAPCS64 LP64 on ARMv8-A AArch64:
+  https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst
+
+A summary table of data types, sizes and alignment is below:
+
+.. list-table::
+   :widths: 10 10 10 45
+   :header-rows: 1
+
+   * - Type
+     - Size
+     - Alignment
+     - Architectures
+
+   * - char 
+     - 8 bits
+     - 8 bits
+     - x86_32, ARMv8-A AArch32, ARMv8-R AArch32, ARMv7-A, x86_64,
+       ARMv8-A AArch64, RV64, PPC64
+
+   * - short
+     - 16 bits
+     - 16 bits
+     - x86_32, ARMv8-A AArch32, ARMv8-R AArch32, ARMv7-A, x86_64,
+       ARMv8-A AArch64, RV64, PPC64
+
+   * - int
+     - 32 bits
+     - 32 bits
+     - x86_32, ARMv8-A AArch32, ARMv8-R AArch32, ARMv7-A, x86_64,
+       ARMv8-A AArch64, RV64, PPC64
+
+   * - long
+     - 32 bits
+     - 32 bits 
+     - x86_32, ARMv8-A AArch32, ARMv8-R AArch32, ARMv7-A
+
+   * - long
+     - 64 bits
+     - 64 bits 
+     - x86_64, ARMv8-A AArch64, RV64, PPC64
+
+   * - long long
+     - 64-bit
+     - 32-bit
+     - x86_32
+
+   * - long long
+     - 64-bit
+     - 64-bit
+     - x86_64, ARMv8-A AArch64, RV64, PPC64, ARMv8-A AArch32, ARMv8-R
+       AArch32, ARMv7-A
+
+   * - pointer
+     - 32-bit
+     - 32-bit
+     - x86_32, ARMv8-A AArch32, ARMv8-R AArch32, ARMv7-A
+
+   * - pointer
+     - 64-bit
+     - 64-bit
+     - x86_64, ARMv8-A AArch64, RV64, PPC64
+
+
 END OF DOCUMENT.
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.