14a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown/* 24a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * Copyright (C) 2012 The Android Open Source Project 34a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * 44a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 54a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * you may not use this file except in compliance with the License. 64a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * You may obtain a copy of the License at 74a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * 84a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 94a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * 104a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * Unless required by applicable law or agreed to in writing, software 114a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 124a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * See the License for the specific language governing permissions and 144a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * limitations under the License. 154a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown */ 164a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 174a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown/* 184a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * Provides a portable version of qsort_r, called qsort_r_compat, which is a 194a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * reentrant variant of qsort that passes a user data pointer to its comparator. 204a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown * This implementation follows the BSD parameter convention. 214a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown */ 224a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 234a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#ifndef _LIBS_CUTILS_QSORT_R_COMPAT_H 244a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#define _LIBS_CUTILS_QSORT_R_COMPAT_H 254a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 264a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#include <stdlib.h> 274a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 284a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#ifdef __cplusplus 294a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brownextern "C" { 304a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#endif 314a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 324a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brownvoid qsort_r_compat(void* base, size_t nel, size_t width, void* thunk, 334a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown int (*compar)(void*, const void* , const void* )); 344a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 354a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#ifdef __cplusplus 364a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown} 374a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#endif 384a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown 394a6b384f607feed3755cfcbcdfded55fc2ccce82Jeff Brown#endif // _LIBS_CUTILS_QSORT_R_COMPAT_H 40