added LICENSE, NOTICE files and rpmlint warning fix
[framework/appfw/debug-launchpad.git] / include / simple_util.h
1 /*
2  *  debug-launchpad
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jungmin Cho <chivalry.cho@samsung.com>, Gwangho Hwang <gwang.hwang@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23 #ifndef __SIMPLE_UTIL__
24 #define __SIMPLE_UTIL__
25
26 #include <unistd.h>
27 #include <ctype.h>
28 #include <dlog.h>
29
30 #ifdef LAUNCHPAD_LOG
31 #undef LOG_TAG
32 #define LOG_TAG "AUL_PAD"
33 #else
34 #undef LOG_TAG
35 #define LOG_TAG "AUL"
36 #endif
37 #ifdef AMD_LOG
38 #undef LOG_TAG
39 #define LOG_TAG "AUL_AMD"
40 #endif
41
42
43 #define MAX_LOCAL_BUFSZ 128
44 #define MAX_PID_STR_BUFSZ 20
45
46 #define _E(fmt, arg...) LOGE(fmt, ##arg)
47 #define _D(fmt, arg...) LOGD(fmt, ##arg)
48 #define _W(fmt, arg...) LOGW(fmt, ##arg)
49
50 #define retvm_if(expr, val, fmt, arg...) do { \
51         if (expr) { \
52                 _E(fmt, ##arg); \
53                 _E("(%s) -> %s() return", #expr, __FUNCTION__); \
54                 return (val); \
55         } \
56 } while (0)
57
58 #define retv_if(expr, val) do { \
59         if (expr) { \
60                 _E("(%s) -> %s() return", #expr, __FUNCTION__); \
61                 return (val); \
62         } \
63 } while (0)
64
65 int __proc_iter_cmdline(int (*iterfunc)
66                          (const char *dname, const char *cmdline, void *priv),
67                         void *priv);
68 int __proc_iter_pgid(int pgid, int (*iterfunc) (int pid, void *priv),
69                      void *priv);
70 char *__proc_get_cmdline_bypid(int pid);
71
72 static inline const char *FILENAME(const char *filename)
73 {
74         const char *p;
75         const char *r;
76
77         if (!filename)
78                 return NULL;
79
80         r = p = filename;
81         while (*p) {
82                 if (*p == '/')
83                         r = p + 1;
84                 p++;
85         }
86
87         return r;
88 }
89
90 #endif