+ return TDM_ERROR_NONE;
+}
+
+EXTERN tdm_error
+tdm_vblank_set_client_ignore_global_fps(unsigned int pid, const char *name, unsigned int ignore)
+{
+ tdm_private_vblank *v = NULL;
+ tdm_error ret = TDM_ERROR_NONE;
+
+ TDM_RETURN_VAL_IF_FAIL(pid > 0, TDM_ERROR_INVALID_PARAMETER);
+
+ TDM_INFO("pid: %u, name: %s, ignore: %u", pid, name, ignore);
+
+ pthread_mutex_lock(&valid_list_lock);
+ LIST_FOR_EACH_ENTRY(v, &valid_vblank_list, valid_link) {
+ struct wl_client *client;
+ pid_t client_pid = 0;
+
+ if (!v->resource)
+ continue;
+
+ client = wl_resource_get_client(v->resource);
+ if (!client)
+ continue;
+
+ wl_client_get_credentials(client, &client_pid, NULL, NULL);
+
+ if (client_pid != pid)
+ continue;
+
+ if (name && strncmp(name, TDM_VBLANK_DEFAULT_NAME, TDM_NAME_LEN)) {
+ if (strncmp(v->name, name, TDM_NAME_LEN))
+ continue;
+ }
+
+ ret = _tdm_vblank_ignore_global_fps(v, ignore);
+ if (ret == TDM_ERROR_NONE)
+ TDM_INFO("(pid:%u) '%s' ignore changed: %u", pid, v->name, ignore);
+ else
+ TDM_ERR("(pid:%u) '%s' ignore changing failed: %u", pid, v->name, ignore);