- _pthread_mutex_unlock(&gLock);
-
- TDM_INFO("done");
-}
-
-INTERN int
-tdm_display_check_module_abi(tdm_private_display *private_display, int abimaj, int abimin)
-{
- tdm_backend_module *module = private_display->module_data;
-
- if (TDM_BACKEND_GET_ABI_MAJOR(module->abi_version) < abimaj)
- return 0;
-
- if (TDM_BACKEND_GET_ABI_MINOR(module->abi_version) < abimin)
- return 0;
-
- return 1;
-}
-
-INTERN tdm_error
-tdm_display_enable_debug_module(const char*modules)
-{
- char temp[TDM_PATH_LEN];
- char *arg;
- char *end;
-
- snprintf(temp, TDM_PATH_LEN, "%s", modules);
-
- tdm_debug_module = 0;
-
- arg = strtok_r(temp, TDM_DELIM, &end);
- while (arg) {
- if (!strncmp(arg, "none", 4)) {
- tdm_debug_module = 0;
- return TDM_ERROR_NONE;
- }
- if (!strncmp(arg, "all", 3)) {
- tdm_debug_module = 0xFFFFFFFF;
- return TDM_ERROR_NONE;
- }
- if (!strncmp(arg, "buffer", 6))
- tdm_debug_module |= TDM_DEBUG_BUFFER;
- else if (!strncmp(arg, "thread", 6))
- tdm_debug_module |= TDM_DEBUG_THREAD;
- else if (!strncmp(arg, "mutex", 5))
- tdm_debug_module |= TDM_DEBUG_MUTEX;
- else if (!strncmp(arg, "vblank", 6))
- tdm_debug_module |= TDM_DEBUG_VBLANK;
- else
- return TDM_ERROR_BAD_REQUEST;
-
- arg = strtok_r(NULL, TDM_DELIM, &end);
- }
-
- TDM_INFO("module debugging... '%s'", modules);
-
- return TDM_ERROR_NONE;
-}
-
-INTERN tdm_error
-tdm_display_enable_dump(tdm_private_display *private_display, const char *dump_str, char *reply, int *len)
-{
- char temp[TDM_PATH_LEN] = {0,}, temp2[TDM_PATH_LEN] = {0,};
- char *path, *path2;
- char *arg;
- char *end;
-
- snprintf(temp2, TDM_PATH_LEN, "%s", dump_str);
- path2 = strtostr(temp, TDM_PATH_LEN, temp2, "@");
- if (!path2 || path2[0] == '\0')
- path2 = TDM_DUMP_DIR;
- else
- path2++;
-
- path = tdm_helper_dump_make_directory(path2, reply, len);
- TDM_GOTO_IF_FAIL(path != NULL, done);
-
- tdm_debug_dump = 0;
-
- snprintf(temp, sizeof(temp), "%s", dump_str);
- arg = strtok_r(temp, ",", &end);
-
- if (!strncmp(arg, "none", 4)) {
- tdm_debug_dump = 0;
- if (tdm_debug_dump_dir) {
- free(tdm_debug_dump_dir);
- tdm_debug_dump_dir = NULL;
- }
- TDM_SNPRINTF(reply, len, "path: %s\n", path);
- goto done;
- }
-
- if (!strncmp(arg, "current", 7)) {
- tdm_private_output *o = NULL;
- if (!private_display) {
- TDM_WRN("no private_display");
- goto done;
- }
-
- LIST_FOR_EACH_ENTRY(o, &private_display->output_list, link) {
- tdm_private_layer *l = NULL;
- LIST_FOR_EACH_ENTRY(l, &o->layer_list, link) {
- char str[TDM_PATH_LEN];
- if (l->usable)
- continue;
- snprintf(str, TDM_PATH_LEN, "layer_%d_%d", o->index, l->index);
- tdm_helper_dump_buffer_str(l->showing_buffer, path, str);
- }
- }
-
- TDM_SNPRINTF(reply, len, "path: %s\n", path);
- goto done;
- }
-
- TDM_SNPRINTF(reply, len, "dump: %s\n", arg);
-
- while (arg) {
- if (!strncmp(arg, "all", 3)) {
- tdm_debug_dump = 0xFFFFFFFF;
- goto done;
- } else if (!strncmp(arg, "layer", 5)) {
- tdm_debug_dump |= TDM_DUMP_FLAG_LAYER;
- } else if (!strncmp(arg, "pp", 2)) {
- tdm_debug_dump |= TDM_DUMP_FLAG_PP;
- } else if (!strncmp(arg, "capture", 7)) {
- tdm_debug_dump |= TDM_DUMP_FLAG_CAPTURE;
- } else
- goto done;
-
- arg = strtok_r(NULL, ",", &end);
- }
-
- if (tdm_debug_dump_dir)