From: Krzysztof Opasiak Date: Mon, 29 Jun 2015 17:05:27 +0000 (+0200) Subject: Add some common macros X-Git-Tag: submit/tizen_common/20160317.155115~61 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=13daf949ac76c7aadec99ee51941a2fb2f94c7e6;p=platform%2Fcore%2Fapi%2Fusb-host.git Add some common macros Add ARRAY_SIZE() and container_of() macros to this project. Change-Id: Ic1bad59c01f97c4b1a56bbf41d2df61ed3d9e506 Signed-off-by: Krzysztof Opasiak --- diff --git a/include/common.h b/include/common.h new file mode 100644 index 0000000..2475f23 --- /dev/null +++ b/include/common.h @@ -0,0 +1,38 @@ +/* + * common.h + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef LIBHUSB_COMMON_H +#define LIBHUSB_COMMON_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define container_of(ptr, type, field) ({ \ + const typeof(((type *)0)->field) *member = (ptr); \ + (type *)( (char *)member - offsetof(type, field) ); \ + }) + +#define ARRAY_SIZE(a) (sizeof(a)/sizeof(*a)) + +#ifdef __cplusplus +} +#endif + +#endif /* LIBHUSB_COMMON_H */