lkml.org 
[lkml]   [2009]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/5] Add setter/getter interface for kmsg_redirect
    Date
    To be able to use kmsg_redirect in code when CONFIG_VT_CONSOLE is not set and to avoid
    code like

    #ifdef CONFIG_VT_CONSOLE
    kmsg_redirect = foo;
    #endif

    we add a function pair vt_get_kmsg_redirect()/vt_set_kmsg_redirect() that just
    returns or sets that variable, but is defined to do nothing in case CONFIG_VT_CONSOLE
    is not set.


    Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
    ---
    drivers/char/vt.c | 37 +++++++++++++++++++++++++++++++++++++
    include/linux/vt.h | 18 ++++++++++++++++++
    2 files changed, 55 insertions(+), 0 deletions(-)

    diff --git a/drivers/char/vt.c b/drivers/char/vt.c
    index c3b1a86..01c4a1c 100644
    --- a/drivers/char/vt.c
    +++ b/drivers/char/vt.c
    @@ -2428,6 +2428,43 @@ struct tty_driver *console_driver;

    #ifdef CONFIG_VT_CONSOLE

    +/**
    + * vt_get_kmsg_redirect() - Returns the virtual console number for kernel
    + * messages
    + *
    + * By default, the kernel messages are always printed on the current virtual
    + * console. However, the user may modify that default with the
    + * TIOCL_SETKMSGREDIRECT ioctl call.
    + *
    + * This funciton returns the virtual console number where kernel messages are
    + * redirected to. 0 means no redirection (i.e. always printed on the currently
    + * active console).
    + *
    + * When the kernel is compiled without CONFIG_VT_CONSOLE, this function also
    + * returns 0.
    + */
    +int vt_get_kmsg_redirect(void)
    +{
    + return kmsg_redirect;
    +}
    +
    +/**
    + * vt_set_kmsg_redirect() - Sets the virtual console number for kernel messages
    + * @vt: The number of the virtual terminal.
    + *
    + * See also: vt_get_kmsg_redirect().
    + *
    + * This function allows to modify the virtual console for kernel messages from
    + * kernel code. Calling vt_set_kmsg_redirect(0) restores the default.
    + *
    + * When the kernel is compiled without CONFIG_VT_CONSOLE, this function does
    + * nothing.
    + */
    +void vt_set_kmsg_redirect(int vt)
    +{
    + kmsg_redirect = vt;
    +}
    +
    /*
    * Console on virtual terminal
    *
    diff --git a/include/linux/vt.h b/include/linux/vt.h
    index 7afca0d..fa87e2a 100644
    --- a/include/linux/vt.h
    +++ b/include/linux/vt.h
    @@ -84,4 +84,22 @@ struct vt_setactivate {

    #define VT_SETACTIVATE 0x560F /* Activate and set the mode of a console */

    +#ifdef CONFIG_VT_CONSOLE
    +
    +extern void vt_set_kmsg_redirect(int vt);
    +extern int vt_get_kmsg_redirect(void);
    +
    +#else /* CONFIG_VT_CONSOLE */
    +
    +static inline void vt_set_kmsg_redirect(int vt)
    +{
    +}
    +
    +static inline int vt_get_kmsg_redirect(void)
    +{
    + return 0;
    +}
    +
    +#endif /* CONFIG_VT_CONSOLE */
    +
    #endif /* _LINUX_VT_H */
    --
    1.6.3.3


    \
     
     \ /
      Last update: 2009-10-10 22:57    [W:0.029 / U:87.780 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site