cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a07c526460d1a3aa0a4e863a33059f1ade32c310
commit a07c526460d1a3aa0a4e863a33059f1ade32c310 Author: Cedric BAIL <ced...@osg.samsung.com> Date: Sun Aug 2 21:56:08 2015 +0200 eina: add intermediate inline function for eina_crc. This is necessary to make my life easier when adding assembling implementation of eina_crc. --- src/Makefile_Eina.am | 1 + src/lib/eina/eina_crc.c | 2 +- src/lib/eina/eina_crc.h | 4 +++- src/lib/eina/eina_inline_crc.x | 30 ++++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/Makefile_Eina.am b/src/Makefile_Eina.am index 316542c..aab92e2 100644 --- a/src/Makefile_Eina.am +++ b/src/Makefile_Eina.am @@ -89,6 +89,7 @@ lib/eina/eina_thread_queue.h \ lib/eina/eina_matrix.h \ lib/eina/eina_quad.h \ lib/eina/eina_crc.h \ +lib/eina/eina_inline_crc.x \ lib/eina/eina_evlog.h \ lib/eina/eina_util.h \ lib/eina/eina_quaternion.h diff --git a/src/lib/eina/eina_crc.c b/src/lib/eina/eina_crc.c index 29ec08c..e509dc8 100644 --- a/src/lib/eina/eina_crc.c +++ b/src/lib/eina/eina_crc.c @@ -288,7 +288,7 @@ static const unsigned int table[8][256] = }; EAPI unsigned int -eina_crc(const char *data, int len, unsigned int seed, Eina_Bool start_stream) +_eina_crc(const char *data, int len, unsigned int seed, Eina_Bool start_stream) { unsigned int crc; unsigned int* curr = (unsigned int*) data; diff --git a/src/lib/eina/eina_crc.h b/src/lib/eina/eina_crc.h index 099a921..819ca91 100644 --- a/src/lib/eina/eina_crc.h +++ b/src/lib/eina/eina_crc.h @@ -40,6 +40,8 @@ * * @since 1.15 */ -EAPI unsigned int eina_crc(const char *key, int len, unsigned int seed, Eina_Bool start_stream) EINA_ARG_NONNULL(2, 3); +static inline unsigned int eina_crc(const char *key, int len, unsigned int seed, Eina_Bool start_stream) EINA_ARG_NONNULL(2, 3); + +#include "eina_inline_crc.x" #endif diff --git a/src/lib/eina/eina_inline_crc.x b/src/lib/eina/eina_inline_crc.x new file mode 100644 index 0000000..41589f1 --- /dev/null +++ b/src/lib/eina/eina_inline_crc.x @@ -0,0 +1,30 @@ +/* EINA - EFL data type library + * Copyright (C) 20015 Cedric BAIL + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; + * if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef EINA_INLINE_CRC_X_ +#define EINA_INLINE_CRC_X_ + +EAPI unsigned int _eina_crc(const char *data, int len, unsigned int seed, Eina_Bool start_stream); + +static inline unsigned int +eina_crc(const char *key, int len, unsigned int seed, Eina_Bool start_stream) +{ + return _eina_crc(key, len, seed, start_stream); +} + +#endif --