1255e72915d4cbddceb435e13d81601755714e9fSE Android#ifndef _SEPOL_DSO_H 2255e72915d4cbddceb435e13d81601755714e9fSE Android#define _SEPOL_DSO_H 1 3255e72915d4cbddceb435e13d81601755714e9fSE Android 4255e72915d4cbddceb435e13d81601755714e9fSE Android#ifdef SHARED 5255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden __attribute__ ((visibility ("hidden"))) 6255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden_proto(fct) __hidden_proto (fct, fct##_internal) 7255e72915d4cbddceb435e13d81601755714e9fSE Android# define __hidden_proto(fct, internal) \ 8255e72915d4cbddceb435e13d81601755714e9fSE Android extern __typeof (fct) internal; \ 9255e72915d4cbddceb435e13d81601755714e9fSE Android extern __typeof (fct) fct __asm (#internal) hidden; 10255e72915d4cbddceb435e13d81601755714e9fSE Android# if defined(__alpha__) || defined(__mips__) 11255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden_def(fct) \ 12255e72915d4cbddceb435e13d81601755714e9fSE Android asm (".globl " #fct "\n" #fct " = " #fct "_internal"); 13255e72915d4cbddceb435e13d81601755714e9fSE Android# else 14255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden_def(fct) \ 15255e72915d4cbddceb435e13d81601755714e9fSE Android asm (".globl " #fct "\n.set " #fct ", " #fct "_internal"); 16255e72915d4cbddceb435e13d81601755714e9fSE Android#endif 17255e72915d4cbddceb435e13d81601755714e9fSE Android#else 18255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden 19255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden_proto(fct) 20255e72915d4cbddceb435e13d81601755714e9fSE Android# define hidden_def(fct) 21255e72915d4cbddceb435e13d81601755714e9fSE Android#endif 22255e72915d4cbddceb435e13d81601755714e9fSE Android 23255e72915d4cbddceb435e13d81601755714e9fSE Android#endif 24