00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef LIBBLURAY_ATTRIBUTES_H_
00021 #define LIBBLURAY_ATTRIBUTES_H_
00022
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00027 #if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3 ))
00028 # define BD_ATTR_FORMAT_PRINTF(format,var) __attribute__((__format__(__printf__,format,var)))
00029 # define BD_ATTR_MALLOC __attribute__((__malloc__))
00030 # define BD_ATTR_PACKED __attribute__((packed))
00031 #else
00032 # define BD_ATTR_FORMAT_PRINTF(format,var)
00033 # define BD_ATTR_MALLOC
00034 # define BD_ATTR_PACKED
00035 #endif
00036
00037 #if defined(_WIN32)
00038 # if defined(__GNUC__)
00039 # define BD_PUBLIC __attribute__((dllexport))
00040 # define BD_PRIVATE
00041 # else
00042 # define BD_PUBLIC __declspec(dllexport)
00043 # define BD_PRIVATE
00044 # endif
00045 #elif defined(__GNUC__) && __GNUC__ >= 4
00046 # define BD_PUBLIC __attribute__((visibility("default")))
00047 # define BD_PRIVATE __attribute__((visibility("hidden")))
00048 #else
00049 # define BD_PUBLIC
00050 # define BD_PRIVATE
00051 #endif
00052
00053 #ifdef __cplusplus
00054 };
00055 #endif
00056
00057 #endif