1*c9945492SAndroid Build Coastguard Worker #ifndef _SIGNAL_H 2*c9945492SAndroid Build Coastguard Worker #define _SIGNAL_H 3*c9945492SAndroid Build Coastguard Worker 4*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 5*c9945492SAndroid Build Coastguard Worker extern "C" { 6*c9945492SAndroid Build Coastguard Worker #endif 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker #include <features.h> 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 11*c9945492SAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 12*c9945492SAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 13*c9945492SAndroid Build Coastguard Worker 14*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 15*c9945492SAndroid Build Coastguard Worker #define __ucontext ucontext 16*c9945492SAndroid Build Coastguard Worker #endif 17*c9945492SAndroid Build Coastguard Worker 18*c9945492SAndroid Build Coastguard Worker #define __NEED_size_t 19*c9945492SAndroid Build Coastguard Worker #define __NEED_pid_t 20*c9945492SAndroid Build Coastguard Worker #define __NEED_uid_t 21*c9945492SAndroid Build Coastguard Worker #define __NEED_struct_timespec 22*c9945492SAndroid Build Coastguard Worker #define __NEED_pthread_t 23*c9945492SAndroid Build Coastguard Worker #define __NEED_pthread_attr_t 24*c9945492SAndroid Build Coastguard Worker #define __NEED_time_t 25*c9945492SAndroid Build Coastguard Worker #define __NEED_clock_t 26*c9945492SAndroid Build Coastguard Worker #define __NEED_sigset_t 27*c9945492SAndroid Build Coastguard Worker 28*c9945492SAndroid Build Coastguard Worker #include <bits/alltypes.h> 29*c9945492SAndroid Build Coastguard Worker 30*c9945492SAndroid Build Coastguard Worker #define SIG_BLOCK 0 31*c9945492SAndroid Build Coastguard Worker #define SIG_UNBLOCK 1 32*c9945492SAndroid Build Coastguard Worker #define SIG_SETMASK 2 33*c9945492SAndroid Build Coastguard Worker 34*c9945492SAndroid Build Coastguard Worker #define SI_ASYNCNL (-60) 35*c9945492SAndroid Build Coastguard Worker #define SI_TKILL (-6) 36*c9945492SAndroid Build Coastguard Worker #define SI_SIGIO (-5) 37*c9945492SAndroid Build Coastguard Worker #define SI_ASYNCIO (-4) 38*c9945492SAndroid Build Coastguard Worker #define SI_MESGQ (-3) 39*c9945492SAndroid Build Coastguard Worker #define SI_TIMER (-2) 40*c9945492SAndroid Build Coastguard Worker #define SI_QUEUE (-1) 41*c9945492SAndroid Build Coastguard Worker #define SI_USER 0 42*c9945492SAndroid Build Coastguard Worker #define SI_KERNEL 128 43*c9945492SAndroid Build Coastguard Worker 44*c9945492SAndroid Build Coastguard Worker typedef struct sigaltstack stack_t; 45*c9945492SAndroid Build Coastguard Worker 46*c9945492SAndroid Build Coastguard Worker #endif 47*c9945492SAndroid Build Coastguard Worker 48*c9945492SAndroid Build Coastguard Worker #include <bits/signal.h> 49*c9945492SAndroid Build Coastguard Worker 50*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 51*c9945492SAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 52*c9945492SAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 53*c9945492SAndroid Build Coastguard Worker 54*c9945492SAndroid Build Coastguard Worker #define SIG_HOLD ((void (*)(int)) 2) 55*c9945492SAndroid Build Coastguard Worker 56*c9945492SAndroid Build Coastguard Worker #define FPE_INTDIV 1 57*c9945492SAndroid Build Coastguard Worker #define FPE_INTOVF 2 58*c9945492SAndroid Build Coastguard Worker #define FPE_FLTDIV 3 59*c9945492SAndroid Build Coastguard Worker #define FPE_FLTOVF 4 60*c9945492SAndroid Build Coastguard Worker #define FPE_FLTUND 5 61*c9945492SAndroid Build Coastguard Worker #define FPE_FLTRES 6 62*c9945492SAndroid Build Coastguard Worker #define FPE_FLTINV 7 63*c9945492SAndroid Build Coastguard Worker #define FPE_FLTSUB 8 64*c9945492SAndroid Build Coastguard Worker 65*c9945492SAndroid Build Coastguard Worker #define ILL_ILLOPC 1 66*c9945492SAndroid Build Coastguard Worker #define ILL_ILLOPN 2 67*c9945492SAndroid Build Coastguard Worker #define ILL_ILLADR 3 68*c9945492SAndroid Build Coastguard Worker #define ILL_ILLTRP 4 69*c9945492SAndroid Build Coastguard Worker #define ILL_PRVOPC 5 70*c9945492SAndroid Build Coastguard Worker #define ILL_PRVREG 6 71*c9945492SAndroid Build Coastguard Worker #define ILL_COPROC 7 72*c9945492SAndroid Build Coastguard Worker #define ILL_BADSTK 8 73*c9945492SAndroid Build Coastguard Worker 74*c9945492SAndroid Build Coastguard Worker #define SEGV_MAPERR 1 75*c9945492SAndroid Build Coastguard Worker #define SEGV_ACCERR 2 76*c9945492SAndroid Build Coastguard Worker #define SEGV_BNDERR 3 77*c9945492SAndroid Build Coastguard Worker #define SEGV_PKUERR 4 78*c9945492SAndroid Build Coastguard Worker #define SEGV_MTEAERR 8 79*c9945492SAndroid Build Coastguard Worker #define SEGV_MTESERR 9 80*c9945492SAndroid Build Coastguard Worker 81*c9945492SAndroid Build Coastguard Worker #define BUS_ADRALN 1 82*c9945492SAndroid Build Coastguard Worker #define BUS_ADRERR 2 83*c9945492SAndroid Build Coastguard Worker #define BUS_OBJERR 3 84*c9945492SAndroid Build Coastguard Worker #define BUS_MCEERR_AR 4 85*c9945492SAndroid Build Coastguard Worker #define BUS_MCEERR_AO 5 86*c9945492SAndroid Build Coastguard Worker 87*c9945492SAndroid Build Coastguard Worker #define CLD_EXITED 1 88*c9945492SAndroid Build Coastguard Worker #define CLD_KILLED 2 89*c9945492SAndroid Build Coastguard Worker #define CLD_DUMPED 3 90*c9945492SAndroid Build Coastguard Worker #define CLD_TRAPPED 4 91*c9945492SAndroid Build Coastguard Worker #define CLD_STOPPED 5 92*c9945492SAndroid Build Coastguard Worker #define CLD_CONTINUED 6 93*c9945492SAndroid Build Coastguard Worker 94*c9945492SAndroid Build Coastguard Worker union sigval { 95*c9945492SAndroid Build Coastguard Worker int sival_int; 96*c9945492SAndroid Build Coastguard Worker void *sival_ptr; 97*c9945492SAndroid Build Coastguard Worker }; 98*c9945492SAndroid Build Coastguard Worker 99*c9945492SAndroid Build Coastguard Worker typedef struct { 100*c9945492SAndroid Build Coastguard Worker #ifdef __SI_SWAP_ERRNO_CODE 101*c9945492SAndroid Build Coastguard Worker int si_signo, si_code, si_errno; 102*c9945492SAndroid Build Coastguard Worker #else 103*c9945492SAndroid Build Coastguard Worker int si_signo, si_errno, si_code; 104*c9945492SAndroid Build Coastguard Worker #endif 105*c9945492SAndroid Build Coastguard Worker union { 106*c9945492SAndroid Build Coastguard Worker char __pad[128 - 2*sizeof(int) - sizeof(long)]; 107*c9945492SAndroid Build Coastguard Worker struct { 108*c9945492SAndroid Build Coastguard Worker union { 109*c9945492SAndroid Build Coastguard Worker struct { 110*c9945492SAndroid Build Coastguard Worker pid_t si_pid; 111*c9945492SAndroid Build Coastguard Worker uid_t si_uid; 112*c9945492SAndroid Build Coastguard Worker } __piduid; 113*c9945492SAndroid Build Coastguard Worker struct { 114*c9945492SAndroid Build Coastguard Worker int si_timerid; 115*c9945492SAndroid Build Coastguard Worker int si_overrun; 116*c9945492SAndroid Build Coastguard Worker } __timer; 117*c9945492SAndroid Build Coastguard Worker } __first; 118*c9945492SAndroid Build Coastguard Worker union { 119*c9945492SAndroid Build Coastguard Worker union sigval si_value; 120*c9945492SAndroid Build Coastguard Worker struct { 121*c9945492SAndroid Build Coastguard Worker int si_status; 122*c9945492SAndroid Build Coastguard Worker clock_t si_utime, si_stime; 123*c9945492SAndroid Build Coastguard Worker } __sigchld; 124*c9945492SAndroid Build Coastguard Worker } __second; 125*c9945492SAndroid Build Coastguard Worker } __si_common; 126*c9945492SAndroid Build Coastguard Worker struct { 127*c9945492SAndroid Build Coastguard Worker void *si_addr; 128*c9945492SAndroid Build Coastguard Worker short si_addr_lsb; 129*c9945492SAndroid Build Coastguard Worker union { 130*c9945492SAndroid Build Coastguard Worker struct { 131*c9945492SAndroid Build Coastguard Worker void *si_lower; 132*c9945492SAndroid Build Coastguard Worker void *si_upper; 133*c9945492SAndroid Build Coastguard Worker } __addr_bnd; 134*c9945492SAndroid Build Coastguard Worker unsigned si_pkey; 135*c9945492SAndroid Build Coastguard Worker } __first; 136*c9945492SAndroid Build Coastguard Worker } __sigfault; 137*c9945492SAndroid Build Coastguard Worker struct { 138*c9945492SAndroid Build Coastguard Worker long si_band; 139*c9945492SAndroid Build Coastguard Worker int si_fd; 140*c9945492SAndroid Build Coastguard Worker } __sigpoll; 141*c9945492SAndroid Build Coastguard Worker struct { 142*c9945492SAndroid Build Coastguard Worker void *si_call_addr; 143*c9945492SAndroid Build Coastguard Worker int si_syscall; 144*c9945492SAndroid Build Coastguard Worker unsigned si_arch; 145*c9945492SAndroid Build Coastguard Worker } __sigsys; 146*c9945492SAndroid Build Coastguard Worker } __si_fields; 147*c9945492SAndroid Build Coastguard Worker } siginfo_t; 148*c9945492SAndroid Build Coastguard Worker #define si_pid __si_fields.__si_common.__first.__piduid.si_pid 149*c9945492SAndroid Build Coastguard Worker #define si_uid __si_fields.__si_common.__first.__piduid.si_uid 150*c9945492SAndroid Build Coastguard Worker #define si_status __si_fields.__si_common.__second.__sigchld.si_status 151*c9945492SAndroid Build Coastguard Worker #define si_utime __si_fields.__si_common.__second.__sigchld.si_utime 152*c9945492SAndroid Build Coastguard Worker #define si_stime __si_fields.__si_common.__second.__sigchld.si_stime 153*c9945492SAndroid Build Coastguard Worker #define si_value __si_fields.__si_common.__second.si_value 154*c9945492SAndroid Build Coastguard Worker #define si_addr __si_fields.__sigfault.si_addr 155*c9945492SAndroid Build Coastguard Worker #define si_addr_lsb __si_fields.__sigfault.si_addr_lsb 156*c9945492SAndroid Build Coastguard Worker #define si_lower __si_fields.__sigfault.__first.__addr_bnd.si_lower 157*c9945492SAndroid Build Coastguard Worker #define si_upper __si_fields.__sigfault.__first.__addr_bnd.si_upper 158*c9945492SAndroid Build Coastguard Worker #define si_pkey __si_fields.__sigfault.__first.si_pkey 159*c9945492SAndroid Build Coastguard Worker #define si_band __si_fields.__sigpoll.si_band 160*c9945492SAndroid Build Coastguard Worker #define si_fd __si_fields.__sigpoll.si_fd 161*c9945492SAndroid Build Coastguard Worker #define si_timerid __si_fields.__si_common.__first.__timer.si_timerid 162*c9945492SAndroid Build Coastguard Worker #define si_overrun __si_fields.__si_common.__first.__timer.si_overrun 163*c9945492SAndroid Build Coastguard Worker #define si_ptr si_value.sival_ptr 164*c9945492SAndroid Build Coastguard Worker #define si_int si_value.sival_int 165*c9945492SAndroid Build Coastguard Worker #define si_call_addr __si_fields.__sigsys.si_call_addr 166*c9945492SAndroid Build Coastguard Worker #define si_syscall __si_fields.__sigsys.si_syscall 167*c9945492SAndroid Build Coastguard Worker #define si_arch __si_fields.__sigsys.si_arch 168*c9945492SAndroid Build Coastguard Worker 169*c9945492SAndroid Build Coastguard Worker struct sigaction { 170*c9945492SAndroid Build Coastguard Worker union { 171*c9945492SAndroid Build Coastguard Worker void (*sa_handler)(int); 172*c9945492SAndroid Build Coastguard Worker void (*sa_sigaction)(int, siginfo_t *, void *); 173*c9945492SAndroid Build Coastguard Worker } __sa_handler; 174*c9945492SAndroid Build Coastguard Worker sigset_t sa_mask; 175*c9945492SAndroid Build Coastguard Worker int sa_flags; 176*c9945492SAndroid Build Coastguard Worker void (*sa_restorer)(void); 177*c9945492SAndroid Build Coastguard Worker }; 178*c9945492SAndroid Build Coastguard Worker #define sa_handler __sa_handler.sa_handler 179*c9945492SAndroid Build Coastguard Worker #define sa_sigaction __sa_handler.sa_sigaction 180*c9945492SAndroid Build Coastguard Worker 181*c9945492SAndroid Build Coastguard Worker #define SA_UNSUPPORTED 0x00000400 182*c9945492SAndroid Build Coastguard Worker #define SA_EXPOSE_TAGBITS 0x00000800 183*c9945492SAndroid Build Coastguard Worker 184*c9945492SAndroid Build Coastguard Worker struct sigevent { 185*c9945492SAndroid Build Coastguard Worker union sigval sigev_value; 186*c9945492SAndroid Build Coastguard Worker int sigev_signo; 187*c9945492SAndroid Build Coastguard Worker int sigev_notify; 188*c9945492SAndroid Build Coastguard Worker union { 189*c9945492SAndroid Build Coastguard Worker char __pad[64 - 2*sizeof(int) - sizeof(union sigval)]; 190*c9945492SAndroid Build Coastguard Worker pid_t sigev_notify_thread_id; 191*c9945492SAndroid Build Coastguard Worker struct { 192*c9945492SAndroid Build Coastguard Worker void (*sigev_notify_function)(union sigval); 193*c9945492SAndroid Build Coastguard Worker pthread_attr_t *sigev_notify_attributes; 194*c9945492SAndroid Build Coastguard Worker } __sev_thread; 195*c9945492SAndroid Build Coastguard Worker } __sev_fields; 196*c9945492SAndroid Build Coastguard Worker }; 197*c9945492SAndroid Build Coastguard Worker 198*c9945492SAndroid Build Coastguard Worker #define sigev_notify_thread_id __sev_fields.sigev_notify_thread_id 199*c9945492SAndroid Build Coastguard Worker #define sigev_notify_function __sev_fields.__sev_thread.sigev_notify_function 200*c9945492SAndroid Build Coastguard Worker #define sigev_notify_attributes __sev_fields.__sev_thread.sigev_notify_attributes 201*c9945492SAndroid Build Coastguard Worker 202*c9945492SAndroid Build Coastguard Worker #define SIGEV_SIGNAL 0 203*c9945492SAndroid Build Coastguard Worker #define SIGEV_NONE 1 204*c9945492SAndroid Build Coastguard Worker #define SIGEV_THREAD 2 205*c9945492SAndroid Build Coastguard Worker #define SIGEV_THREAD_ID 4 206*c9945492SAndroid Build Coastguard Worker 207*c9945492SAndroid Build Coastguard Worker int __libc_current_sigrtmin(void); 208*c9945492SAndroid Build Coastguard Worker int __libc_current_sigrtmax(void); 209*c9945492SAndroid Build Coastguard Worker 210*c9945492SAndroid Build Coastguard Worker #define SIGRTMIN (__libc_current_sigrtmin()) 211*c9945492SAndroid Build Coastguard Worker #define SIGRTMAX (__libc_current_sigrtmax()) 212*c9945492SAndroid Build Coastguard Worker 213*c9945492SAndroid Build Coastguard Worker int kill(pid_t, int); 214*c9945492SAndroid Build Coastguard Worker 215*c9945492SAndroid Build Coastguard Worker int sigemptyset(sigset_t *); 216*c9945492SAndroid Build Coastguard Worker int sigfillset(sigset_t *); 217*c9945492SAndroid Build Coastguard Worker int sigaddset(sigset_t *, int); 218*c9945492SAndroid Build Coastguard Worker int sigdelset(sigset_t *, int); 219*c9945492SAndroid Build Coastguard Worker int sigismember(const sigset_t *, int); 220*c9945492SAndroid Build Coastguard Worker 221*c9945492SAndroid Build Coastguard Worker int sigprocmask(int, const sigset_t *__restrict, sigset_t *__restrict); 222*c9945492SAndroid Build Coastguard Worker int sigsuspend(const sigset_t *); 223*c9945492SAndroid Build Coastguard Worker int sigaction(int, const struct sigaction *__restrict, struct sigaction *__restrict); 224*c9945492SAndroid Build Coastguard Worker int sigpending(sigset_t *); 225*c9945492SAndroid Build Coastguard Worker int sigwait(const sigset_t *__restrict, int *__restrict); 226*c9945492SAndroid Build Coastguard Worker int sigwaitinfo(const sigset_t *__restrict, siginfo_t *__restrict); 227*c9945492SAndroid Build Coastguard Worker int sigtimedwait(const sigset_t *__restrict, siginfo_t *__restrict, const struct timespec *__restrict); 228*c9945492SAndroid Build Coastguard Worker int sigqueue(pid_t, int, union sigval); 229*c9945492SAndroid Build Coastguard Worker 230*c9945492SAndroid Build Coastguard Worker int pthread_sigmask(int, const sigset_t *__restrict, sigset_t *__restrict); 231*c9945492SAndroid Build Coastguard Worker int pthread_kill(pthread_t, int); 232*c9945492SAndroid Build Coastguard Worker 233*c9945492SAndroid Build Coastguard Worker void psiginfo(const siginfo_t *, const char *); 234*c9945492SAndroid Build Coastguard Worker void psignal(int, const char *); 235*c9945492SAndroid Build Coastguard Worker 236*c9945492SAndroid Build Coastguard Worker #endif 237*c9945492SAndroid Build Coastguard Worker 238*c9945492SAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 239*c9945492SAndroid Build Coastguard Worker int killpg(pid_t, int); 240*c9945492SAndroid Build Coastguard Worker int sigaltstack(const stack_t *__restrict, stack_t *__restrict); 241*c9945492SAndroid Build Coastguard Worker int sighold(int); 242*c9945492SAndroid Build Coastguard Worker int sigignore(int); 243*c9945492SAndroid Build Coastguard Worker int siginterrupt(int, int); 244*c9945492SAndroid Build Coastguard Worker int sigpause(int); 245*c9945492SAndroid Build Coastguard Worker int sigrelse(int); 246*c9945492SAndroid Build Coastguard Worker void (*sigset(int, void (*)(int)))(int); 247*c9945492SAndroid Build Coastguard Worker #define TRAP_BRKPT 1 248*c9945492SAndroid Build Coastguard Worker #define TRAP_TRACE 2 249*c9945492SAndroid Build Coastguard Worker #define TRAP_BRANCH 3 250*c9945492SAndroid Build Coastguard Worker #define TRAP_HWBKPT 4 251*c9945492SAndroid Build Coastguard Worker #define TRAP_UNK 5 252*c9945492SAndroid Build Coastguard Worker #define POLL_IN 1 253*c9945492SAndroid Build Coastguard Worker #define POLL_OUT 2 254*c9945492SAndroid Build Coastguard Worker #define POLL_MSG 3 255*c9945492SAndroid Build Coastguard Worker #define POLL_ERR 4 256*c9945492SAndroid Build Coastguard Worker #define POLL_PRI 5 257*c9945492SAndroid Build Coastguard Worker #define POLL_HUP 6 258*c9945492SAndroid Build Coastguard Worker #define SS_ONSTACK 1 259*c9945492SAndroid Build Coastguard Worker #define SS_DISABLE 2 260*c9945492SAndroid Build Coastguard Worker #define SS_AUTODISARM (1U << 31) 261*c9945492SAndroid Build Coastguard Worker #define SS_FLAG_BITS SS_AUTODISARM 262*c9945492SAndroid Build Coastguard Worker #endif 263*c9945492SAndroid Build Coastguard Worker 264*c9945492SAndroid Build Coastguard Worker #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 265*c9945492SAndroid Build Coastguard Worker #define NSIG _NSIG 266*c9945492SAndroid Build Coastguard Worker typedef void (*sig_t)(int); 267*c9945492SAndroid Build Coastguard Worker 268*c9945492SAndroid Build Coastguard Worker #define SYS_SECCOMP 1 269*c9945492SAndroid Build Coastguard Worker #define SYS_USER_DISPATCH 2 270*c9945492SAndroid Build Coastguard Worker #endif 271*c9945492SAndroid Build Coastguard Worker 272*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 273*c9945492SAndroid Build Coastguard Worker typedef void (*sighandler_t)(int); 274*c9945492SAndroid Build Coastguard Worker void (*bsd_signal(int, void (*)(int)))(int); 275*c9945492SAndroid Build Coastguard Worker int sigisemptyset(const sigset_t *); 276*c9945492SAndroid Build Coastguard Worker int sigorset (sigset_t *, const sigset_t *, const sigset_t *); 277*c9945492SAndroid Build Coastguard Worker int sigandset(sigset_t *, const sigset_t *, const sigset_t *); 278*c9945492SAndroid Build Coastguard Worker 279*c9945492SAndroid Build Coastguard Worker #define SA_NOMASK SA_NODEFER 280*c9945492SAndroid Build Coastguard Worker #define SA_ONESHOT SA_RESETHAND 281*c9945492SAndroid Build Coastguard Worker #endif 282*c9945492SAndroid Build Coastguard Worker 283*c9945492SAndroid Build Coastguard Worker #define SIG_ERR ((void (*)(int))-1) 284*c9945492SAndroid Build Coastguard Worker #define SIG_DFL ((void (*)(int)) 0) 285*c9945492SAndroid Build Coastguard Worker #define SIG_IGN ((void (*)(int)) 1) 286*c9945492SAndroid Build Coastguard Worker 287*c9945492SAndroid Build Coastguard Worker typedef int sig_atomic_t; 288*c9945492SAndroid Build Coastguard Worker 289*c9945492SAndroid Build Coastguard Worker void (*signal(int, void (*)(int)))(int); 290*c9945492SAndroid Build Coastguard Worker int raise(int); 291*c9945492SAndroid Build Coastguard Worker 292*c9945492SAndroid Build Coastguard Worker #if _REDIR_TIME64 293*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 294*c9945492SAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 295*c9945492SAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 296*c9945492SAndroid Build Coastguard Worker __REDIR(sigtimedwait, __sigtimedwait_time64); 297*c9945492SAndroid Build Coastguard Worker #endif 298*c9945492SAndroid Build Coastguard Worker #endif 299*c9945492SAndroid Build Coastguard Worker 300*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 301*c9945492SAndroid Build Coastguard Worker } 302*c9945492SAndroid Build Coastguard Worker #endif 303*c9945492SAndroid Build Coastguard Worker 304*c9945492SAndroid Build Coastguard Worker #endif 305