libtonc: Type attributes

Tonclib

Type attributes
[Types and attributes]


Defines

#define IWRAM_DATA   __attribute__((section(".iwram")))
 Put variable in IWRAM (default).
#define EWRAM_DATA   __attribute__((section(".ewram")))
 Put variable in EWRAM.
#define EWRAM_BSS   __attribute__((section(".sbss")))
 Put non-initialized variable in EWRAM.
#define IWRAM_CODE   __attribute__((section(".iwram"), long_call))
 Put function in IWRAM.
#define EWRAM_CODE   __attribute__((section(".ewram"), long_call))
 Put function in EWRAM.
#define ALIGN(n)   __attribute__((aligned(n)))
 Force a variable to an n-byte boundary.
#define ALIGN4   __attribute__((aligned(4)))
 Force word alignment.
#define PACKED   __attribute__((packed))
 Pack aggregate members.
#define DEPRECATED   __attribute__((deprecated))
 Deprecated notice.
#define INLINE   static inline
 Inline function declarator.

Define Documentation

#define ALIGN4   __attribute__((aligned(4)))

Force word alignment.

Note:
In the old days, GCC aggregates were always word aligned. In the EABI environment (devkitPro r19 and higher), they are aligned to their widest member. While technically a good thing, it may cause problems for struct-copies. If you have aggregates that can multiples of 4 in size but don't have word members, consider using this attribute to make struct-copies possible again.

#define DEPRECATED   __attribute__((deprecated))

Deprecated notice.

Indicates that this function/type/variable should not be used anymore. Replacements are (usually) present somewhere as well.

#define INLINE   static inline

Inline function declarator.

`inline' inlines the function when -O > 0 when called, but also creates a body for the function itself `static' removes the body as well

#define PACKED   __attribute__((packed))

Pack aggregate members.

By default, members in aggregates are aligned to their native boundaries. Adding this prevents that. It will slow access though.


Generated on Mon Aug 25 17:03:57 2008 for libtonc by  doxygen 1.5.3