infix
A JIT-Powered FFI Library for C
Loading...
Searching...
No Matches
types.h File Reference

Defines common data structures used across the entire test suite. More...

#include <inttypes.h>
#include <stddef.h>
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Point
 A simple struct with two doubles (16 bytes). More...
 
struct  Vector4
 A struct containing a fixed-size array of floats. More...
 
struct  LargeData
 A struct guaranteed to be larger than two registers (32 bytes). More...
 
union  Number
 A simple union of an integer and a float. More...
 
struct  LargeStruct
 A struct with a size greater than 16 bytes. More...
 
struct  MixedIntDouble
 A struct with mixed integer and floating-point members. More...
 
struct  PointerStruct
 A struct containing pointer members. More...
 
struct  PackedStruct
 A struct that will have different layouts when packed vs. non-packed. More...
 
struct  NonPowerOfTwoStruct
 A struct whose size is not a power of two (12 bytes on most 64-bit systems). More...
 

Detailed Description

Defines common data structures used across the entire test suite.

Copyright (c) 2025 Sanko Robinson

This source code is dual-licensed under the Artistic License 2.0 or the MIT License. You may choose to use this code under the terms of either license.

SPDX-License-Identifier: (Artistic-2.0 OR MIT)

The documentation blocks within this file are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).

SPDX-License-Identifier: CC-BY-4.0

This header provides a single, canonical source for all the structs and unions needed to test various FFI scenarios. By centralizing these definitions, we ensure consistency and avoid code duplication. Each type is designed to exercise a specific feature or edge case of an ABI, such as:

  • Small, register-passable aggregates (Point).
  • Homogeneous Floating-point Aggregates (Vector4).
  • Large, stack-passed aggregates (LargeStruct).
  • Mixed-type aggregates for complex classification (MixedIntDouble).