Skip to content
Snippets Groups Projects
common.h 28.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	ALLOC_ALIGN_BUFFER_PAD(type, name, size, align, 1)
    #define ALLOC_CACHE_ALIGN_BUFFER_PAD(type, name, size, pad)		\
    	ALLOC_ALIGN_BUFFER_PAD(type, name, size, ARCH_DMA_MINALIGN, pad)
    
    #define ALLOC_CACHE_ALIGN_BUFFER(type, name, size)			\
    
    	ALLOC_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN)
    
    /*
     * DEFINE_CACHE_ALIGN_BUFFER() is similar to ALLOC_CACHE_ALIGN_BUFFER, but it's
     * purpose is to allow allocating aligned buffers outside of function scope.
     * Usage of this macro shall be avoided or used with extreme care!
     */
    #define DEFINE_ALIGN_BUFFER(type, name, size, align)			\
    
    	static char __##name[ALIGN(size * sizeof(type), align)]	\
    
    	static type *name = (type *)__##name
    #define DEFINE_CACHE_ALIGN_BUFFER(type, name, size)			\
    	DEFINE_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN)
    
    /*
     * check_member() - Check the offset of a structure member
     *
     * @structure:	Name of structure (e.g. global_data)
     * @member:	Name of member (e.g. baudrate)
     * @offset:	Expected offset in bytes
     */
    #define check_member(structure, member, offset) _Static_assert( \
    	offsetof(struct structure, member) == offset, \
    	"`struct " #structure "` offset for `" #member "` is not " #offset)
    
    
    /* Avoid using CONFIG_EFI_STUB directly as we may boot from other loaders */
    #ifdef CONFIG_EFI_STUB
    #define ll_boot_init()	false
    #else
    #define ll_boot_init()	true
    #endif
    
    
    /* Pull in stuff for the build system */
    #ifdef DO_DEPS_ONLY
    # include <environment.h>
    #endif
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #endif	/* __COMMON_H_ */