tbm_last_error = err;
}
+static void
+_tbm_util_get_appname_brief(char *brief)
+{
+ char delim[] = "/";
+ char *token = NULL;
+ char temp[255] = {0,};
+ char *saveptr = NULL;
+
+ token = strtok_r(brief, delim, &saveptr);
+
+ while (token != NULL) {
+ memset(temp, 0x00, 255*sizeof(char));
+ strncpy(temp, token, 254*sizeof(char));
+ token = strtok_r(NULL, delim, &saveptr);
+ }
+
+ snprintf(brief, sizeof(temp), "%s", temp);
+}
+
+static void
+_tbm_util_get_appname_from_pid(long pid, char *str)
+{
+ FILE* fp;
+ int len;
+ long app_pid = pid;
+ char fn_cmdline[255] = {0,};
+ char cmdline[255] = {0,};
+
+ snprintf(fn_cmdline, sizeof(fn_cmdline), "/proc/%ld/cmdline",app_pid);
+
+ fp = fopen(fn_cmdline, "r");
+ if(fp == 0) {
+ fprintf(stderr,"cannot file open /proc/%ld/cmdline", app_pid);
+ return;
+ }
+
+ if (!fgets(cmdline, 255, fp)) {
+ fprintf(stderr, "fail to get appname for pid(%ld)\n", app_pid);
+ fclose(fp);
+ return;
+ }
+ fclose(fp);
+
+ len = strlen(cmdline);
+ if(len < 1)
+ memset(cmdline, 0x00,255);
+ else
+ cmdline[len] = 0;
+
+ snprintf(str, sizeof(cmdline), "%s", cmdline);
+}
+
static inline int
_tgl_init (int fd, unsigned int key)
{
tbm_surface_h surf = NULL, tmp_surf = NULL;
int surf_cnt = 0;
int i;
+ char app_name[255] = {0,};
+ unsigned int pid = 0;
pthread_mutex_lock (&gLock);
- TBM_DEBUG("============TBM DEBUG: PID(%d)===========================\n", getpid());
+ _tbm_util_get_appname_from_pid(getpid(), app_name);
+ _tbm_util_get_appname_brief(app_name);
+ TBM_DEBUG("============TBM DEBUG: %s(%d)===========================\n", app_name, getpid());
+ memset(app_name, 0x0, 255*sizeof(char));
TBM_DEBUG("[tbm_surface information]\n");
TBM_DEBUG("no surface refcnt width height bpp size num_bos num_planes flags format app_name\n");
{
LIST_FOR_EACH_ENTRY_SAFE (surf, tmp_surf, &bufmgr->surf_list, item_link)
{
- TBM_DEBUG("%-4d%-23p%-6d%-7d%-8d%-5d%-12d%-10d%-9d%-4d%-20s\n",
+ pid = _tbm_surface_internal_get_debug_pid(surf);
+ if (!pid) {
+ /* if pid is null, set the self_pid */
+ pid = getpid();
+ }
+
+ _tbm_util_get_appname_from_pid(pid, app_name);
+ _tbm_util_get_appname_brief(app_name);
+
+ TBM_DEBUG("%-4d%-23p%-6d%-7d%-8d%-5d%-12d%-10d%-9d%-4d%-20s%s\n",
++surf_cnt,
surf,
surf->refcnt,
surf->num_bos,
surf->num_planes,
surf->flags,
- _tbm_surface_internal_format_to_str(surf->info.format));
+ _tbm_surface_internal_format_to_str(surf->info.format),
+ app_name);
for (i = 0; i < surf->num_bos; i++) {
TBM_DEBUG(" bo:%-11p(key:%2d) %-26d%-10d\n",
surf->bos[i],
surf->bos[i]->ref_cnt,
tbm_bo_size(surf->bos[i])/1024);
}
+
+ memset(app_name, 0x0, 255*sizeof(char));
}
}
else