X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fmacro.h;h=9bf81dc3cc541229bebe333d8d3ee31074ffe68b;hb=a5e4972c8956cecf35fa4780e1cfe7c378bfcba1;hp=99dc733853ea0dd8abe37db98a26d85f7c59f94f;hpb=e86b80b834016d273196c5ec9687fddcddcf9381;p=elogind.git diff --git a/src/shared/macro.h b/src/shared/macro.h index 99dc73385..9bf81dc3c 100644 --- a/src/shared/macro.h +++ b/src/shared/macro.h @@ -45,6 +45,7 @@ #define _weakref_(x) __attribute__((weakref(#x))) #define _introspect_(x) __attribute__((section("introspect." x))) #define _alignas_(x) __attribute__((aligned(__alignof(x)))) +#define _cleanup_(x) __attribute__((cleanup(x))) /* automake test harness */ #define EXIT_TEST_SKIP 77 @@ -65,12 +66,16 @@ #error "Wut? Pointers are neither 4 nor 8 bytes long?" #endif +#define ALIGN_PTR(p) ((void*) ALIGN((unsigned long) p)) +#define ALIGN4_PTR(p) ((void*) ALIGN4((unsigned long) p)) #define ALIGN8_PTR(p) ((void*) ALIGN8((unsigned long) p)) static inline size_t ALIGN_TO(size_t l, size_t ali) { return ((l + ali - 1) & ~(ali - 1)); } +#define ALIGN_TO_PTR(p, ali) ((void*) ALIGN_TO((unsigned long) p)) + #define ELEMENTSOF(x) (sizeof(x)/sizeof((x)[0])) /* @@ -214,17 +219,6 @@ static inline size_t IOVEC_INCREMENT(struct iovec *i, unsigned n, size_t k) { return k; } -#define _cleanup_free_ __attribute__((cleanup(freep))) -#define _cleanup_fclose_ __attribute__((cleanup(fclosep))) -#define _cleanup_pclose_ __attribute__((cleanup(pclosep))) -#define _cleanup_close_ __attribute__((cleanup(closep))) -#define _cleanup_closedir_ __attribute__((cleanup(closedirp))) -#define _cleanup_umask_ __attribute__((cleanup(umaskp))) -#define _cleanup_set_free_ __attribute__((cleanup(set_freep))) -#define _cleanup_set_free_free_ __attribute__((cleanup(set_free_freep))) -#define _cleanup_strv_free_ __attribute__((cleanup(strv_freep))) -#define _cleanup_journal_close_ __attribute__((cleanup(journal_closep))) - #define VA_FORMAT_ADVANCE(format, ap) \ do { \ int _argtypes[128]; \