113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#ifndef _SEPOL_DSO_H 213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define _SEPOL_DSO_H 1 313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#ifdef SHARED 513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden __attribute__ ((visibility ("hidden"))) 613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden_proto(fct) __hidden_proto (fct, fct##_internal) 713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define __hidden_proto(fct, internal) \ 813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle extern __typeof (fct) internal; \ 913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle extern __typeof (fct) fct __asm (#internal) hidden; 1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# if defined(__alpha__) || defined(__mips__) 1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden_def(fct) \ 1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle asm (".globl " #fct "\n" #fct " = " #fct "_internal"); 1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# else 1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden_def(fct) \ 1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle asm (".globl " #fct "\n.set " #fct ", " #fct "_internal"); 1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif 1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#else 1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden 1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden_proto(fct) 2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle# define hidden_def(fct) 2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif 2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle 2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif 24