• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/busybox/console-tools/
1/* vi: set sw=4 ts=4: */
2/*
3 * Disallocate virtual terminal(s)
4 *
5 * Copyright (C) 2003 by Tito Ragusa <farmatito@tiscali.it>
6 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
7 *
8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
9 */
10
11/* no options, no getopt */
12
13#include "libbb.h"
14
15/* From <linux/vt.h> */
16enum { VT_DISALLOCATE = 0x5608 }; /* free memory associated to vt */
17
18int deallocvt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
19int deallocvt_main(int argc UNUSED_PARAM, char **argv)
20{
21	/* num = 0 deallocate all unused consoles */
22	int num = 0;
23
24	if (argv[1]) {
25		if (argv[2])
26			bb_show_usage();
27		num = xatou_range(argv[1], 1, 63);
28	}
29
30	/* double cast suppresses "cast to ptr from int of different size" */
31	xioctl(get_console_fd_or_die(), VT_DISALLOCATE, (void *)(ptrdiff_t)num);
32	return EXIT_SUCCESS;
33}
34