#define TDM_DBG_SERVER_ARGS_MAX 32
+/* LCOV_EXCL_START */
static void _tdm_monitor_server_usage(char *app_name, char *reply, int *len);
static void
static void
_tdm_monitor_server_ttrace_vblank(unsigned int pid, char *cwd, int argc, char *argv[], char *reply, int *len, tdm_display *dpy)
{
- int enable, output_id = 0;
- tdm_output *output;
+ int ttrace_vblank, output_id = 0;
char *arg;
char *end;
- tdm_error ret;
- tdm_output_type type;
if (argc < 3) {
_tdm_monitor_server_usage(argv[0], reply, len);
}
arg = argv[2];
- enable = strtol(arg, &end, 10);
+ ttrace_vblank = strtol(arg, &end, 10);
- if (*end == '@') {
- arg = end + 1;
- output_id = strtol(arg, &end, 10);
- }
+ if (ttrace_vblank > 0) {
+ tdm_output *output;
+ tdm_error ret;
+ tdm_output_type type;
+ char *temp;
- output = tdm_display_get_output(dpy, output_id, NULL);
- if (!output) {
- TDM_SNPRINTF(reply, len, "can't find the output_id(%d)\n", output_id);
- return;
- }
+ if (*end == '@') {
+ arg = end + 1;
+ output_id = strtol(arg, &end, 10);
+ }
- ret = tdm_output_get_output_type(output, &type);
- if (ret != TDM_ERROR_NONE) {
- TDM_SNPRINTF(reply, len, "can't find the type of output_id(%d)\n", output_id);
- return;
- }
+ output = tdm_display_get_output(dpy, output_id, NULL);
+ if (!output) {
+ TDM_SNPRINTF(reply, len, "can't find the output_id(%d)\n", output_id);
+ return;
+ }
- tdm_display_enable_ttrace_vblank(dpy, output, enable);
+ ret = tdm_output_get_output_type(output, &type);
+ if (ret != TDM_ERROR_NONE) {
+ TDM_SNPRINTF(reply, len, "can't find the type of output_id(%d)\n", output_id);
+ return;
+ }
- TDM_SNPRINTF(reply, len, "%s ttrace vblank for '%s'\n",
- (enable) ? "enable" : "disable", tdm_conn_str(type));
+ temp = "server";
+ tdm_display_enable_ttrace_vblank(dpy, output, 1);
+
+ if (ttrace_vblank > 1) {
+ temp = "clients";
+ tdm_server_enable_ttrace_vblank(dpy, output, 1);
+ }
+
+ TDM_SNPRINTF(reply, len, "enable ttrace vblank for '%s': %s \n", tdm_conn_str(type), temp);
+ } else {
+ tdm_display_enable_ttrace_vblank(dpy, NULL, 0);
+ tdm_server_enable_ttrace_vblank(dpy, NULL, 0);
+ TDM_SNPRINTF(reply, len, "disable ttrace vblank\n");
+ }
}
static void
},
{
"ttrace_vblank", _tdm_monitor_server_ttrace_vblank,
- "enable/disable the vblank for ttrace [0:disable 1:enable]",
- "<enable>[@<output_idx>]", "0 or 1"
+ "enable/disable the vblank for ttrace [0:disable, 1:server, 2:clients]",
+ "<enable>[@<output_idx>]", "0 or 1 or 2 or 1@0 or 2@0 or 1@1 or 2@1"
},
{
"debug", _tdm_monitor_server_debug,
_tdm_monitor_server_command(pid, cwd, dpy, argc, argv, reply, len);
}
+/* LCOV_EXCL_STOP */