• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ ply_trace函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中ply_trace函数的典型用法代码示例。如果您正苦于以下问题:C++ ply_trace函数的具体用法?C++ ply_trace怎么用?C++ ply_trace使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了ply_trace函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ply_renderer_head_add_connector

static bool
ply_renderer_head_add_connector (ply_renderer_head_t *head,
                                 drmModeConnector    *connector,
                                 int                  connector_mode_index)
{
  drmModeModeInfo *mode;

  mode = &connector->modes[connector_mode_index];

  if (mode->hdisplay != head->area.width || mode->vdisplay != head->area.height)
    {
      ply_trace ("Tried to add connector with resolution %dx%d to %dx%d head",
                 (int) mode->hdisplay, (int) mode->vdisplay,
                 (int) head->area.width, (int) head->area.height);
      return false;
    }
  else
    {
      ply_trace ("Adding connector with id %d to %dx%d head",
                 (int) connector->connector_id,
                 (int) head->area.width, (int) head->area.height);
    }

  ply_array_add_uint32_element (head->connector_ids, connector->connector_id);

  return true;
}
开发者ID:AtsKiYsPoYl,项目名称:plymouth,代码行数:27,代码来源:plugin.c


示例2: fetch_buffer

static bool
fetch_buffer (ply_renderer_driver_t *driver,
              uint32_t               buffer_id,
              unsigned long         *width,
              unsigned long         *height,
              unsigned long         *row_stride)
{
        ply_renderer_buffer_t *buffer;

        buffer = get_buffer_from_id (driver, buffer_id);

        if (buffer == NULL) {
                ply_trace ("could not fetch buffer %u", buffer_id);
                return false;
        }

        if (width != NULL)
                *width = buffer->width;

        if (height != NULL)
                *height = buffer->height;

        if (row_stride != NULL)
                *row_stride = buffer->row_stride;

        ply_trace ("fetched %ux%u buffer with stride %u",
                   buffer->width, buffer->height, buffer->row_stride);
        return true;
}
开发者ID:magcius,项目名称:plymouth,代码行数:29,代码来源:ply-renderer-generic-driver.c


示例3: query_device

static bool
query_device (ply_renderer_backend_t *backend)
{
  assert (backend != NULL);
  assert (backend->device_fd >= 0);

  backend->resources = drmModeGetResources (backend->device_fd);

  if (backend->resources == NULL)
    {
      ply_trace ("Could not get card resources");
      return false;
    }

  if (!create_heads_for_active_connectors (backend))
    {
      ply_trace ("Could not initialize heads");
      return false;
    }

  if (!has_32bpp_support (backend))
    {
      ply_trace ("Device doesn't support 32bpp framebuffer");
      return false;
    }

  return true;
}
开发者ID:AtsKiYsPoYl,项目名称:plymouth,代码行数:28,代码来源:plugin.c


示例4: create_buffer

static uint32_t
create_buffer (ply_renderer_driver_t *driver,
               unsigned long          width,
               unsigned long          height,
               unsigned long         *row_stride)
{
        ply_renderer_buffer_t *buffer;

        buffer = ply_renderer_buffer_new (driver, width, height);

        if (buffer == NULL) {
                ply_trace ("Could not allocate GEM object for frame buffer: %m");
                return 0;
        }

        if (drmModeAddFB (driver->device_fd, width, height,
                          24, 32, buffer->row_stride, buffer->handle,
                          &buffer->id) != 0) {
                ply_trace ("Could not set up GEM object as frame buffer: %m");
                ply_renderer_buffer_free (driver, buffer);
                return 0;
        }

        *row_stride = buffer->row_stride;

        buffer->added_fb = true;
        ply_hashtable_insert (driver->buffers,
                              (void *) (uintptr_t) buffer->id,
                              buffer);

        return buffer->id;
}
开发者ID:magcius,项目名称:plymouth,代码行数:32,代码来源:ply-renderer-generic-driver.c


示例5: show_splash_screen

static bool
show_splash_screen (ply_boot_splash_plugin_t *plugin,
                    ply_event_loop_t         *loop,
                    ply_buffer_t             *boot_buffer,
                    ply_boot_splash_mode_t    mode)
{
  assert (plugin != NULL);

  if (ply_list_get_length (plugin->displays) == 0)
    {
      ply_trace ("no pixel displays");
      return false;
    }

  plugin->loop = loop;
  plugin->mode = mode;

  ply_event_loop_watch_for_exit (loop, (ply_event_loop_exit_handler_t)
                                 detach_from_event_loop,
                                 plugin);

  ply_event_loop_watch_signal (plugin->loop,
                               SIGINT,
                               (ply_event_handler_t)
                               on_interrupt, plugin);

  ply_trace ("starting boot animation");
  return start_animation (plugin);
}
开发者ID:AlfredArouna,项目名称:plymouth,代码行数:29,代码来源:plugin.c


示例6: ply_terminal_reopen_device

static void
ply_terminal_reopen_device (ply_terminal_t *terminal)
{
    ply_terminal_open_result_t open_result;

    ply_trace ("trying to reopen terminal '%s' (attempt %d)",
               terminal->name,
               terminal->number_of_reopen_tries);

    terminal->number_of_reopen_tries++;

    open_result = ply_terminal_open_device (terminal);

    if (open_result == PLY_TERMINAL_OPEN_RESULT_INCOMPLETE) {
        int total_retries;

        total_retries = (int) (PLY_TERMINAL_REOPEN_TIMEOUT / PLY_TERMINAL_REOPEN_INTERVAL);

        if (terminal->number_of_reopen_tries < total_retries) {
            ply_event_loop_watch_for_timeout (terminal->loop,
                                              PLY_TERMINAL_REOPEN_INTERVAL,
                                              (ply_event_loop_timeout_handler_t)
                                              ply_terminal_reopen_device,
                                              terminal);
        } else {
            ply_trace ("couldn't reopen tty, giving up");
            terminal->number_of_reopen_tries = 0;
        }
    }
}
开发者ID:halfline,项目名称:plymouth,代码行数:30,代码来源:ply-terminal.c


示例7: get_kernel_command_line

static bool
get_kernel_command_line (state_t *state)
{
  int fd;

  ply_trace ("opening /proc/cmdline");
  fd = open ("proc/cmdline", O_RDONLY);

  if (fd < 0)
    {
      ply_trace ("couldn't open it: %m");
      return false;
    }

  ply_trace ("reading kernel command line");
  if (read (fd, state->kernel_command_line, sizeof (state->kernel_command_line)) < 0)
    {
      ply_trace ("couldn't read it: %m");
      return false;
    }

  ply_trace ("Kernel command line is: '%s'", state->kernel_command_line);
  close (fd);
  return true;
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:25,代码来源:plymouth.c


示例8: ply_terminal_close

void
ply_terminal_close (ply_terminal_t *terminal)
{
    if (!terminal->is_open) {
        ply_trace ("terminal %s is already closed", terminal->name);
        return;
    }

    terminal->is_open = false;

    ply_terminal_stop_watching_for_vt_changes (terminal);

    ply_trace ("restoring color palette");
    ply_terminal_restore_color_palette (terminal);

    if (terminal->fd_watch != NULL) {
        ply_trace ("stop watching tty fd");
        ply_event_loop_stop_watching_fd (terminal->loop, terminal->fd_watch);
        terminal->fd_watch = NULL;
    }

    if (terminal->loop != NULL) {
        ply_trace ("stop watching SIGWINCH signal");
        ply_event_loop_stop_watching_signal (terminal->loop, SIGWINCH);
    }

    ply_trace ("setting buffered input");
    ply_terminal_set_buffered_input (terminal);

    close (terminal->fd);
    terminal->fd = -1;
}
开发者ID:halfline,项目名称:plymouth,代码行数:32,代码来源:ply-terminal.c


示例9: ply_renderer_head_set_scan_out_buffer

static bool
ply_renderer_head_set_scan_out_buffer (ply_renderer_backend_t *backend,
                                       ply_renderer_head_t    *head,
                                       uint32_t                buffer_id)
{
  drmModeModeInfo *mode;
  uint32_t *connector_ids;
  int number_of_connectors;

  connector_ids = (uint32_t *) ply_array_get_uint32_elements (head->connector_ids);
  number_of_connectors = ply_array_get_size (head->connector_ids);

  mode = &head->connector0->modes[head->connector0_mode_index];

  ply_trace ("Setting scan out buffer of %ldx%ld head to our buffer",
             head->area.width, head->area.height);

  /* Tell the controller to use the allocated scan out buffer on each connectors
  */
  if (drmModeSetCrtc (backend->device_fd, head->controller_id, buffer_id,
                      0, 0, connector_ids, number_of_connectors, mode) < 0)
    {
      ply_trace ("Couldn't set scan out buffer for head with controller id %d",
                 head->controller_id);
      return false;
    }

  return true;
}
开发者ID:AtsKiYsPoYl,项目名称:plymouth,代码行数:29,代码来源:plugin.c


示例10: open_device

static bool
open_device (ply_renderer_backend_t *backend)
{
  assert (backend != NULL);
  assert (backend->device_name != NULL);

  if (!load_driver (backend))
    return false;

  if (!ply_terminal_open (backend->terminal))
    {
      ply_trace ("could not open terminal: %m");
      return false;
    }

  if (!ply_terminal_is_vt (backend->terminal))
    {
      ply_trace ("terminal is not a VT");
      ply_terminal_close (backend->terminal);
      return false;
    }

  ply_terminal_watch_for_active_vt_change (backend->terminal,
                                           (ply_terminal_active_vt_changed_handler_t)
                                           on_active_vt_changed,
                                           backend);

  return true;
}
开发者ID:AtsKiYsPoYl,项目名称:plymouth,代码行数:29,代码来源:plugin.c


示例11: answer_via_command

static bool
answer_via_command (char           *command,
                    const char     *answer,
                    int            *exit_status)
{
  bool gave_answer;
  pid_t pid;
  int command_input_sender_fd, command_input_receiver_fd;


  ply_trace ("running command '%s'", command);

  /* answer may be NULL which means,
   * "The daemon can't ask the user questions,
   *   do all the prompting from the client"
   */

  gave_answer = false;
  if (answer != NULL &&
    !ply_open_unidirectional_pipe (&command_input_sender_fd,
                                   &command_input_receiver_fd))
    return false;

  pid = fork (); 

  if (pid < 0)
    return false;

  if (pid == 0)
    {
      char **args;
      args = split_string (command, ' ');
      if (answer != NULL)
        {
          close (command_input_sender_fd);
          dup2 (command_input_receiver_fd, STDIN_FILENO);
        }

      execvp (args[0], args); 
      ply_trace ("could not run command: %m");
      _exit (127);
    }

  if (answer != NULL)
    {
      close (command_input_receiver_fd);

      if (write (command_input_sender_fd, answer, strlen (answer)) < 0)
        goto out;
    }

  gave_answer = true;
out:
  if (answer != NULL)
    close (command_input_sender_fd);
  waitpid (pid, exit_status, 0); 

  return gave_answer;
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:59,代码来源:plymouth.c


示例12: ply_renderer_load_plugin

static bool
ply_renderer_load_plugin (ply_renderer_t *renderer,
                          const char     *module_path)
{
  assert (renderer != NULL);

  get_backend_interface_function_t get_renderer_backend_interface;

  renderer->module_handle = ply_open_module (module_path);

  if (renderer->module_handle == NULL)
    return false;

  get_renderer_backend_interface = (get_backend_interface_function_t)
      ply_module_look_up_function (renderer->module_handle,
                                   "ply_renderer_backend_get_interface");

  if (get_renderer_backend_interface == NULL)
    {
      ply_save_errno ();
      ply_trace ("module '%s' is not a renderer plugin",
                 module_path);
      ply_close_module (renderer->module_handle);
      renderer->module_handle = NULL;
      ply_restore_errno ();
      return false;
    }

  renderer->plugin_interface = get_renderer_backend_interface ();

  if (renderer->plugin_interface == NULL)
    {
      ply_trace ("module '%s' is not a valid renderer plugin",
                 module_path);
      ply_save_errno ();
      ply_close_module (renderer->module_handle);
      renderer->module_handle = NULL;
      ply_restore_errno ();
      return false;
    }

  renderer->backend = renderer->plugin_interface->create_backend (renderer->device_name,
                                                                  renderer->terminal);

  if (renderer->backend == NULL)
    {
      ply_save_errno ();
      ply_trace ("module '%s' renderer backend could not be created",
                 module_path);
      ply_close_module (renderer->module_handle);
      renderer->module_handle = NULL;
      ply_restore_errno ();
      return false;
    }

  return true;
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:57,代码来源:ply-renderer.c


示例13: load_driver

static bool
load_driver (ply_renderer_backend_t *backend)
{
  char *driver_name;
  int device_fd;

  driver_name = find_driver_for_device (backend->device_name);
  ply_trace ("Attempting to load driver '%s'", driver_name);
  device_fd = drmOpen (driver_name, NULL);

  if (device_fd < 0)
    {
      ply_trace ("drmOpen failed");
      free (driver_name);
      return false;
    }

  if (strcmp (driver_name, "i915") == 0)
    {
      backend->driver_interface = ply_renderer_i915_driver_get_interface ();
      backend->driver_supports_mapping_console = true;
    }
  else if (strcmp (driver_name, "radeon") == 0)
    {
      backend->driver_interface = ply_renderer_radeon_driver_get_interface ();
      backend->driver_supports_mapping_console = false;
    }
  else if (strcmp (driver_name, "nouveau") == 0)
    {
      backend->driver_interface = ply_renderer_nouveau_driver_get_interface ();
      backend->driver_supports_mapping_console = false;
    }
  free (driver_name);

  if (backend->driver_interface == NULL)
    {
      close (device_fd);
      return false;
    }

  backend->driver = backend->driver_interface->create_driver (device_fd);

  if (backend->driver == NULL)
    {
      close (device_fd);
      return false;
    }

  backend->device_fd = device_fd;

  return true;
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:52,代码来源:plugin.c


示例14: view_load

static bool
view_load (view_t *view)
{
  ply_trace ("loading entry");
  if (!ply_entry_load (view->entry))
    return false;

  ply_trace ("loading throbber");
  if (!ply_throbber_load (view->throbber))
    return false;

  return true;
}
开发者ID:AlfredArouna,项目名称:plymouth,代码行数:13,代码来源:plugin.c


示例15: on_password_answer_failure

static void
on_password_answer_failure (password_answer_state_t *answer_state,
                            ply_boot_client_t       *client)
{
  ply_trace ("password answer failure");

  /* plymouthd isn't running for some reason.  If there is a command
   * to run, we'll run it anyway, because it might be important for
   * boot up to continue (to decrypt the root partition or whatever)
   */
  if (answer_state->command != NULL)
    {
      int exit_status;
      bool command_started;

      ply_trace ("daemon not available, running command on our own");

      exit_status = 127;
      command_started = false;
      while (answer_state->number_of_tries_left > 0)
        {
          command_started = answer_via_command (answer_state->command, NULL,
                                                &exit_status);

          if (command_started && WIFEXITED (exit_status) &&
              WEXITSTATUS (exit_status) == 0)
            {
              ply_trace ("command was successful");
              break;
            }

          ply_trace ("command failed");
          answer_state->number_of_tries_left--;
        }

      if (command_started && WIFSIGNALED (exit_status))
        {
          ply_trace ("command died with signal %s", strsignal (WTERMSIG (exit_status)));
          raise (WTERMSIG (exit_status));
        }
      else
        {
          ply_event_loop_exit (answer_state->state->loop,
                               WEXITSTATUS (exit_status));
        }
    }
  else
    {
      ply_event_loop_exit (answer_state->state->loop, 1);
    }
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:51,代码来源:plymouth.c


示例16: become_idle

static void
become_idle (ply_boot_splash_plugin_t *plugin,
             ply_trigger_t            *idle_trigger)
{
        ply_trace ("deactivation requested");
        if (plugin->is_idle) {
                ply_trace ("plugin is already idle");
                ply_trigger_pull (idle_trigger, NULL);
                return;
        }

        stop_animation (plugin, idle_trigger);
        plugin->is_idle = true;
}
开发者ID:halfline,项目名称:plymouth,代码行数:14,代码来源:plugin.c


示例17: on_active_vt_changed

static void
on_active_vt_changed (ply_renderer_backend_t *backend)
{
  if (ply_terminal_is_active (backend->terminal))
    {
      ply_trace ("activating on vt change");
      activate (backend);
    }
  else
    {
      ply_trace ("deactivating on vt change");
      deactivate (backend);
    }
}
开发者ID:AtsKiYsPoYl,项目名称:plymouth,代码行数:14,代码来源:plugin.c


示例18: on_multiple_password_answers

static void
on_multiple_password_answers (password_answer_state_t     *answer_state,
                              const char * const          *answers)
{
  bool need_to_ask_user;
  int i;
  int exit_status;

  assert (answer_state->command != NULL);

  ply_trace ("on multiple password answers");

  need_to_ask_user = true;

  if (answers != NULL)
    {
      ply_trace ("daemon has a few candidate passwords for us to try");
      for (i = 0; answers[i] != NULL; i++)
        {
          bool command_started;
          exit_status = 127;
          command_started = answer_via_command (answer_state->command, answers[i],
                                                &exit_status);
          if (command_started && WIFEXITED (exit_status) &&
              WEXITSTATUS (exit_status) == 0)
            {
              need_to_ask_user = false;
              break;
            }
        }
    }
  else
    {
      ply_trace ("daemon has no candidate passwords for us to try");
    }

  if (need_to_ask_user)
    {
      ply_boot_client_ask_daemon_for_password (answer_state->state->client,
                                               answer_state->prompt,
                                               (ply_boot_client_answer_handler_t)
                                               on_password_answer,
                                               (ply_boot_client_response_handler_t)
                                               on_password_answer_failure, answer_state);
      return;
    }

  ply_event_loop_exit (answer_state->state->loop, 0);
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:49,代码来源:plymouth.c


示例19: ply_renderer_open

bool
ply_renderer_open (ply_renderer_t *renderer)
{
  int i;

  /* FIXME: at some point we may want to make this
   * part more dynamic (so you don't have to edit this
   * list to add a new renderer)
   */
  const char *known_plugins[] =
    {
      PLYMOUTH_PLUGIN_PATH "renderers/x11.so",
      PLYMOUTH_PLUGIN_PATH "renderers/drm.so",
      PLYMOUTH_PLUGIN_PATH "renderers/frame-buffer.so",
      NULL
    };

  for (i = 0; known_plugins[i] != NULL; i++)
    {
      const char *plugin_path;

      plugin_path = known_plugins[i];

      if (!ply_renderer_load_plugin (renderer, plugin_path))
        continue;

      if (!ply_renderer_open_device (renderer))
        {
          ply_trace ("could not open rendering device for plugin %s",
                     plugin_path);
          ply_renderer_unload_plugin (renderer);
          continue;
        }

      if (!ply_renderer_query_device (renderer))
        {
          ply_trace ("could not query rendering device for plugin %s",
                     plugin_path);
          ply_renderer_close_device (renderer);
          ply_renderer_unload_plugin (renderer);
          continue;
        }

      return true;
  }

  ply_trace ("could not find suitable rendering plugin");
  return false;
}
开发者ID:pkt,项目名称:pkt-plymouth,代码行数:49,代码来源:ply-renderer.c


示例20: ply_renderer_head_map

static bool
ply_renderer_head_map (ply_renderer_backend_t *backend,
                       ply_renderer_head_t    *head)
{
  bool scan_out_set;

  assert (backend != NULL);
  assert (backend->device_fd >= 0);
  assert (backend->driver_interface != NULL);
  assert (backend->driver != NULL);

  assert (head != NULL);

  ply_trace ("Creating buffer for %ldx%ld renderer head", head->area.width, head->area.height);
  head->scan_out_buffer_id =
    backend->driver_interface->create_buffer (backend->driver,
                                              head->area.width, head->area.height,
                                              &head->row_stride);

  if (head->scan_out_buffer_id == 0)
    return false;

  ply_trace ("Mapping buffer for %ldx%ld renderer head", head->area.width, head->area.height);
  if (!backend->driver_interface->map_buffer (backend->driver,
                                              head->scan_out_buffer_id))
    {
      backend->driver_interface->destroy_buffer (backend->driver,
                                                 head->scan_out_buffer_id);
      head->scan_out_buffer_id = 0;
      return false;
    }

  /* FIXME: Maybe we should blit the fbcon contents instead of the (blank)
   * shadow buffer?
   */
  ply_renderer_head_redraw (backend, head);

  scan_out_set = reset_scan_out_buffer_if_needed (backend, head);
  if (!scan_out_set && backend->is_active)
    {
      backend->driver_interface->destroy_buffer (backend->driver,
                                                 head->scan_out_buffer_id);
      head->scan_out_buffer_id = 0;
      return false;
    }

  return true;
}
开发者ID:AtsKiYsPoYl,项目名称:plymouth,代码行数:48,代码来源:plugin.c



注:本文中的ply_trace函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ pm函数代码示例发布时间:2022-05-30
下一篇:
C++ ply_list_get_next_node函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap