Mario Kart 64
macros.h File Reference

Go to the source code of this file.

Macros

#define GLOBAL_ASM(...)
 
#define ARRAY_COUNT(arr)   (s32)(sizeof(arr) / sizeof(arr[0]))
 
#define GLUE(a, b)   a ## b
 
#define GLUE2(a, b)   GLUE(a, b)
 
#define UNUSED
 
#define NORETURN
 
#define STATIC_ASSERT(cond, msg)   typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]
 
#define ALIGNED8
 
#define ALIGNED16
 
#define VIRTUAL_TO_PHYSICAL(addr)   ((uintptr_t)(addr) & 0x1FFFFFFF)
 
#define PHYSICAL_TO_VIRTUAL(addr)   ((uintptr_t)(addr) | 0x80000000)
 
#define VIRTUAL_TO_PHYSICAL2(addr)   ((u8 *)(addr) - 0x80000000U)
 
#define ALIGN16(val)   (((val) + 0xF) & ~0xF)
 
#define GET_PACKED_END(dl)   (((u8*) dl) + sizeof(dl) - sizeof(dl[0]) - 0x07000000)
 

Macro Definition Documentation

◆ ALIGN16

#define ALIGN16 (   val)    (((val) + 0xF) & ~0xF)

◆ ALIGNED16

#define ALIGNED16

◆ ALIGNED8

#define ALIGNED8

◆ ARRAY_COUNT

#define ARRAY_COUNT (   arr)    (s32)(sizeof(arr) / sizeof(arr[0]))

◆ GET_PACKED_END

#define GET_PACKED_END (   dl)    (((u8*) dl) + sizeof(dl) - sizeof(dl[0]) - 0x07000000)

(u8*) dl : Cast array down to u8's

  • sizeof(dl) : go to the end of the array
  • sizeof(dl[0]) : walk back 1 Gfx macro
  • 0x07000000 : get just the offset

◆ GLOBAL_ASM

#define GLOBAL_ASM (   ...)

◆ GLUE

#define GLUE (   a,
 
)    a ## b

◆ GLUE2

#define GLUE2 (   a,
 
)    GLUE(a, b)

◆ NORETURN

#define NORETURN

◆ PHYSICAL_TO_VIRTUAL

#define PHYSICAL_TO_VIRTUAL (   addr)    ((uintptr_t)(addr) | 0x80000000)

◆ STATIC_ASSERT

#define STATIC_ASSERT (   cond,
  msg 
)    typedef char GLUE2(static_assertion_failed, __LINE__)[(cond) ? 1 : -1]

◆ UNUSED

#define UNUSED

◆ VIRTUAL_TO_PHYSICAL

#define VIRTUAL_TO_PHYSICAL (   addr)    ((uintptr_t)(addr) & 0x1FFFFFFF)

◆ VIRTUAL_TO_PHYSICAL2

#define VIRTUAL_TO_PHYSICAL2 (   addr)    ((u8 *)(addr) - 0x80000000U)