1*c9945492SAndroid Build Coastguard Worker #include <search.h> 2*c9945492SAndroid Build Coastguard Worker #include "tsearch.h" 3*c9945492SAndroid Build Coastguard Worker tfind(const void * key,void * const * rootp,int (* cmp)(const void *,const void *))4*c9945492SAndroid Build Coastguard Workervoid *tfind(const void *key, void *const *rootp, 5*c9945492SAndroid Build Coastguard Worker int(*cmp)(const void *, const void *)) 6*c9945492SAndroid Build Coastguard Worker { 7*c9945492SAndroid Build Coastguard Worker if (!rootp) 8*c9945492SAndroid Build Coastguard Worker return 0; 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker struct node *n = *rootp; 11*c9945492SAndroid Build Coastguard Worker for (;;) { 12*c9945492SAndroid Build Coastguard Worker if (!n) 13*c9945492SAndroid Build Coastguard Worker break; 14*c9945492SAndroid Build Coastguard Worker int c = cmp(key, n->key); 15*c9945492SAndroid Build Coastguard Worker if (!c) 16*c9945492SAndroid Build Coastguard Worker break; 17*c9945492SAndroid Build Coastguard Worker n = n->a[c>0]; 18*c9945492SAndroid Build Coastguard Worker } 19*c9945492SAndroid Build Coastguard Worker return n; 20*c9945492SAndroid Build Coastguard Worker } 21