19a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz#include <linux/tty.h> 29a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz#include <linux/sched.h> 39a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz#include "dgnc_utils.h" 49a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz#include "digi.h" 59a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 69a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz/* 79a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz * dgnc_ms_sleep() 89a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz * 99a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz * Put the driver to sleep for x ms's 109a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz * 119a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz * Returns 0 if timed out, !0 (showing signal) if interrupted by a signal. 129a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz */ 139a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowiczint dgnc_ms_sleep(ulong ms) 149a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz{ 159a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz current->state = TASK_INTERRUPTIBLE; 169a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz schedule_timeout((ms * HZ) / 1000); 179a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz return signal_pending(current); 189a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz} 199a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 209a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz/* 219a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz * dgnc_ioctl_name() : Returns a text version of each ioctl value. 229a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz */ 239a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowiczchar *dgnc_ioctl_name(int cmd) 249a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz{ 259a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz switch (cmd) { 269a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 279a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCGETA: return "TCGETA"; 289a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCGETS: return "TCGETS"; 299a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSETA: return "TCSETA"; 309a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSETS: return "TCSETS"; 319a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSETAW: return "TCSETAW"; 329a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSETSW: return "TCSETSW"; 339a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSETAF: return "TCSETAF"; 349a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSETSF: return "TCSETSF"; 359a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCSBRK: return "TCSBRK"; 369a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCXONC: return "TCXONC"; 379a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TCFLSH: return "TCFLSH"; 389a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCGSID: return "TIOCGSID"; 399a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 409a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCGETD: return "TIOCGETD"; 419a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCSETD: return "TIOCSETD"; 429a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCGWINSZ: return "TIOCGWINSZ"; 439a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCSWINSZ: return "TIOCSWINSZ"; 449a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 459a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCMGET: return "TIOCMGET"; 469a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCMSET: return "TIOCMSET"; 479a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCMBIS: return "TIOCMBIS"; 489a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCMBIC: return "TIOCMBIC"; 499a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 509a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz /* from digi.h */ 519a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SETA: return "DIGI_SETA"; 529a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SETAW: return "DIGI_SETAW"; 539a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SETAF: return "DIGI_SETAF"; 549a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SETFLOW: return "DIGI_SETFLOW"; 559a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SETAFLOW: return "DIGI_SETAFLOW"; 569a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_GETFLOW: return "DIGI_GETFLOW"; 579a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_GETAFLOW: return "DIGI_GETAFLOW"; 589a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_GETA: return "DIGI_GETA"; 599a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_GEDELAY: return "DIGI_GEDELAY"; 609a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SEDELAY: return "DIGI_SEDELAY"; 619a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_GETCUSTOMBAUD: return "DIGI_GETCUSTOMBAUD"; 629a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case DIGI_SETCUSTOMBAUD: return "DIGI_SETCUSTOMBAUD"; 639a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCMODG: return "TIOCMODG"; 649a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCMODS: return "TIOCMODS"; 659a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCSDTR: return "TIOCSDTR"; 669a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz case TIOCCDTR: return "TIOCCDTR"; 679a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz 689a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz default: return "unknown"; 699a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz } 709a633d00d14129b5865502a0f45c160f523b446fKonrad Zapalowicz} 71