staging: dgnc: Move utility functions out of dgnc_driver.c

This commit moves the utility functions out of dgnc_driver.c file and
puts them in the new dgnc_utils.{c,h} files. The accompanying changes
adjust the existing code to work with this design.

Signed-off-by: Konrad Zapalowicz <bergo.torino@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Konrad Zapalowicz 2014-08-06 14:21:23 +02:00 committed by Greg Kroah-Hartman
parent bbecbacbed
commit 9a633d00d1
6 changed files with 80 additions and 85 deletions

View File

@ -4,4 +4,5 @@ obj-$(CONFIG_DGNC) += dgnc.o
dgnc-objs := dgnc_cls.o dgnc_driver.o\
dgnc_mgmt.o dgnc_neo.o\
dgnc_tty.o dgnc_sysfs.o
dgnc_tty.o dgnc_sysfs.o\
dgnc_utils.o

View File

@ -821,77 +821,3 @@ static void dgnc_init_globals(void)
init_timer(&dgnc_poll_timer);
}
/************************************************************************
*
* Utility functions
*
************************************************************************/
/*
* dgnc_ms_sleep()
*
* Put the driver to sleep for x ms's
*
* Returns 0 if timed out, !0 (showing signal) if interrupted by a signal.
*/
int dgnc_ms_sleep(ulong ms)
{
current->state = TASK_INTERRUPTIBLE;
schedule_timeout((ms * HZ) / 1000);
return signal_pending(current);
}
/*
* dgnc_ioctl_name() : Returns a text version of each ioctl value.
*/
char *dgnc_ioctl_name(int cmd)
{
switch (cmd) {
case TCGETA: return "TCGETA";
case TCGETS: return "TCGETS";
case TCSETA: return "TCSETA";
case TCSETS: return "TCSETS";
case TCSETAW: return "TCSETAW";
case TCSETSW: return "TCSETSW";
case TCSETAF: return "TCSETAF";
case TCSETSF: return "TCSETSF";
case TCSBRK: return "TCSBRK";
case TCXONC: return "TCXONC";
case TCFLSH: return "TCFLSH";
case TIOCGSID: return "TIOCGSID";
case TIOCGETD: return "TIOCGETD";
case TIOCSETD: return "TIOCSETD";
case TIOCGWINSZ: return "TIOCGWINSZ";
case TIOCSWINSZ: return "TIOCSWINSZ";
case TIOCMGET: return "TIOCMGET";
case TIOCMSET: return "TIOCMSET";
case TIOCMBIS: return "TIOCMBIS";
case TIOCMBIC: return "TIOCMBIC";
/* from digi.h */
case DIGI_SETA: return "DIGI_SETA";
case DIGI_SETAW: return "DIGI_SETAW";
case DIGI_SETAF: return "DIGI_SETAF";
case DIGI_SETFLOW: return "DIGI_SETFLOW";
case DIGI_SETAFLOW: return "DIGI_SETAFLOW";
case DIGI_GETFLOW: return "DIGI_GETFLOW";
case DIGI_GETAFLOW: return "DIGI_GETAFLOW";
case DIGI_GETA: return "DIGI_GETA";
case DIGI_GEDELAY: return "DIGI_GEDELAY";
case DIGI_SEDELAY: return "DIGI_SEDELAY";
case DIGI_GETCUSTOMBAUD: return "DIGI_GETCUSTOMBAUD";
case DIGI_SETCUSTOMBAUD: return "DIGI_SETCUSTOMBAUD";
case TIOCMODG: return "TIOCMODG";
case TIOCMODS: return "TIOCMODS";
case TIOCSDTR: return "TIOCSDTR";
case TIOCCDTR: return "TIOCCDTR";
default: return "unknown";
}
}

View File

@ -481,16 +481,6 @@ struct channel_t {
wait_queue_head_t ch_sniff_wait;
};
/*************************************************************************
*
* Prototypes for non-static functions used in more than one module
*
*************************************************************************/
extern int dgnc_ms_sleep(ulong ms);
extern char *dgnc_ioctl_name(int cmd);
/*
* Our Global Variables.
*/

View File

@ -57,6 +57,7 @@
#include "dgnc_cls.h"
#include "dpacompat.h"
#include "dgnc_sysfs.h"
#include "dgnc_utils.h"
#define init_MUTEX(sem) sema_init(sem, 1)
#define DECLARE_MUTEX(name) \

View File

@ -0,0 +1,70 @@
#include <linux/tty.h>
#include <linux/sched.h>
#include "dgnc_utils.h"
#include "digi.h"
/*
* dgnc_ms_sleep()
*
* Put the driver to sleep for x ms's
*
* Returns 0 if timed out, !0 (showing signal) if interrupted by a signal.
*/
int dgnc_ms_sleep(ulong ms)
{
current->state = TASK_INTERRUPTIBLE;
schedule_timeout((ms * HZ) / 1000);
return signal_pending(current);
}
/*
* dgnc_ioctl_name() : Returns a text version of each ioctl value.
*/
char *dgnc_ioctl_name(int cmd)
{
switch (cmd) {
case TCGETA: return "TCGETA";
case TCGETS: return "TCGETS";
case TCSETA: return "TCSETA";
case TCSETS: return "TCSETS";
case TCSETAW: return "TCSETAW";
case TCSETSW: return "TCSETSW";
case TCSETAF: return "TCSETAF";
case TCSETSF: return "TCSETSF";
case TCSBRK: return "TCSBRK";
case TCXONC: return "TCXONC";
case TCFLSH: return "TCFLSH";
case TIOCGSID: return "TIOCGSID";
case TIOCGETD: return "TIOCGETD";
case TIOCSETD: return "TIOCSETD";
case TIOCGWINSZ: return "TIOCGWINSZ";
case TIOCSWINSZ: return "TIOCSWINSZ";
case TIOCMGET: return "TIOCMGET";
case TIOCMSET: return "TIOCMSET";
case TIOCMBIS: return "TIOCMBIS";
case TIOCMBIC: return "TIOCMBIC";
/* from digi.h */
case DIGI_SETA: return "DIGI_SETA";
case DIGI_SETAW: return "DIGI_SETAW";
case DIGI_SETAF: return "DIGI_SETAF";
case DIGI_SETFLOW: return "DIGI_SETFLOW";
case DIGI_SETAFLOW: return "DIGI_SETAFLOW";
case DIGI_GETFLOW: return "DIGI_GETFLOW";
case DIGI_GETAFLOW: return "DIGI_GETAFLOW";
case DIGI_GETA: return "DIGI_GETA";
case DIGI_GEDELAY: return "DIGI_GEDELAY";
case DIGI_SEDELAY: return "DIGI_SEDELAY";
case DIGI_GETCUSTOMBAUD: return "DIGI_GETCUSTOMBAUD";
case DIGI_SETCUSTOMBAUD: return "DIGI_SETCUSTOMBAUD";
case TIOCMODG: return "TIOCMODG";
case TIOCMODS: return "TIOCMODS";
case TIOCSDTR: return "TIOCSDTR";
case TIOCCDTR: return "TIOCCDTR";
default: return "unknown";
}
}

View File

@ -0,0 +1,7 @@
#ifndef __DGNC_UTILS_H
#define __DGNC_UTILS_H
int dgnc_ms_sleep(ulong ms);
char *dgnc_ioctl_name(int cmd);
#endif