- 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
This commit is contained in:
Bernhard Reutner-Fischer
2008-05-19 08:18:50 +00:00
parent ee56e013cf
commit ae4342ca3e
18 changed files with 136 additions and 142 deletions

View File

@@ -98,6 +98,7 @@ lib-y += vfork_daemon_rexec.o
lib-y += warn_ignoring_args.o
lib-y += wfopen.o
lib-y += wfopen_input.o
lib-y += write.o
lib-y += xatonum.o
lib-y += xconnect.o
lib-y += xfuncs.o

View File

@@ -8,10 +8,8 @@
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
//#include <sys/ioctl.h>
#include "libbb.h"
/* From <linux/kd.h> */
enum { KDGKBTYPE = 0x4B33 }; /* get keyboard type */
@@ -70,3 +68,15 @@ int get_console_fd(void)
bb_error_msg("can't open console");
return fd; /* total failure */
}
/* From <linux/vt.h> */
enum {
VT_ACTIVATE = 0x5606, /* make vt active */
VT_WAITACTIVE = 0x5607 /* wait for vt active */
};
void console_make_active(int fd, const int vt_num)
{
xioctl(fd, VT_ACTIVATE, (void *)(ptrdiff_t)vt_num);
xioctl(fd, VT_WAITACTIVE, (void *)(ptrdiff_t)vt_num);
}

View File

@@ -10,7 +10,7 @@
#define DEBUG 0
int getpty(char *line)
int xgetpty(char *line)
{
int p;
#if ENABLE_FEATURE_DEVPTS
@@ -22,7 +22,7 @@ int getpty(char *line)
name = ptsname(p);
if (!name) {
bb_perror_msg("ptsname error (is /dev/pts mounted?)");
return -1;
goto fail;
}
safe_strncpy(line, name, GETPTY_BUFSIZE);
return p;
@@ -52,7 +52,9 @@ int getpty(char *line)
}
}
#endif /* FEATURE_DEVPTS */
return -1;
USE_FEATURE_DEVPTS( fail:)
bb_error_msg_and_die("open pty");
return -1; /* never get here */
}

20
libbb/write.c Normal file
View File

@@ -0,0 +1,20 @@
/* vi: set sw=4 ts=4: */
/*
* Utility routines.
*
* Copyright (C) 2008 Bernhard Fischer
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include "libbb.h"
/* Open file and write string str to it, close file.
* Die on any open or write-error. */
void xopen_xwrite_close(const char* file, const char* str)
{
int fd = xopen(file, O_WRONLY);
xwrite(fd, str, strlen(str));
close(fd);
}