[PATCH 03/21] [console] remove console files

Scott James Remnant scott at ubuntu.com
Wed Mar 17 20:46:11 PDT 2010


Now that everything's switched over to using ply_terminal_t, we
can remove the console files.
---
 src/libply-splash-core/Makefile.am   |    2 -
 src/libply-splash-core/ply-console.c |  410 ----------------------------------
 src/libply-splash-core/ply-console.h |   70 ------
 src/tests/ply-boot-splash-test.am    |    2 -
 4 files changed, 0 insertions(+), 484 deletions(-)
 delete mode 100644 src/libply-splash-core/ply-console.c
 delete mode 100644 src/libply-splash-core/ply-console.h

diff --git a/src/libply-splash-core/Makefile.am b/src/libply-splash-core/Makefile.am
index c8fb2a0..b289b65 100644
--- a/src/libply-splash-core/Makefile.am
+++ b/src/libply-splash-core/Makefile.am
@@ -15,7 +15,6 @@ libply_splash_coredir = $(includedir)/plymouth-1/ply-splash-core
 libply_splash_core_HEADERS = \
 		    ply-boot-splash.h                                         \
 		    ply-boot-splash-plugin.h                                  \
-		    ply-console.h                                             \
 		    ply-keyboard.h                                            \
 		    ply-pixel-buffer.h                                        \
 		    ply-pixel-display.h                                       \
@@ -36,7 +35,6 @@ libply_splash_core_la_LDFLAGS = -export-symbols-regex '^[^_].*' \
 		    -no-undefined
 libply_splash_core_la_SOURCES = \
 		    $(libply_splash_core_HEADERS)                              \
-		    ply-console.c                                            \
 		    ply-keyboard.c                                           \
 		    ply-pixel-display.c                                      \
 		    ply-text-display.c                                       \
diff --git a/src/libply-splash-core/ply-console.c b/src/libply-splash-core/ply-console.c
deleted file mode 100644
index 6157571..0000000
--- a/src/libply-splash-core/ply-console.c
+++ /dev/null
@@ -1,410 +0,0 @@
-/* ply-console.c - console APIs
- *
- * Copyright (C) 2009 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Written by: Ray Strode <rstrode at redhat.com>
- */
-#include "config.h"
-#include "ply-console.h"
-
-#include <assert.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <termios.h>
-#include <unistd.h>
-#include <wchar.h>
-
-#include <linux/kd.h>
-#include <linux/major.h>
-#include <linux/vt.h>
-
-#include "ply-event-loop.h"
-#include "ply-list.h"
-#include "ply-logger.h"
-#include "ply-utils.h"
-
-#ifndef TEXT_PALETTE_SIZE
-#define TEXT_PALETTE_SIZE 48
-#endif
-
-typedef struct
-{
-  ply_console_active_vt_changed_handler_t handler;
-  void *user_data;
-} ply_console_active_vt_changed_closure_t;
-
-struct _ply_console
-{
-  ply_event_loop_t *loop;
-
-  int fd;
-  int active_vt;
-  int next_active_vt;
-
-  ply_list_t *vt_change_closures;
-  ply_fd_watch_t *fd_watch;
-
-  uint32_t is_open : 1;
-  uint32_t is_watching_for_vt_changes : 1;
-  uint32_t should_ignore_mode_changes : 1;
-};
-
-static bool ply_console_open_device (ply_console_t *console);
-
-ply_console_t *
-ply_console_new (void)
-{
-  ply_console_t *console;
-
-  console = calloc (1, sizeof (ply_console_t));
-
-  console->loop = ply_event_loop_get_default ();
-  console->vt_change_closures = ply_list_new ();
-  console->fd = -1;
-
-  return console;
-}
-
-static void
-ply_console_look_up_active_vt (ply_console_t *console)
-{
-  struct vt_stat console_state = { 0 };
-
-  if (ioctl (console->fd, VT_GETSTATE, &console_state) < 0)
-    return;
-
-  console->active_vt = console_state.v_active;
-}
-
-void
-ply_console_set_mode (ply_console_t     *console,
-                      ply_console_mode_t mode)
-{
-
-  assert (console != NULL);
-  assert (mode == PLY_CONSOLE_MODE_TEXT || mode == PLY_CONSOLE_MODE_GRAPHICS);
-
-  if (console->should_ignore_mode_changes)
-    return;
-
-  switch (mode)
-    {
-      case PLY_CONSOLE_MODE_TEXT:
-        if (ioctl (console->fd, KDSETMODE, KD_TEXT) < 0)
-          return;
-        break;
-
-      case PLY_CONSOLE_MODE_GRAPHICS:
-        if (ioctl (console->fd, KDSETMODE, KD_GRAPHICS) < 0)
-          return;
-        break;
-    }
-}
-
-void
-ply_console_ignore_mode_changes (ply_console_t *console,
-                                 bool           should_ignore)
-{
-  console->should_ignore_mode_changes = should_ignore;
-}
-
-static void
-on_tty_disconnected (ply_console_t *console)
-{
-  ply_trace ("console tty disconnected (fd %d)", console->fd);
-  console->fd_watch = NULL;
-  console->fd = -1;
-
-  ply_trace ("trying to reopen console");
-  ply_console_open_device (console);
-}
-
-static void
-do_active_vt_changed (ply_console_t *console)
-{
-  ply_list_node_t *node;
-
-  node = ply_list_get_first_node (console->vt_change_closures);
-  while (node != NULL)
-    {
-      ply_console_active_vt_changed_closure_t *closure;
-      ply_list_node_t *next_node;
-
-      closure = ply_list_node_get_data (node);
-      next_node = ply_list_get_next_node (console->vt_change_closures, node);
-
-      if (closure->handler != NULL)
-        closure->handler (closure->user_data, console);
-
-      node = next_node;
-    }
-}
-
-static void
-on_leave_vt (ply_console_t *console)
-{
-  ioctl (console->fd, VT_RELDISP, 1);
-
-  if (console->next_active_vt > 0)
-    {
-      ioctl (console->fd, VT_WAITACTIVE, console->next_active_vt);
-      console->next_active_vt = 0;
-    }
-
-  ply_console_look_up_active_vt (console);
-  do_active_vt_changed (console);
-}
-
-static void
-on_enter_vt (ply_console_t *console)
-{
-  ioctl (console->fd, VT_RELDISP, VT_ACKACQ);
-
-  ply_console_look_up_active_vt (console);
-  do_active_vt_changed (console);
-}
-
-static void
-ply_console_watch_for_vt_changes (ply_console_t *console)
-{
-  assert (console != NULL);
-
-  struct vt_mode mode = { 0 };
-
-  if (console->fd < 0)
-    return;
-
-  if (console->is_watching_for_vt_changes)
-    return;
-
-  mode.mode = VT_PROCESS;
-  mode.relsig = SIGUSR1;
-  mode.acqsig = SIGUSR2;
-
-  if (ioctl (console->fd, VT_SETMODE, &mode) < 0)
-    return;
-
-  ply_event_loop_watch_signal (console->loop,
-                               SIGUSR1,
-                               (ply_event_handler_t)
-                               on_leave_vt, console);
-
-  ply_event_loop_watch_signal (console->loop,
-                               SIGUSR2,
-                               (ply_event_handler_t)
-                               on_enter_vt, console);
-
-  console->is_watching_for_vt_changes = true;
-}
-
-static void
-ply_console_stop_watching_for_vt_changes (ply_console_t *console)
-{
-  struct vt_mode mode = { 0 };
-
-  if (!console->is_watching_for_vt_changes)
-    return;
-
-  console->is_watching_for_vt_changes = false;
-
-  ply_event_loop_stop_watching_signal (console->loop, SIGUSR1);
-  ply_event_loop_stop_watching_signal (console->loop, SIGUSR2);
-
-  mode.mode = VT_AUTO;
-  ioctl (console->fd, VT_SETMODE, &mode);
-}
-
-static bool
-ply_console_open_device (ply_console_t *console)
-{
-  assert (console != NULL);
-  assert (console->fd < 0);
-  assert (console->fd_watch == NULL);
-
-  console->fd = open ("/dev/tty0", O_RDWR | O_NOCTTY);
-
-  if (console->fd < 0)
-    return false;
-
-  console->fd_watch = ply_event_loop_watch_fd (console->loop, console->fd,
-                                                   PLY_EVENT_LOOP_FD_STATUS_NONE,
-                                                   (ply_event_handler_t) NULL,
-                                                   (ply_event_handler_t) on_tty_disconnected,
-                                                   console);
-
-  ply_console_look_up_active_vt (console);
-
-  return true;
-}
-
-bool
-ply_console_open (ply_console_t *console)
-{
-  assert (console != NULL);
-
-  if (!ply_console_open_device (console))
-    {
-      ply_trace ("could not open console: %m");
-      return false;
-    }
-
-  ply_console_watch_for_vt_changes (console);
-
-  console->is_open = true;
-
-  return true;
-}
-
-
-int
-ply_console_get_fd (ply_console_t *console)
-{
-  return console->fd;
-}
-
-bool
-ply_console_is_open (ply_console_t *console)
-{
-  return console->is_open;
-}
-
-void
-ply_console_close (ply_console_t *console)
-{
-  console->is_open = false;
-
-  ply_console_stop_watching_for_vt_changes (console);
-
-  if (console->fd_watch != NULL)
-    {
-      ply_trace ("stop watching tty fd");
-      ply_event_loop_stop_watching_fd (console->loop, console->fd_watch);
-      console->fd_watch = NULL;
-    }
-
-  close (console->fd);
-  console->fd = -1;
-}
-
-static void
-free_vt_change_closures (ply_console_t *console)
-{
-  ply_list_node_t *node;
-
-  node = ply_list_get_first_node (console->vt_change_closures);
-  while (node != NULL)
-    {
-      ply_console_active_vt_changed_closure_t *closure;
-      ply_list_node_t *next_node;
-
-      closure = ply_list_node_get_data (node);
-      next_node = ply_list_get_next_node (console->vt_change_closures, node);
-
-      free (closure);
-      node = next_node;
-    }
-  ply_list_free (console->vt_change_closures);
-}
-
-void
-ply_console_free (ply_console_t *console)
-{
-  if (console == NULL)
-    return;
-
-  ply_console_close (console);
-
-  free_vt_change_closures (console);
-  free (console);
-}
-
-int
-ply_console_get_active_vt (ply_console_t *console)
-{
-  return console->active_vt;
-}
-
-bool
-ply_console_set_active_vt (ply_console_t *console,
-                           int            vt_number)
-{
-  assert (console != NULL);
-
-  if (vt_number <= 0)
-    return false;
-
-  if (vt_number == console->active_vt)
-    return true;
-
-  if (ioctl (console->fd, VT_ACTIVATE, vt_number) < 0)
-    return false;
-
-  console->next_active_vt = vt_number;
-
-  return true;
-}
-
-void
-ply_console_watch_for_active_vt_change (ply_console_t *console,
-                                        ply_console_active_vt_changed_handler_t active_vt_changed_handler,
-                                        void *user_data)
-{
-  ply_console_active_vt_changed_closure_t *closure;
-
-  closure = calloc (1, sizeof (*closure));
-  closure->handler = active_vt_changed_handler;
-  closure->user_data = user_data;
-
-  ply_list_append_data (console->vt_change_closures, closure);
-}
-
-void
-ply_console_stop_watching_for_active_vt_change (ply_console_t *console,
-                                                ply_console_active_vt_changed_handler_t active_vt_changed_handler,
-                                                void *user_data)
-{
-  ply_list_node_t *node;
-
-  node = ply_list_get_first_node (console->vt_change_closures);
-  while (node != NULL)
-    {
-      ply_console_active_vt_changed_closure_t *closure;
-      ply_list_node_t *next_node;
-
-      closure = ply_list_node_get_data (node);
-      next_node = ply_list_get_next_node (console->vt_change_closures, node);
-
-      if (closure->handler == active_vt_changed_handler &&
-          closure->user_data == user_data)
-        {
-          free (closure);
-          ply_list_remove_node (console->vt_change_closures, node);
-        }
-
-      node = next_node;
-    }
-}
-
-/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */
diff --git a/src/libply-splash-core/ply-console.h b/src/libply-splash-core/ply-console.h
deleted file mode 100644
index 4b45c86..0000000
--- a/src/libply-splash-core/ply-console.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* ply-console.h - APIs for consoleing text
- *
- * Copyright (C) 2009 Red Hat, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *
- * Written By: Ray Strode <rstrode at redhat.com>
- */
-#ifndef PLY_CONSOLE_H
-#define PLY_CONSOLE_H
-
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <unistd.h>
-
-typedef struct _ply_console ply_console_t;
-typedef void (* ply_console_active_vt_changed_handler_t) (void           *user_data,
-                                                          ply_console_t *console);
-
-typedef enum
-{
-  PLY_CONSOLE_MODE_TEXT,
-  PLY_CONSOLE_MODE_GRAPHICS
-} ply_console_mode_t;
-
-#ifndef PLY_HIDE_FUNCTION_DECLARATIONS
-ply_console_t *ply_console_new (void);
-
-void ply_console_free (ply_console_t *console);
-
-bool ply_console_open (ply_console_t *console);
-bool ply_console_is_open (ply_console_t *console);
-void ply_console_close (ply_console_t *console);
-
-void ply_console_set_mode (ply_console_t     *console,
-                           ply_console_mode_t mode);
-
-void ply_console_ignore_mode_changes (ply_console_t *console,
-                                      bool           should_ignore);
-
-int ply_console_get_fd (ply_console_t *console);
-int ply_console_get_active_vt (ply_console_t *console);
-bool ply_console_set_active_vt (ply_console_t *console,
-                                int            vt_number);
-
-void ply_console_watch_for_active_vt_change (ply_console_t *console,
-                                             ply_console_active_vt_changed_handler_t active_vt_changed_handler,
-                                             void *user_data);
-void ply_console_stop_watching_for_active_vt_change (ply_console_t *console,
-                                             ply_console_active_vt_changed_handler_t active_vt_changed_handler,
-                                             void *user_data);
-
-#endif
-
-#endif /* PLY_CONSOLE_H */
-/* vim: set ts=4 sw=4 et ai ci cino={.5s,^-2,+.5s,t0,g0,e-2,n-2,p2s,(0,=.5s,:.5s */
diff --git a/src/tests/ply-boot-splash-test.am b/src/tests/ply-boot-splash-test.am
index cad36d8..9dd1598 100644
--- a/src/tests/ply-boot-splash-test.am
+++ b/src/tests/ply-boot-splash-test.am
@@ -9,8 +9,6 @@ ply_boot_splash_test_LDADD = $(PLYMOUTH_LIBS) ../libply/libply.la
 
 ply_boot_splash_test_SOURCES =                                                   \
                           $(srcdir)/../libply-splash-core/ply-boot-splash-plugin.h \
-                          $(srcdir)/../libply-splash-core/ply-console.h            \
-                          $(srcdir)/../libply-splash-core/ply-console.c            \
                           $(srcdir)/../libply-splash-core/ply-keyboard.h           \
                           $(srcdir)/../libply-splash-core/ply-keyboard.c           \
                           $(srcdir)/../libply-splash-core/ply-pixel-buffer.h       \
-- 
1.7.0



More information about the plymouth mailing list