aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-05-19 08:18:50 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-05-19 08:18:50 +0000
commitae4342ca3e30f7b11732ecda3ad15821e81bc314 (patch)
tree1878104940eac4649bc8add4d0b2893ab1cb0a94 /libbb
parentee56e013cfb6304f66129afee7978b0864699419 (diff)
downloadbusybox-w32-ae4342ca3e30f7b11732ecda3ad15821e81bc314.tar.gz
busybox-w32-ae4342ca3e30f7b11732ecda3ad15821e81bc314.tar.bz2
busybox-w32-ae4342ca3e30f7b11732ecda3ad15821e81bc314.zip
- Rename getpty() to xgetpty() and adjust callers.
- Rewrite kbd_mode and setconsole - Introduce and use console_make_active() and xopen_xwrite_close() - honour buffer-reservation method as set by the user (dumpkmap, loadkmap) - shrink rtcwake and some console-tools Saves about 270 Bytes
Diffstat (limited to 'libbb')
-rw-r--r--libbb/Kbuild1
-rw-r--r--libbb/get_console.c14
-rw-r--r--libbb/getpty.c8
-rw-r--r--libbb/write.c20
4 files changed, 38 insertions, 5 deletions
diff --git a/libbb/Kbuild b/libbb/Kbuild
index d943628aa..0c7e25497 100644
--- a/libbb/Kbuild
+++ b/libbb/Kbuild
@@ -98,6 +98,7 @@ lib-y += vfork_daemon_rexec.o
98lib-y += warn_ignoring_args.o 98lib-y += warn_ignoring_args.o
99lib-y += wfopen.o 99lib-y += wfopen.o
100lib-y += wfopen_input.o 100lib-y += wfopen_input.o
101lib-y += write.o
101lib-y += xatonum.o 102lib-y += xatonum.o
102lib-y += xconnect.o 103lib-y += xconnect.o
103lib-y += xfuncs.o 104lib-y += xfuncs.o
diff --git a/libbb/get_console.c b/libbb/get_console.c
index 0da27b1e2..36fe20426 100644
--- a/libbb/get_console.c
+++ b/libbb/get_console.c
@@ -8,10 +8,8 @@
8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
9 */ 9 */
10 10
11//#include <sys/ioctl.h>
12#include "libbb.h" 11#include "libbb.h"
13 12
14
15/* From <linux/kd.h> */ 13/* From <linux/kd.h> */
16enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */ 14enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */
17 15
@@ -70,3 +68,15 @@ int get_console_fd(void)
70 bb_error_msg("can't open console"); 68 bb_error_msg("can't open console");
71 return fd; /* total failure */ 69 return fd; /* total failure */
72} 70}
71
72/* From <linux/vt.h> */
73enum {
74 VT_ACTIVATE = 0x5606, /* make vt active */
75 VT_WAITACTIVE = 0x5607 /* wait for vt active */
76};
77
78void console_make_active(int fd, const int vt_num)
79{
80 xioctl(fd, VT_ACTIVATE, (void *)(ptrdiff_t)vt_num);
81 xioctl(fd, VT_WAITACTIVE, (void *)(ptrdiff_t)vt_num);
82}
diff --git a/libbb/getpty.c b/libbb/getpty.c
index 5ac9582d3..d43fb825f 100644
--- a/libbb/getpty.c
+++ b/libbb/getpty.c
@@ -10,7 +10,7 @@
10 10
11#define DEBUG 0 11#define DEBUG 0
12 12
13int getpty(char *line) 13int xgetpty(char *line)
14{ 14{
15 int p; 15 int p;
16#if ENABLE_FEATURE_DEVPTS 16#if ENABLE_FEATURE_DEVPTS
@@ -22,7 +22,7 @@ int getpty(char *line)
22 name = ptsname(p); 22 name = ptsname(p);
23 if (!name) { 23 if (!name) {
24 bb_perror_msg("ptsname error (is /dev/pts mounted?)"); 24 bb_perror_msg("ptsname error (is /dev/pts mounted?)");
25 return -1; 25 goto fail;
26 } 26 }
27 safe_strncpy(line, name, GETPTY_BUFSIZE); 27 safe_strncpy(line, name, GETPTY_BUFSIZE);
28 return p; 28 return p;
@@ -52,7 +52,9 @@ int getpty(char *line)
52 } 52 }
53 } 53 }
54#endif /* FEATURE_DEVPTS */ 54#endif /* FEATURE_DEVPTS */
55 return -1; 55USE_FEATURE_DEVPTS( fail:)
56 bb_error_msg_and_die("open pty");
57 return -1; /* never get here */
56} 58}
57 59
58 60
diff --git a/libbb/write.c b/libbb/write.c
new file mode 100644
index 000000000..b628b49bb
--- /dev/null
+++ b/libbb/write.c
@@ -0,0 +1,20 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
5 * Copyright (C) 2008 Bernhard Fischer
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8 */
9
10#include "libbb.h"
11
12/* Open file and write string str to it, close file.
13 * Die on any open or write-error. */
14void xopen_xwrite_close(const char* file, const char* str)
15{
16 int fd = xopen(file, O_WRONLY);
17
18 xwrite(fd, str, strlen(str));
19 close(fd);
20}