Changeset 1770 in MondoRescue for branches/stable/mindi-busybox/console-tools/deallocvt.c
- Timestamp:
- Nov 6, 2007, 11:01:53 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mindi-busybox/console-tools/deallocvt.c
r821 r1770 6 6 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> 7 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 8 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 21 9 */ 22 10 23 11 /* no options, no getopt */ 24 12 25 #include <stdlib.h> 26 #include <stdio.h> 27 #include <fcntl.h> 28 #include <sys/types.h> 29 #include <sys/ioctl.h> 30 #include "busybox.h" 13 #include "libbb.h" 31 14 32 15 /* From <linux/vt.h> */ 33 16 enum { VT_DISALLOCATE = 0x5608 }; /* free memory associated to vt */ 34 17 35 int deallocvt_main(int argc, char *argv[]) 18 int deallocvt_main(int argc, char **argv); 19 int deallocvt_main(int argc, char **argv) 36 20 { 37 21 /* num = 0 deallocate all unused consoles */ … … 39 23 40 24 switch (argc) { 41 case 2: 42 if ((num = bb_xgetlarg(argv[1], 10, 0, INT_MAX)) == 0) { 43 bb_error_msg_and_die("0: illegal VT number"); 44 } 25 case 2: 26 num = xatou_range(argv[1], 1, 63); 45 27 /* Fallthrough */ 46 47 48 49 28 case 1: 29 break; 30 default: 31 bb_show_usage(); 50 32 } 51 33 52 if (-1 == ioctl(get_console_fd(), VT_DISALLOCATE, num)) { 53 bb_perror_msg_and_die("VT_DISALLOCATE"); 54 } 34 /* double cast suppresses "cast to ptr from int of different size */ 35 xioctl(get_console_fd(), VT_DISALLOCATE, (void *)(ptrdiff_t)num); 55 36 return EXIT_SUCCESS; 56 37 }
Note:
See TracChangeset
for help on using the changeset viewer.