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