You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(135) |
Nov
(123) |
Dec
(83) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(244) |
Feb
(72) |
Mar
(221) |
Apr
(91) |
May
(104) |
Jun
(93) |
Jul
(78) |
Aug
(1) |
Sep
(1) |
Oct
(29) |
Nov
(98) |
Dec
(20) |
| 2003 |
Jan
|
Feb
(21) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(18) |
Sep
(18) |
Oct
(23) |
Nov
(12) |
Dec
(6) |
| 2004 |
Jan
(2) |
Feb
(32) |
Mar
|
Apr
(12) |
May
(11) |
Jun
(11) |
Jul
|
Aug
(9) |
Sep
|
Oct
(15) |
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
(2) |
Mar
(11) |
Apr
(6) |
May
(1) |
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
(2) |
Mar
|
Apr
(25) |
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(13) |
Oct
|
Nov
(2) |
Dec
(2) |
| 2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(10) |
May
(1) |
Jun
(6) |
Jul
|
Aug
(2) |
Sep
(5) |
Oct
|
Nov
|
Dec
|
|
From: James S. <jsi...@us...> - 2002-11-01 22:59:42
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux
In directory usw-pr-cvs1:/tmp/cvs-serv26474
Modified Files:
tty_driver.h
Log Message:
Use BK version
Index: tty_driver.h
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/tty_driver.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- tty_driver.h 9 Dec 2001 01:43:35 -0000 1.5
+++ tty_driver.h 1 Nov 2002 22:59:39 -0000 1.6
@@ -116,6 +116,7 @@
*/
#include <linux/fs.h>
+#include <linux/list.h>
struct tty_driver {
int magic; /* magic number for this structure */
@@ -129,10 +130,7 @@
short subtype; /* subtype of tty driver */
struct termios init_termios; /* Initial termios */
int flags; /* tty driver flags */
- int may_schedule; /* when we can schedule */
int *refcount; /* for loadable tty drivers */
- struct semaphore *tty_lock;/* access control for printk and tty layer */
- struct console *console;/* console attached to this tty hardware */
struct proc_dir_entry *proc_entry; /* /proc fs entry */
struct tty_driver *other; /* only used for the PTY driver */
@@ -173,14 +171,11 @@
int count, int *eof, void *data);
int (*write_proc)(struct file *file, const char *buffer,
unsigned long count, void *data);
-
- /*
- * linked list pointers
- */
- struct tty_driver *next;
- struct tty_driver *prev;
+ struct list_head tty_drivers;
};
+extern struct list_head tty_drivers;
+
/* tty driver magic number */
#define TTY_DRIVER_MAGIC 0x5402
@@ -204,14 +199,11 @@
* TTY_DRIVER_NO_DEVFS --- if set, do not create devfs entries. This
* is only used by tty_register_driver().
*
- * TTY_DRIVER_CONSOLE --- if set, indicates that this driver is also
- * used by printk. It is set by register_console.
*/
#define TTY_DRIVER_INSTALLED 0x0001
#define TTY_DRIVER_RESET_TERMIOS 0x0002
#define TTY_DRIVER_REAL_RAW 0x0004
#define TTY_DRIVER_NO_DEVFS 0x0008
-#define TTY_DRIVER_CONSOLE 0x0010
/* tty driver types */
#define TTY_DRIVER_TYPE_SYSTEM 0x0001
|
|
From: James S. <jsi...@us...> - 2002-11-01 22:58:09
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux
In directory usw-pr-cvs1:/tmp/cvs-serv25643
Modified Files:
fb.h
Log Message:
Use fbdev BK version
Index: fb.h
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/fb.h,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- fb.h 23 Mar 2002 00:22:58 -0000 1.49
+++ fb.h 1 Nov 2002 22:58:06 -0000 1.50
@@ -18,7 +18,7 @@
#define FBIOGETCMAP 0x4604
#define FBIOPUTCMAP 0x4605
#define FBIOPAN_DISPLAY 0x4606
-#define FBIO_CURSOR _IOWR('F', 0x08, struct fbcursor)
+#define FBIO_CURSOR _IOWR('F', 0x08, struct fbcursor)
/* 0x4607-0x460B are defined below */
/* #define FBIOGET_MONITORSPEC 0x460C */
/* #define FBIOPUT_MONITORSPEC 0x460D */
@@ -31,8 +31,9 @@
#define FBIO_FREE 0x4614
#define FBIOGET_GLYPH 0x4615
#define FBIOGET_HWCINFO 0x4616
-#define FBIOPUT_MODEINFO 0x4617
-#define FBIOGET_DISPINFO 0x4618
+#define FBIOPUT_MODEINFO 0x4617
+#define FBIOGET_DISPINFO 0x4618
+
#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
#define FB_TYPE_PLANES 1 /* Non interleaved planes */
@@ -94,8 +95,8 @@
#define FB_ACCEL_IGS_CYBER2010 34 /* CyberPro 2010 */
#define FB_ACCEL_IGS_CYBER5000 35 /* CyberPro 5000 */
#define FB_ACCEL_SIS_GLAMOUR 36 /* SiS 300/630/540 */
-#define FB_ACCEL_3DLABS_PERMEDIA3 37 /* 3DLabs Permedia 3 */
-
+#define FB_ACCEL_3DLABS_PERMEDIA3 37 /* 3Dlabs Permedia 3 */
+#define FB_ACCEL_ATI_RADEON 38 /* ATI Radeon family */
#define FB_ACCEL_NEOMAGIC_NM2070 90 /* NeoMagic NM2070 */
#define FB_ACCEL_NEOMAGIC_NM2090 91 /* NeoMagic NM2090 */
@@ -124,8 +125,7 @@
/* (physical address) */
__u32 mmio_len; /* Length of Memory Mapped I/O */
__u32 accel; /* Type of acceleration available */
- __u16 api_version; /* Tell us what api version we have */
- __u16 reserved[2]; /* Reserved for future compatibility */
+ __u16 reserved[3]; /* Reserved for future compatibility */
};
/* Interpretation of offset for color fields: All offsets are from the right,
@@ -222,6 +222,16 @@
__u16 *transp; /* transparency, can be NULL */
};
+struct fb_index {
+ __u32 len; /* number of entries */
+ __u32 *entry; /* "pseudopalette" color index entries */
+};
+
+struct fb_con2fbmap {
+ __u32 console;
+ __u32 framebuffer;
+};
+
/* VESA Blanking Levels */
#define VESA_NO_BLANKING 0
#define VESA_VSYNC_SUSPEND 1
@@ -263,38 +273,44 @@
#define FB_CUR_SETHOT 0x04
#define FB_CUR_SETCMAP 0x08
#define FB_CUR_SETSHAPE 0x10
-#define FB_CUR_SETALL 0x1F
+#define FB_CUR_SETDEST 0x20
+#define FB_CUR_SETSIZE 0x40
+#define FB_CUR_SETALL 0xFF
-struct fbcurpos {
- __u16 x, y;
+struct fbcurpos {
+ __u16 x, y;
};
struct fbcursor {
- __u16 set; /* what to set */
- __u16 enable; /* cursor on/off */
- struct fbcurpos pos; /* cursor position */
- struct fbcurpos hot; /* cursor hot spot */
- struct fb_cmap cmap; /* color map info */
- struct fbcurpos size; /* cursor bit map size */
- char *image; /* cursor image bits */
- char *mask; /* cursor mask bits */
+ __u16 set; /* what to set */
+ __u16 enable; /* cursor on/off */
+ __u8 rop; /* bitop operation */
+ __u8 depth; /* color depth of image */
+ struct fbcurpos pos; /* cursor position */
+ struct fbcurpos hot; /* cursor hot spot */
+ struct fbcurpos size; /* cursor bit map size */
+ struct fb_cmap cmap; /* color map info */
+ struct fb_index *index;
+ char *image; /* cursor image bits */
+ char *mask; /* cursor mask bits */
+ char *dest; /* destination */
};
-/* Userland HW accel */
+/* Internal HW accel */
#define ROP_COPY 0
#define ROP_XOR 1
struct fb_copyarea {
- __u32 sx; /* screen-relative */
+ __u32 sx; /* screen-relative */
__u32 sy;
- __u32 width;
- __u32 height;
__u32 dx;
__u32 dy;
+ __u32 width;
+ __u32 height;
};
struct fb_fillrect {
- __u32 dx; /* screen-relative */
+ __u32 dx; /* screen-relative */
__u32 dy;
__u32 width;
__u32 height;
@@ -303,18 +319,15 @@
};
struct fb_image {
- __u32 width; /* Size of image */
+ __u32 dx; /* Where to place image */
+ __u32 dy;
+ __u32 width; /* Size of image */
__u32 height;
- __u16 dx; /* Where to place image */
- __u16 dy;
- __u32 fg_color; /* Only used when a mono bitmap */
+ __u32 fg_color; /* Only used when a mono bitmap */
__u32 bg_color;
- __u8 depth; /* Dpeth of the image */
- char *data; /* Pointer to image data */
-};
-
-#define FBIOPUT_COPYAREA _IOR('F', 0x19, struct fb_copyarea)
-#define FBIOPUT_FILLRECT _IOR('F', 0x20, struct fb_fillrect)
+ __u8 depth; /* Depth of the image */
+ char *data; /* Pointer to image data */
+};
#ifdef __KERNEL__
@@ -336,28 +349,33 @@
struct module *owner;
int (*fb_open)(struct fb_info *info, int user);
int (*fb_release)(struct fb_info *info, int user);
+ /* For framebuffers with strange non linear layouts */
+ ssize_t (*fb_read)(struct file *file, char *buf, size_t count, loff_t *ppos);
+ ssize_t (*fb_write)(struct file *file, const char *buf, size_t count, loff_t *ppos);
/* checks var and creates a par based on it */
int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info);
/* set the video mode according to par */
int (*fb_set_par)(struct fb_info *info);
- /* cursor control */
- int (*fb_cursor)(struct fb_info *info, struct fbcursor *cursor);
/* set color register */
int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green,
unsigned blue, unsigned transp, struct fb_info *info);
/* blank display */
int (*fb_blank)(int blank, struct fb_info *info);
/* pan display */
- int (*fb_pan_display)(struct fb_var_screeninfo *var, struct fb_info *info);
+ int (*fb_pan_display)(struct fb_var_screeninfo *var, struct fb_info *info);
/* draws a rectangle */
- void (*fb_fillrect)(struct fb_info *info, struct fb_fillrect *rect);
- /* Copy data from area to another */
- void (*fb_copyarea)(struct fb_info *info, struct fb_copyarea *area);
- /* Draws a image to the display */
+ void (*fb_fillrect)(struct fb_info *info, struct fb_fillrect *rect);
+ /* Copy data from area to another */
+ void (*fb_copyarea)(struct fb_info *info, struct fb_copyarea *region);
+ /* Draws a image to the display */
void (*fb_imageblit)(struct fb_info *info, struct fb_image *image);
+ /* Draws cursor */
+ int (*fb_cursor)(struct fb_info *info, struct fbcursor *cursor);
/* perform polling on fb device */
- int (*fb_poll)(struct fb_info *info, poll_table *wait);
- /* perform fb specific ioctl */
+ int (*fb_poll)(struct fb_info *info, poll_table *wait);
+ /* wait for blit idle, optional */
+ void (*fb_sync)(struct fb_info *info);
+ /* perform fb specific ioctl (optional) */
int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int cmd,
unsigned long arg, struct fb_info *info);
/* perform fb specific mmap */
@@ -372,21 +390,17 @@
struct fb_var_screeninfo var; /* Current var */
struct fb_fix_screeninfo fix; /* Current fix */
struct fb_monspecs monspecs; /* Current Monitor specs */
- struct fbcursor cursor; /* Current cursor */
+ struct fbcursor cursor; /* Current cursor */
struct fb_cmap cmap; /* Current cmap */
struct fb_ops *fbops;
- struct pm_dev *pm_fb;
char *screen_base; /* Virtual address */
- wait_queue_head_t wait; /* Sync methof for fbdev */
+ struct vc_data *display_fg; /* Console visible on this display */
+ int currcon; /* Current VC. */
devfs_handle_t devfs_handle; /* Devfs handle for new name */
devfs_handle_t devfs_lhandle; /* Devfs handle for compat. symlink */
void *pseudo_palette; /* Fake palette of 16 colors and
the cursor's color for non
palette mode */
-#ifdef CONFIG_MTRR
- int enable_mtrr; /* Turn MTRR on */
- int mtrr_handle; /* MTRR handle */
-#endif
/* From here on everything is device dependent */
void *par;
};
@@ -411,7 +425,7 @@
#define fb_writel sbus_writel
#define fb_memset sbus_memset_io
-#elif defined(__i386__) || defined(__alpha__)
+#elif defined(__i386__) || defined(__alpha__) || defined(__x86_64__) || defined(__hppa__)
#define fb_readb __raw_readb
#define fb_readw __raw_readw
@@ -437,16 +451,13 @@
* `Generic' versions of the frame buffer device operations
*/
-extern int fb_set_var(struct fb_var_screeninfo *var, struct fb_info *info);
+extern int fb_set_var(struct fb_var_screeninfo *var, struct fb_info *info);
extern int fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info);
-extern int fb_setup(char *options);
+extern int fb_blank(int blank, struct fb_info *info);
+extern int cfb_cursor(struct fb_info *info, struct fbcursor *cursor);
extern void cfb_fillrect(struct fb_info *info, struct fb_fillrect *rect);
extern void cfb_copyarea(struct fb_info *info, struct fb_copyarea *area);
-extern void cfb_imageblit(struct fb_info *info, struct fb_image *image);
-
- /*
- * Helper functions
- */
+extern void cfb_imageblit(struct fb_info *info, struct fb_image *image);
/* drivers/video/fbmem.c */
extern int register_framebuffer(struct fb_info *fb_info);
@@ -455,10 +466,6 @@
extern int num_registered_fb;
extern struct fb_info *registered_fb[FB_MAX];
-#ifdef CONFIG_MTRR
-extern void fb_disable_mtrrs(struct fb_info *fb_info);
-#endif
-
/* drivers/video/fbmon.c */
extern int fbmon_valid_timings(u_int pixclock, u_int htotal, u_int vtotal,
const struct fb_info *fb_info);
@@ -469,8 +476,7 @@
extern void fb_dealloc_cmap(struct fb_cmap *cmap);
extern void fb_copy_cmap(struct fb_cmap *from, struct fb_cmap *to,
int fsfromto);
-extern int fb_get_cmap(struct fb_cmap *cmap, int kspc,struct fb_info *fb_info);
-extern int fb_set_cmap(struct fb_cmap *cmap, int kspc,struct fb_info *fb_info);
+extern int fb_set_cmap(struct fb_cmap *cmap, int kspc, struct fb_info *fb_info);
extern struct fb_cmap *fb_default_cmap(int len);
extern void fb_invert_cmaps(void);
@@ -527,12 +533,5 @@
#endif
#endif /* __KERNEL__ */
-
-#if 1
-
-#define FBCMD_GET_CURRENTPAR 0xDEAD0005
-#define FBCMD_SET_CURRENTPAR 0xDEAD8005
-
-#endif
#endif /* _LINUX_FB_H */
|
|
From: James S. <jsi...@us...> - 2002-11-01 22:57:33
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv25387 Modified Files: console.h Log Message: Use BK version Index: console.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/console.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- console.h 29 Oct 2002 18:40:53 -0000 1.9 +++ console.h 1 Nov 2002 22:57:29 -0000 1.10 @@ -45,20 +45,21 @@ void (*write)(struct console *, const char *, unsigned); int (*read)(struct console *, const char *, unsigned); kdev_t (*device)(struct console *); + void (*unblank)(void); int (*setup)(struct console *, char *); - struct semaphore lock; - unsigned long con_start; short flags; short index; int cflag; struct console *next; }; -extern void acquire_console_sem(kdev_t device); -extern void release_console_sem(kdev_t device); extern void register_console(struct console *); extern int unregister_console(struct console *); extern struct console *console_drivers; +extern void acquire_console_sem(void); +extern void release_console_sem(void); +extern void console_conditional_schedule(void); +extern void console_unblank(void); /* VESA Blanking Levels */ #define VESA_NO_BLANKING 0 |
|
From: James S. <jsi...@us...> - 2002-11-01 22:56:30
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv25035 Modified Files: consolemap.h Log Message: Use BK version Index: consolemap.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/consolemap.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- consolemap.h 6 Sep 2000 12:46:15 -0000 1.2 +++ consolemap.h 1 Nov 2002 22:56:27 -0000 1.3 @@ -10,8 +10,6 @@ struct vc_data; -extern unsigned short *get_acm(int m); -extern unsigned char inverse_translate(int m, int ucs); -extern u16 inverse_convert(struct vc_data *conp, int glyph); -extern void set_translate(struct vc_data *conp, int m); +extern unsigned char inverse_translate(struct vc_data *vc, int glyph); +extern void set_translate(struct vc_data *vc, int m); extern int conv_uni_to_pc(struct vc_data *vc, long ucs); |
|
From: James S. <jsi...@us...> - 2002-10-30 18:17:24
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv17869
Modified Files:
keyboard.c
Log Message:
Synced up.
Index: keyboard.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/keyboard.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- keyboard.c 2 Aug 2002 14:58:50 -0000 1.77
+++ keyboard.c 30 Oct 2002 18:17:20 -0000 1.78
@@ -1,39 +1,27 @@
/*
- * $Id$
+ * linux/drivers/char/keyboard.c
*
- * Copyright (c) 2000 Vojtech Pavlik
+ * Written for linux by Johan Myreen as a translation from
+ * the assembly version by Linus (with diacriticals added)
*
- * Based on the work of:
- * Linus Torvalds Johan Myreen
- * Christoph Niemann Risto Kankkunen
- * Andries Brouwer Martin Mares
- * Hamish MacDonald Geert Uytterhoeven
+ * Some additional features added by Christoph Niemann (ChN), March 1993
*
- * Sponsored by SuSE
- */
-
-/*
- * Keyboard input for VT's
- */
-
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * Loadable keymaps by Risto Kankkunen, May 1993
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Diacriticals redone & other small changes, ae...@cw..., June 1993
+ * Added decr/incr_console, dynamic keymaps, Unicode support,
+ * dynamic function/string keys, led setting, Sept 1994
+ * `Sticky' modifier keys, 951006.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * 11-11-96: SAK should now work in the raw mode (Martin Mares)
+ *
+ * Modified to provide 'generic' keyboard support by Hamish Macdonald
+ * Merge with the m68k keyboard driver and split-off of the PC low-level
+ * parts by Geert Uytterhoeven, May 1997
*
- * Should you need to contact me, the author, you can do so either by
- * e-mail - mail your message to <vo...@uc...>, or by paper mail:
- * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
+ * 27-05-97: Added support for the Magic SysRq Key (Martin Mares)
+ * 30-07-98: Dead keys redone, ae...@cw....
+ * 21-08-02: Converted to input API, major cleanup. (Vojtech Pavlik)
*/
#include <linux/config.h>
@@ -47,23 +35,16 @@
#include <linux/init.h>
#include <linux/slab.h>
-#include <linux/kbd_kern.h>
#include <linux/kbd_diacr.h>
#include <linux/vt_kern.h>
-#include <linux/consolemap.h>
#include <linux/sysrq.h>
-#include <linux/pm.h>
#include <linux/input.h>
static void kbd_disconnect(struct input_handle *handle);
extern void ctrl_alt_del(void);
-
-/*
- * Exported functions/variables
- */
-
-struct pt_regs *kbd_pt_regs;
void compute_shiftstate(void);
+struct pt_regs *kbd_pt_regs;
+EXPORT_SYMBOL(kbd_pt_regs);
/*
* Handler Tables.
@@ -81,48 +62,32 @@
static k_handler_fn *k_handler[16] = { K_HANDLERS };
#define FN_HANDLERS\
- fn_null, fn_enter, fn_show_ptregs, fn_show_mem,\
- fn_show_state, fn_send_intr, fn_lastcons, fn_caps_toggle,\
- fn_num, fn_hold, fn_scroll_forw, fn_scroll_back,\
- fn_boot_it, fn_caps_on, fn_compose, fn_SAK,\
- fn_dec_console, fn_inc_console, fn_spawn_con, fn_bare_num
+ fn_null, fn_enter, fn_show_ptregs, fn_show_mem,\
+ fn_show_state, fn_send_intr, fn_lastcons, fn_caps_toggle,\
+ fn_num, fn_hold, fn_scroll_forw, fn_scroll_back,\
+ fn_boot_it, fn_caps_on, fn_compose, fn_SAK,\
+ fn_dec_console, fn_inc_console, fn_spawn_con, fn_bare_num
typedef void (fn_handler_fn)(struct vc_data *vc);
static fn_handler_fn FN_HANDLERS;
static fn_handler_fn *fn_handler[] = { FN_HANDLERS };
/*
- * Variables/functions exported for vt_ioctl.c
+ * Variables exported for vt_ioctl.c
*/
/* maximum values each key_handler can handle */
const int max_vals[] = {
255, ARRAY_SIZE(func_table) - 1, ARRAY_SIZE(fn_handler) - 1, NR_PAD - 1,
NR_DEAD - 1, 255, 3, NR_SHIFT - 1, 255, NR_ASCII - 1, NR_LOCK - 1,
- 255, 2*NR_LOCK - 1, 255
+ 255, NR_LOCK - 1, 255
};
-const int NR_TYPES = ARRAY_SIZE(max_vals);
+const int NR_TYPES = ARRAY_SIZE(max_vals);
int spawnpid, spawnsig;
-int getkeycode(struct input_handle *handle, unsigned int scancode)
-{
- unsigned char *keycode = handle->dev->keycode;
-
- return keycode[scancode & handle->dev->keycodemax];
-}
-
-int setkeycode(struct input_handle *handle, unsigned int scancode, unsigned int keycode)
-{
- unsigned char *key_code = handle->dev->keycode;
-
- if (keycode <= handle->dev->keycodemax)
- key_code[scancode & handle->dev->keycodemax] = keycode;
- return 0;
-}
-
/*
- * Variables/function exported for vt.c
+ * Variables exported for vt.c
*/
int shift_state = 0;
@@ -131,17 +96,14 @@
*/
static struct input_handler kbd_handler;
-static unsigned long key_down[256/BITS_PER_LONG]; /* keyboard key bitmap */
-static unsigned char shift_down[NR_SHIFT]; /* shift state counters.. */
+static unsigned long key_down[256/BITS_PER_LONG]; /* keyboard key bitmap */
+static unsigned char shift_down[NR_SHIFT]; /* shift state counters.. */
static int dead_key_next;
-static int npadch = -1; /* -1 or number assembled on pad */
+static int npadch = -1; /* -1 or number assembled on pad */
static unsigned char diacr;
-static char rep; /* flag telling character repeat */
-pm_callback pm_kbd_request_override = NULL;
-typedef void (pm_kbd_func) (void);
-static struct pm_dev *pm_kbd;
+static char rep; /* flag telling character repeat */
-static unsigned char ledstate = 0xff; /* undefined */
+static unsigned char ledstate = 0xff; /* undefined */
static unsigned char ledioctl;
static struct ledptr {
@@ -150,6 +112,128 @@
unsigned char valid:1;
} ledptrs[3];
+/* Simple translation table for the SysRq keys */
+
+#ifdef CONFIG_MAGIC_SYSRQ
+unsigned char kbd_sysrq_xlate[128] =
+ "\000\0331234567890-=\177\t" /* 0x00 - 0x0f */
+ "qwertyuiop[]\r\000as" /* 0x10 - 0x1f */
+ "dfghjkl;'`\000\\zxcv" /* 0x20 - 0x2f */
+ "bnm,./\000*\000 \000\201\202\203\204\205" /* 0x30 - 0x3f */
+ "\206\207\210\211\212\000\000789-456+1" /* 0x40 - 0x4f */
+ "230\177\000\000\213\214\000\000\000\000\000\000\000\000\000\000" /* 0x50 - 0x5f */
+ "\r\000/"; /* 0x60 - 0x6f */
+static int sysrq_down;
+#endif
+static int sysrq_alt;
+
+/*
+ * Translation of scancodes to keycodes. We set them on only the first attached
+ * keyboard - for per-keyboard setting, /dev/input/event is more useful.
+ */
+int getkeycode(struct input_handle *handle, unsigned int scancode)
+{
+ struct input_dev *dev = handle->dev;
+
+ if (!dev)
+ return -ENODEV;
+
+ if (!dev->keycodesize || (scancode < 0 || scancode >= dev->keycodemax))
+ return -EINVAL;
+
+ return INPUT_KEYCODE(dev, scancode);
+}
+
+int setkeycode(struct input_handle *handle, unsigned int scancode, unsigned int keycode)
+{
+ struct input_dev *dev = handle->dev;
+ int i, oldkey;
+
+ if (!dev)
+ return -ENODEV;
+
+ if (!dev->keycodesize || (scancode < 0 || scancode >= dev->keycodemax))
+ return -EINVAL;
+
+ oldkey = INPUT_KEYCODE(dev, scancode);
+ INPUT_KEYCODE(dev, scancode) = keycode;
+
+ for (i = 0; i < dev->keycodemax; i++)
+ if (INPUT_KEYCODE(dev, scancode) == oldkey)
+ break;
+ if (i == dev->keycodemax)
+ clear_bit(oldkey, dev->keybit);
+ set_bit(keycode, dev->keybit);
+ return 0;
+}
+
+/*
+ * Making beeps and bells.
+ */
+void kd_nosound(unsigned long private)
+{
+ struct input_handle *handle = (struct input_handle *) private;
+
+ if (test_bit(EV_SND, handle->dev->evbit)) {
+ if (test_bit(SND_TONE, handle->dev->sndbit))
+ input_event(handle->dev, EV_SND, SND_TONE, 0);
+ if (test_bit(SND_BELL, handle->dev->sndbit))
+ input_event(handle->dev, EV_SND, SND_BELL, 0);
+ }
+}
+
+void kd_mksound(struct input_handle *handle, unsigned int hz, unsigned int ticks)
+{
+/*
+ struct vt_struct *vt = vt_cons;
+
+ if (vt) {
+ del_timer(&vt->beep);
+
+ if (hz) {
+ if (test_bit(EV_SND, handle->dev->evbit)) {
+ if (test_bit(SND_TONE, handle->dev->sndbit))
+ input_event(handle->dev, EV_SND, SND_TONE, hz);
+ if (test_bit(SND_BELL, handle->dev->sndbit))
+ input_event(handle->dev, EV_SND, SND_BELL, 1);
+ }
+ if (ticks)
+ mod_timer(&vt->beep, jiffies + ticks);
+ } else
+ kd_nosound((long) handle);
+ }
+*/
+}
+
+/*
+ * Setting the keyboard rate.
+ */
+static inline unsigned int ms_to_jiffies(unsigned int ms) {
+ unsigned int j;
+
+ j = (ms * HZ + 500) / 1000;
+ return (j > 0) ? j : 1;
+}
+
+int kbd_rate(struct input_handle *handle, struct kbd_repeat *rep)
+{
+ struct input_dev *dev = handle->dev;
+ unsigned int d = 0;
+ unsigned int p = 0;
+
+ if (test_bit(EV_REP, dev->evbit)) {
+ if (rep->delay > 0)
+ dev->rep[REP_DELAY] = ms_to_jiffies(rep->delay);
+ if (rep->period > 0)
+ dev->rep[REP_PERIOD] = ms_to_jiffies(rep->period);
+ d = dev->rep[REP_DELAY] * 1000 / HZ;
+ p = dev->rep[REP_PERIOD] * 1000 / HZ;
+ }
+ rep->delay = d;
+ rep->period = p;
+ return 0;
+}
+
/*
* Helper Functions.
*/
@@ -159,11 +243,11 @@
if (tty) {
tty_insert_flip_char(tty, ch, 0);
- tty_schedule_flip(tty);
+ schedule_work(&tty->flip.work);
}
}
-static void puts_queue(struct vc_data *vc, char *cp)
+void puts_queue(struct vc_data *vc, char *cp)
{
struct tty_struct *tty = vc->vc_tty;
@@ -174,7 +258,7 @@
tty_insert_flip_char(tty, *cp, 0);
cp++;
}
- tty_schedule_flip(tty);
+ schedule_work(&tty->flip.work);
}
static void applkey(struct vc_data *vc, int key, char mode)
@@ -224,50 +308,50 @@
* in utf-8 already. UTF-8 is defined for words of up to 31 bits,
* but we need only 16 bits here
*/
-void to_utf8(struct vc_data *vc, ushort c)
+void to_utf8(struct vc_data *vc, ushort c)
{
if (c < 0x80)
/* 0******* */
put_queue(vc, c);
- else if (c < 0x800) {
+ else if (c < 0x800) {
/* 110***** 10****** */
- put_queue(vc, 0xc0 | (c >> 6));
+ put_queue(vc, 0xc0 | (c >> 6));
put_queue(vc, 0x80 | (c & 0x3f));
- } else {
+ } else {
/* 1110**** 10****** 10****** */
put_queue(vc, 0xe0 | (c >> 12));
put_queue(vc, 0x80 | ((c >> 6) & 0x3f));
put_queue(vc, 0x80 | (c & 0x3f));
- }
+ }
}
void put_unicode(struct vc_data *vc, u16 uc)
{
- if (vc->kbd_table.kbdmode == VC_UNICODE)
- to_utf8(vc, uc);
- else if ((uc & ~0x9f) == 0 || uc == 127)
- /* Don't translate control chars */
- put_queue(vc, uc);
- else {
- unsigned char c;
- c = inverse_translate(vc->display_fg->fg_console->vc_translate, uc);
- if (c) put_queue(vc, c);
- }
+ if (vc->kbd_table.kbdmode == VC_UNICODE)
+ to_utf8(vc, uc);
+ else if ((uc & ~0x9f) == 0 || uc == 127)
+ /* Don't translate control chars */
+ put_queue(vc, uc);
+ else {
+ unsigned char c;
+ c = inverse_translate(vc->display_fg->fg_console->vc_translate, uc);
+ if (c) put_queue(vc, c);
+ }
}
static void put_8bit(struct vc_data *vc, u8 c)
{
- if (vc->kbd_table.kbdmode != VC_UNICODE ||
- c < 32 || c == 127) /* Don't translate control chars */
- put_queue(vc, c);
- else
- to_utf8(vc, get_acm(vc->display_fg->fg_console->vc_translate)[c]);
+ /* Don't translate control chars */
+ if (vc->kbd_table.kbdmode != VC_UNICODE || c < 32 || c == 127)
+ put_queue(vc, c);
+ else
+ to_utf8(vc, get_acm(vc->display_fg->fg_console->vc_translate)[c]);
}
-/*
- * called after returning from RAW mode or when changing consoles -
- * recompute shift_down[] and shift_state from key_down[]
- * maybe called when keymap is undefined, so that shiftkey release is seen
+/*
+ * Called after returning from RAW mode or when changing consoles - recompute
+ * shift_down[] and shift_state from key_down[] maybe called when keymap is
+ * undefined, so that shiftkey release is seen
*/
void compute_shiftstate(void)
{
@@ -281,7 +365,7 @@
if (!key_down[i])
continue;
- k = i*BITS_PER_LONG;
+ k = i * BITS_PER_LONG;
for (j = 0; j < BITS_PER_LONG; j++, k++) {
@@ -338,7 +422,7 @@
diacr = 0;
}
put_queue(vc, 13);
- if (get_kbd_mode(&vc->kbd_table, VC_CRLF))
+ if (get_kbd_mode(vc->kbd_table, VC_CRLF))
put_queue(vc, 10);
}
@@ -346,14 +430,14 @@
{
if (rep)
return;
- chg_kbd_led(&vc->kbd_table, VC_CAPSLOCK);
+ chg_kbd_led(vc->kbd_table, VC_CAPSLOCK);
}
static void fn_caps_on(struct vc_data *vc)
{
if (rep)
return;
- set_kbd_led(&vc->kbd_table, VC_CAPSLOCK);
+ set_kbd_led(vc->kbd_table, VC_CAPSLOCK);
}
static void fn_show_ptregs(struct vc_data *vc)
@@ -382,7 +466,7 @@
static void fn_num(struct vc_data *vc)
{
- if (get_kbd_mode(&vc->kbd_table, VC_APPLIC))
+ if (get_kbd_mode(vc->kbd_table, VC_APPLIC))
applkey(vc, 'P', 1);
else
fn_bare_num(vc);
@@ -397,40 +481,44 @@
static void fn_bare_num(struct vc_data *vc)
{
if (!rep)
- chg_kbd_led(&vc->kbd_table, VC_NUMLOCK);
+ chg_kbd_led(vc->kbd_table, VC_NUMLOCK);
}
static void fn_lastcons(struct vc_data *vc)
{
- set_console(vc->display_fg->last_console);
+ set_console(vc->display_fg->last_console);
}
static void fn_dec_console(struct vc_data *vc)
{
- int i, j = vc->display_fg->fg_console->vc_num;
-
- for (i = j-1; i != j; i--) {
- if (i < vc->display_fg->first_vc)
- i = vc->display_fg->first_vc + MAX_NR_USER_CONSOLES-1;
- vc = find_vc(i);
- if (vc)
+ struct vt_struct *vt = vc->display_fg;
+ int i, j = vt->fg_console->vc_num - vt->first_vc;
+ struct vc_data *tmp = NULL;
+
+ for (i = j-1; i != j; i--) {
+ if (i == -1)
+ i = MAX_NR_USER_CONSOLES-1;
+ tmp = vt->vc_cons[i];
+ if (tmp)
break;
- }
- set_console(vc);
+ }
+ set_console(tmp);
}
static void fn_inc_console(struct vc_data *vc)
{
- int i, j = vc->display_fg->fg_console->vc_num;
+ struct vt_struct *vt = vc->display_fg;
+ int i, j = vt->fg_console->vc_num - vt->first_vc;
+ struct vc_data *tmp = NULL;
- for (i = j+1; i != j; i++) {
- if (i == vc->display_fg->first_vc + MAX_NR_USER_CONSOLES)
- i = vc->display_fg->first_vc;
- vc = find_vc(i);
- if (vc)
- break;
- }
- set_console(vc);
+ for (i = j+1; i != j; i++) {
+ if (i == MAX_NR_USER_CONSOLES)
+ i = 0;
+ tmp = vt->vc_cons[i];
+ if (tmp)
+ break;
+ }
+ set_console(tmp);
}
static void fn_send_intr(struct vc_data *vc)
@@ -440,27 +528,29 @@
if (!tty)
return;
tty_insert_flip_char(tty, 0, TTY_BREAK);
- tty_schedule_flip(tty);
+ schedule_work(&tty->flip.work);
}
static void fn_scroll_forw(struct vc_data *vc)
{
+ //scroll_down(vc, 0);
if (vc->vc_visible_origin < vc->vc_origin) {
vc->vc_visible_origin =+ vc->vc_screensize;
- do_update_region(vc, vc->vc_visible_origin, vc->vc_screensize);
-// scroll_up(vc, vc->vc_rows/2);
+ do_update_region(vc, vc->vc_visible_origin, vc->vc_screensize);
+// scroll_down(vc, vc->vc_rows/2);
}
}
static void fn_scroll_back(struct vc_data *vc)
{
+ //scroll_up(vc, 0);
unsigned short *p = (unsigned short *) vc->vc_visible_origin - vc->vc_screensize;
unsigned long q = (unsigned long) p;
if (q >= ((unsigned long) vc->vc_screenbuf)) {
vc->vc_visible_origin = q;
- do_update_region(vc, vc->vc_visible_origin, vc->vc_screensize);
-// scroll_down(vc, vc->vc_rows/2);
+ do_update_region(vc, vc->vc_visible_origin, vc->vc_screensize);
+// scroll_up(vc, vc->vc_rows/2);
}
}
@@ -476,35 +566,29 @@
static void fn_boot_it(struct vc_data *vc)
{
- struct input_handle *handle;
-
- if (vc && (vc->display_fg == admin_vt)) {
- /* Stop other key events from coming */
- for (handle = kbd_handler.handle; handle;
- handle = handle->hnext) {
- kbd_disconnect(handle);
- }
- ctrl_alt_del();
- }
+ ctrl_alt_del();
}
static void fn_compose(struct vc_data *vc)
{
- /* ???? */
dead_key_next = 1;
}
static void fn_spawn_con(struct vc_data *vc)
{
- if (spawnpid)
- if (kill_proc(spawnpid, spawnsig, 1))
- spawnpid = 0;
+ if (spawnpid)
+ if(kill_proc(spawnpid, spawnsig, 1))
+ spawnpid = 0;
}
static void fn_SAK(struct vc_data *vc)
{
struct tty_struct *tty = vc->vc_tty;
+ /*
+ * SAK should also work in all raw modes and reset
+ * them properly.
+ */
if (tty)
do_SAK(tty);
reset_vc(vc);
@@ -583,7 +667,7 @@
struct vc_data *tmp = find_vc(value + vc->display_fg->first_vc);
if (up_flag || !tmp)
- return;
+ return;
set_console(tmp);
}
@@ -604,7 +688,7 @@
if (up_flag)
return;
- applkey(vc, cur_chars[value], get_kbd_mode(&vc->kbd_table, VC_CKMODE));
+ applkey(vc, cur_chars[value], get_kbd_mode(vc->kbd_table, VC_CKMODE));
}
static void k_pad(struct vc_data *vc, unsigned char value, char up_flag)
@@ -616,12 +700,12 @@
return; /* no action, if this is a key release */
/* kludge... shift forces cursor/number keys */
- if (get_kbd_mode(&vc->kbd_table, VC_APPLIC) && !shift_down[KG_SHIFT]) {
+ if (get_kbd_mode(vc->kbd_table, VC_APPLIC) && !shift_down[KG_SHIFT]) {
applkey(vc, app_map[value], 1);
return;
}
- if (!get_kbd_led(&vc->kbd_table, VC_NUMLOCK))
+ if (!get_kbd_led(vc->kbd_table, VC_NUMLOCK))
switch (value) {
case KVAL(K_PCOMMA):
case KVAL(K_PDOT):
@@ -655,13 +739,12 @@
k_fn(vc, KVAL(K_PGUP), 0);
return;
case KVAL(K_P5):
- applkey(vc, 'G', get_kbd_mode(&vc->kbd_table,
- VC_APPLIC));
+ applkey(vc, 'G', get_kbd_mode(vc->kbd_table, VC_APPLIC));
return;
}
put_8bit(vc, pad_chars[value]);
- if (value == KVAL(K_PENTER) && get_kbd_mode(&vc->kbd_table, VC_CRLF))
+ if (value == KVAL(K_PENTER) && get_kbd_mode(vc->kbd_table, VC_CRLF))
put_queue(vc, 10);
}
@@ -678,7 +761,7 @@
if (value == KVAL(K_CAPSSHIFT)) {
value = KVAL(K_SHIFT);
if (!up_flag)
- clr_kbd_led(&vc->kbd_table, VC_CAPSLOCK);
+ clr_kbd_led(vc->kbd_table, VC_CAPSLOCK);
}
if (up_flag) {
@@ -711,7 +794,7 @@
if (up_flag)
return;
- if (get_kbd_mode(&vc->kbd_table, VC_META)) {
+ if (get_kbd_mode(vc->kbd_table, VC_META)) {
put_queue(vc, '\033');
put_queue(vc, value);
} else
@@ -744,11 +827,12 @@
{
if (up_flag || rep)
return;
+/*
if (value >= NR_LOCK) {
- /*
+ *
* Change the lock state and
- * set the CapsLock LED to the new state
- */
+ * set the CapsLock LED to the new state
+ *
unsigned char mask;
mask = 1 << (value -= NR_LOCK);
@@ -757,9 +841,8 @@
else
clr_kbd_led(&vc->kbd_table, VC_CAPSLOCK);
} else {
- /* Just change the lock state */
- chg_kbd_lock(&vc->kbd_table, value);
- }
+ * Just change the lock state */
+ chg_kbd_lock(vc->kbd_table, value);
}
static void k_slock(struct vc_data *vc, unsigned char value, char up_flag)
@@ -767,11 +850,11 @@
k_shift(vc, value, up_flag);
if (up_flag || rep)
return;
- chg_kbd_slock(&vc->kbd_table, value);
+ chg_kbd_slock(vc->kbd_table, value);
/* try to make Alt, oops, AltGr and such work */
if (!key_maps[vc->kbd_table.lockstate ^ vc->kbd_table.slockstate]) {
vc->kbd_table.slockstate = 0;
- chg_kbd_slock(&vc->kbd_table, value);
+ chg_kbd_slock(vc->kbd_table, value);
}
}
@@ -807,18 +890,17 @@
kbd->ledmode = LED_SHOW_FLAGS;
}
-static inline unsigned char getleds(struct vt_struct *vt)
+static inline unsigned char getleds(struct vc_data *vc)
{
- struct kbd_struct *kbd = &vt->fg_console->kbd_table;
unsigned char leds;
int i;
- if (kbd->ledmode == LED_SHOW_IOCTL)
+ if (vc->kbd_table.ledmode == LED_SHOW_IOCTL)
return ledioctl;
- leds = kbd->ledflagstate;
+ leds = vc->kbd_table.ledflagstate;
- if (kbd->ledmode == LED_SHOW_MEM) {
+ if (vc->kbd_table.ledmode == LED_SHOW_MEM) {
for (i = 0; i < 3; i++)
if (ledptrs[i].valid) {
if (*ledptrs[i].addr & ledptrs[i].mask)
@@ -846,50 +928,57 @@
static void kbd_bh(unsigned long dummy)
{
- struct input_handle *handle;
+ struct list_head * node;
unsigned char leds;
- for (handle = kbd_handler.handle; handle; handle = handle->hnext) {
- if (handle->private) {
- leds = getleds(handle->private);
+ list_for_each(node, &kbd_handler.h_list) {
+ struct input_handle *handle = to_handle_h(node);
+ struct vt_struct *vt = vt_cons;
+
+ if (vt) {
+ leds = getleds(vt->fg_console);
+
if (leds != ledstate) {
- ledstate = leds;
input_event(handle->dev, EV_LED, LED_SCROLLL, !!(leds & 0x01));
input_event(handle->dev, EV_LED, LED_NUML, !!(leds & 0x02));
input_event(handle->dev, EV_LED, LED_CAPSL, !!(leds & 0x04));
+
+ ledstate = leds;
}
- }
+ }
}
}
DECLARE_TASKLET_DISABLED(keyboard_tasklet, kbd_bh, 0);
-#if defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_ALPHA) || defined(CONFIG_MIPS) || defined(CONFIG_PPC)
-
-static int x86_sysrq_alt = 0;
+#if defined(CONFIG_X86) || defined(CONFIG_IA64) || defined(CONFIG_ALPHA) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(CONFIG_SPARC32) || defined(CONFIG_SPARC64)
-static unsigned short x86_keycodes[256] = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+static unsigned short x86_keycodes[256] =
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 43, 85, 86, 87, 88,115,119,120,121,375,123, 90,
284,285,309,298,312, 91,327,328,329,331,333,335,336,337,338,339,
- 367,294,293,286,350, 92,334,512,116,377,109,111,259,347,348,349,
- 360, 93, 94, 95, 98,376,100,101,357,316,354,304,289,102,351,355,
- 103,104,105,275,281,272,306,106,274,107,288,364,358,363,362,361,
- 291,108,381,290,287,292,279,305,280, 99,112,257,258,113,270,114,
- 118,117,125,374,379,125,260,261,262,263,264,265,266,267,268,269,
- 271,273,276,277,278,282,283,295,296,297,299,300,301,302,303,307,
- 308,310,313,314,315,317,318,319,320,321,322,323,324,325,326,330,
- 332,340,341,342,343,344,345,346,356,359,365,368,369,370,371,372
-};
+ 367,288,302,304,350, 92,334,512,116,377,109,111,373,347,348,349,
+ 360, 93, 94, 95, 98,376,100,101,321,316,354,286,289,102,351,355,
+ 103,104,105,275,287,279,306,106,274,107,294,364,358,363,362,361,
+ 291,108,381,281,290,272,292,305,280, 99,112,257,258,359,270,114,
+ 118,117,125,374,379,115,112,125,121,123,264,265,266,267,268,269,
+ 271,273,276,277,278,282,283,295,296,297,299,300,301,293,303,307,
+ 308,310,313,314,315,317,318,319,320,357,322,323,324,325,326,330,
+ 332,340,365,342,343,344,345,346,356,113,341,368,369,370,371,372 };
#ifdef CONFIG_MAC_EMUMOUSEBTN
extern int mac_hid_mouse_emulate_buttons(int, int, int);
#endif /* CONFIG_MAC_EMUMOUSEBTN */
+#if defined(CONFIG_SPARC32) || defined(CONFIG_SPARC64)
+static int sparc_l1_a_state = 0;
+extern void sun_do_break(void);
+#endif
+
static int emulate_raw(struct vc_data *vc, unsigned int keycode,
unsigned char up_flag)
{
@@ -908,7 +997,7 @@
return 0;
}
- if (keycode == KEY_SYSRQ && x86_sysrq_alt) {
+ if (keycode == KEY_SYSRQ && sysrq_alt) {
put_queue(vc, 0x54 | up_flag);
return 0;
}
@@ -923,9 +1012,6 @@
put_queue(vc, 0x37 | up_flag);
}
- if (keycode == KEY_LEFTALT || keycode == KEY_RIGHTALT)
- x86_sysrq_alt = !up_flag;
-
return 0;
}
@@ -951,8 +1037,6 @@
struct tty_struct *tty;
int shift_final;
- pm_access(pm_kbd);
-
if (down != 2)
add_keyboard_randomness((keycode << 1) ^ down);
@@ -963,14 +1047,36 @@
tty->driver_data = vc;
}
- /* If the console is blanked unblank it */
- vt->want_vc = vc;
- schedule_task(&vt->vt_tq);
+ if (keycode == KEY_LEFTALT || keycode == KEY_RIGHTALT)
+ sysrq_alt = down;
+#if defined(CONFIG_SPARC32) || defined(CONFIG_SPARC64)
+ if (keycode == KEY_STOP)
+ sparc_l1_a_state = down;
+#endif
+
+ rep = (down == 2);
if ((raw_mode = (vc->kbd_table.kbdmode == VC_RAW)))
if (emulate_raw(vc, keycode, !down << 7))
printk(KERN_WARNING "keyboard.c: can't emulate rawmode for keycode %d\n", keycode);
+#ifdef CONFIG_MAGIC_SYSRQ /* Handle the SysRq Hack */
+ if (keycode == KEY_SYSRQ && !rep) {
+ sysrq_down = sysrq_alt && down;
+ return;
+ }
+ if (sysrq_down && down && !rep) {
+ handle_sysrq(kbd_sysrq_xlate[keycode], kbd_pt_regs, tty);
+ return;
+ }
+#endif
+#if defined(CONFIG_SPARC32) || defined(CONFIG_SPARC64)
+ if (keycode == KEY_A && sparc_l1_a_state) {
+ sparc_l1_a_state = 0;
+ sun_do_break();
+ }
+#endif
+
if (vc->kbd_table.kbdmode == VC_MEDIUMRAW) {
/*
* This is extended medium raw mode, with keys above 127
@@ -991,9 +1097,12 @@
raw_mode = 1;
}
- rep = (down == 2);
+ if (down)
+ set_bit(keycode, key_down);
+ else
+ clear_bit(keycode, key_down);
- if (rep && (!get_kbd_mode(&vc->kbd_table, VC_REPEAT) || (tty &&
+ if (rep && (!get_kbd_mode(vc->kbd_table, VC_REPEAT) || (tty &&
(!L_ECHO(tty) && tty->driver.chars_in_buffer(tty))))) {
/*
* Don't repeat a key if the input buffers are not empty and the
@@ -1027,13 +1136,15 @@
if (type == KT_LETTER) {
type = KT_LATIN;
- if (get_kbd_led(&vc->kbd_table, VC_CAPSLOCK)) {
+ if (get_kbd_led(vc->kbd_table, VC_CAPSLOCK)) {
key_map = key_maps[shift_final ^ (1 << KG_SHIFT)];
if (key_map)
keysym = key_map[keycode];
}
}
- (*k_handler[type])(vc, keysym & 0xff, !(down << 7));
+
+ (*k_handler[type])(vc, keysym & 0xff, !down);
+
if (type != KT_SLOCK)
vc->kbd_table.slockstate = 0;
}
@@ -1047,6 +1158,7 @@
return;
kbd_keycode(vt, keycode, down);
tasklet_schedule(&keyboard_tasklet);
+ schedule_work(&vt->vt_work);
}
static char kbd_name[] = "kbd";
@@ -1062,9 +1174,8 @@
struct input_dev *dev,
struct input_device_id *id)
{
- struct input_handle *handle;
struct vt_struct *vt = vt_cons;
- struct vc_data *vc;
+ struct input_handle *handle;
int i;
for (i = KEY_RESERVED; i < BTN_MISC; i++)
@@ -1077,6 +1188,14 @@
return NULL;
memset(handle, 0, sizeof(struct input_handle));
+ /*
+ * If we have more keyboards than VTs we still register the handler.
+ * It is possible someone might add a graphics card thus needing the
+ * keyboard later
+ */
+ handle->dev = dev;
+ handle->handler = handler;
+ handle->name = kbd_name;
if (!first_time) {
first_time = 1;
@@ -1084,26 +1203,19 @@
}
while (vt) {
- if (!vt->keyboard) {
- vt->keyboard = handle;
+ if (!vt->keyboard) {
+ vt->keyboard = handle;
handle->private = vt;
vt_map_input(vt);
/* enable receieving key events for each VC */
for (i = 0; i < MAX_NR_USER_CONSOLES; i++) {
vc = find_vc(vt->first_vc + i);
- if (vc) vc->vc_kam = 1;
+ if (vc) vc->vc_kam = 1;
}
break;
- } else
+ } else
vt = vt->next;
- }
-
- /* If we have more keyboards than VTs we still register the handler.
- * It is possible someone might add a graphics card thus needing the
- * keyboard later */
- handle->dev = dev;
- handle->handler = handler;
- handle->name = kbd_name; /* FIXME, should be vt0, vt1, etc, or similar */
+ }
input_open_device(handle);
return handle;
}
@@ -1112,18 +1224,17 @@
{
struct vt_struct *vt = handle->private;
struct vc_data *vc;
- int i;
+ int i;
if (vt && vt->keyboard == handle) {
/* disable receieving key events for each VC */
for (i = 0; i < MAX_NR_USER_CONSOLES; i++) {
vc = find_vc(vt->first_vc + i);
- if (vc) vc->vc_kam = 1;
+ if (vc) vc->vc_kam = 1;
}
vt->keyboard = NULL;
handle->private = NULL;
- }
-
+ }
input_close_device(handle);
kfree(handle);
}
@@ -1154,11 +1265,8 @@
int __init kbd_init(void)
{
+ input_register_handler(&kbd_handler);
tasklet_enable(&keyboard_tasklet);
tasklet_schedule(&keyboard_tasklet);
-
- pm_kbd = pm_register(PM_SYS_DEV, PM_SYS_KBC, pm_kbd_request_override);
-
- input_register_handler(&kbd_handler);
return 0;
}
|
|
From: James S. <jsi...@us...> - 2002-10-30 17:55:32
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv1366
Modified Files:
Config.in
Log Message:
Synced up.
Index: Config.in
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Config.in,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- Config.in 23 Jul 2002 19:18:49 -0000 1.43
+++ Config.in 30 Oct 2002 17:55:29 -0000 1.44
@@ -12,27 +12,10 @@
# fi
bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE
fi
-fi
-
-tristate 'Standard/generic (8250/16550 and compatible UARTs) serial support' CONFIG_SERIAL
-if [ "$CONFIG_SERIAL" = "y" ]; then
- bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE
- if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
- tristate ' Atomwide serial port support' CONFIG_ATOMWIDE_SERIAL
- tristate ' Dual serial port support' CONFIG_DUALSP_SERIAL
+ if [ "$CONFIG_VT" = "y" -a "$CONFIG_S390" != "y" -a "$CONFIG_UM" != "y" ]; then
+ define_bool CONFIG_HW_CONSOLE y
fi
fi
-if [ "$CONFIG_ACPI" = "y" -a "$CONFIG_IA64" = "y" ]; then
- bool ' Support for serial ports defined by ACPI tables' CONFIG_SERIAL_ACPI
-fi
-dep_mbool 'Extended dumb serial driver options' CONFIG_SERIAL_EXTENDED $CONFIG_SERIAL
-if [ "$CONFIG_SERIAL_EXTENDED" = "y" ]; then
- bool ' Support more than 4 serial ports' CONFIG_SERIAL_MANY_PORTS
- bool ' Support for sharing serial interrupts' CONFIG_SERIAL_SHARE_IRQ
- bool ' Autodetect IRQ on standard ports (unsafe)' CONFIG_SERIAL_DETECT_IRQ
- bool ' Support special multiport boards' CONFIG_SERIAL_MULTIPORT
- bool ' Support the Bell Technologies HUB6 card' CONFIG_HUB6
-fi
bool 'Non-standard serial port support' CONFIG_SERIAL_NONSTANDARD
if [ "$CONFIG_SERIAL_NONSTANDARD" = "y" ]; then
tristate ' Computone IntelliPort Plus serial support' CONFIG_COMPUTONE
@@ -89,15 +72,9 @@
if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then
tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
fi
-if [ "$CONFIG_FOOTBRIDGE" = "y" ]; then
- bool 'DC21285 serial port support' CONFIG_SERIAL_21285
- if [ "$CONFIG_SERIAL_21285" = "y" ]; then
- if [ "$CONFIG_OBSOLETE" = "y" ]; then
- bool ' Use /dev/ttyS0 device (OBSOLETE)' CONFIG_SERIAL_21285_OLD
- fi
- bool ' Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE
- fi
-fi
+
+source drivers/serial/Config.in
+
bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
@@ -108,6 +85,7 @@
bool ' Support for console on line printer' CONFIG_LP_CONSOLE
fi
dep_tristate 'Support for user-space parallel port device drivers' CONFIG_PPDEV $CONFIG_PARPORT
+ dep_tristate 'Texas Instruments parallel link cable support' CONFIG_TIPAR $CONFIG_PARPORT
fi
if [ "$CONFIG_PPC_PSERIES" = "y" ]; then
bool 'pSeries Hypervisor Virtual Console support' CONFIG_HVC_CONSOLE
@@ -154,6 +132,7 @@
tristate ' IB700 SBC Watchdog Timer' CONFIG_IB700_WDT
tristate ' Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
tristate ' Mixcom Watchdog' CONFIG_MIXCOMWD
+ tristate ' NatSemi SCx200 Watchdog' CONFIG_SCx200_WDT
tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
tristate ' W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT
tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT
@@ -172,8 +151,17 @@
if [ "$CONFIG_X86" = "y" -o "$CONFIG_IA64" = "y" ]; then
dep_tristate 'Intel i8x0 Random Number Generator support' CONFIG_INTEL_RNG $CONFIG_PCI
fi
+if [ "$CONFIG_X86" = "y" ]; then
+ dep_tristate 'AMD 768 Random Number Generator support' CONFIG_AMD_RNG $CONFIG_PCI
+fi
tristate '/dev/nvram support' CONFIG_NVRAM
tristate 'Enhanced Real Time Clock Support' CONFIG_RTC
+if [ "$CONFIG_RTC" != "y" ]; then
+ tristate 'Generic /dev/rtc emulation' CONFIG_GEN_RTC
+ if [ "$CONFIG_GEN_RTC" != "n" ]; then
+ bool ' Extended RTC operation' CONFIG_GEN_RTC_X
+ fi
+fi
if [ "$CONFIG_IA64" = "y" ]; then
bool 'EFI Real Time Clock Services' CONFIG_EFI_RTC
fi
@@ -196,21 +184,7 @@
fi
endmenu
-dep_tristate '/dev/agpgart (AGP Support)' CONFIG_AGP $CONFIG_DRM_AGP
-if [ "$CONFIG_AGP" != "n" ]; then
- bool ' Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support' CONFIG_AGP_INTEL
- bool ' Intel I810/I815/I830M (on-board) support' CONFIG_AGP_I810
- bool ' VIA chipset support' CONFIG_AGP_VIA
- bool ' AMD Irongate, 761, and 762 support' CONFIG_AGP_AMD
- bool ' Generic SiS support' CONFIG_AGP_SIS
- bool ' ALI chipset support' CONFIG_AGP_ALI
- bool ' Serverworks LE/HE support' CONFIG_AGP_SWORKS
- if [ "$CONFIG_IA64" = "y" ]; then
- bool ' Intel 460GX support' CONFIG_AGP_I460
- bool ' HP ZX1 AGP support' CONFIG_AGP_HP_ZX1
- fi
-fi
-
+source drivers/char/agp/Config.in
source drivers/char/drm/Config.in
if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
@@ -220,5 +194,9 @@
if [ "$CONFIG_X86" = "y" ]; then
tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
fi
+
+dep_tristate 'NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200
+
+tristate ' RAW driver (/dev/raw/rawN)' CONFIG_RAW_DRIVER
endmenu
|
|
From: James S. <jsi...@us...> - 2002-10-30 17:50:45
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv30414
Modified Files:
consolemap.c
Log Message:
Hm. Update.
Index: consolemap.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/consolemap.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- consolemap.c 7 Mar 2001 04:42:27 -0000 1.12
+++ consolemap.c 30 Oct 2002 17:50:40 -0000 1.13
@@ -14,161 +14,156 @@
*
*/
-#include <linux/kd.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/init.h>
-#include <linux/tty.h>
#include <asm/uaccess.h>
#include <linux/consolemap.h>
[...1045 lines suppressed...]
- p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc;
+ p = (struct uni_pagedir *) *vc->vc_uni_pagedir_loc;
if ((p1 = p->uni_pgdir[ucs >> 11]) &&
(p2 = p1[(ucs >> 6) & 0x1f]) &&
(h = p2[ucs & 0x3f]) < MAX_GLYPH)
@@ -781,9 +818,9 @@
while (vt) {
if (!vt->kmalloced && !*vt->vc_cons[0]->vc_uni_pagedir_loc)
- con_set_default_unimap(vt->vc_cons[0]);
- vt = vt->next;
- }
+ con_set_default_unimap(vt->vc_cons[0]);
+ vt = vt->next;
+ }
for (i = 0; i < 4; i++)
- set_inverse_translations(i);
+ set_inverse_translations(i);
}
|
|
From: James S. <jsi...@us...> - 2002-10-30 17:46:02
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv27194 Modified Files: Makefile Log Message: Removed atari mouse Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- Makefile 30 Oct 2002 17:39:59 -0000 1.47 +++ Makefile 30 Oct 2002 17:45:58 -0000 1.48 @@ -56,7 +56,6 @@ obj-$(CONFIG_R3964) += n_r3964.o obj-$(CONFIG_APPLICOM) += applicom.o obj-$(CONFIG_SONYPI) += sonypi.o -obj-$(CONFIG_ATARIMOUSE) += atarimouse.o obj-$(CONFIG_RTC) += rtc.o obj-$(CONFIG_GEN_RTC) += genrtc.o obj-$(CONFIG_EFI_RTC) += efirtc.o |
|
From: James S. <jsi...@us...> - 2002-10-30 17:45:10
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv26360
Modified Files:
decvte.c
Log Message:
Synced up
Index: decvte.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/decvte.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- decvte.c 27 Jul 2002 19:33:27 -0000 1.20
+++ decvte.c 30 Oct 2002 17:45:06 -0000 1.21
@@ -1,6 +1,6 @@
/*
* decvte.c - DEC VT terminal emulation code.
- * Copyright (C) 2000 James Simmons
+ * Copyright (C) 2002 James Simmons (jsi...@in...)
*
* I moved all the VT emulation code out of console.c to here. It makes life
* much easier and the code smaller. It also allows other devices to emulate
@@ -30,7 +30,6 @@
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/errno.h>
-#include <linux/kd.h>
#include <linux/slab.h>
#include <linux/major.h>
#include <linux/mm.h>
@@ -38,6 +37,7 @@
#include <linux/devfs_fs_kernel.h>
#include <linux/vt_kern.h>
#include <linux/vt_buffer.h>
+#include <linux/selection.h>
#include <linux/consolemap.h>
#include <linux/config.h>
#include <linux/version.h>
@@ -317,18 +317,31 @@
case 7: /* negative image */
reverse = 1;
break;
- case 10: /* primary (default) font */
+ case 10: /* primary (default) font
+ * ANSI X3.64-1979 (SCO-ish?)
+ * Select primary font, don't display
+ * control chars if defined, don't set
+ * bit 8 on output.
+ */
set_translate(vc, charset == 0 ?
G0_charset : G1_charset);
disp_ctrl = 0;
toggle_meta = 0;
break;
- case 11: /* first alternative font */
+ case 11: /* first alternative font
+ * ANSI X3.64-1979 (SCO-ish?)
+ * Select first alternate font, lets
+ * chars < 32 be displayed as ROM chars.
+ */
set_translate(vc, IBMPC_MAP);
disp_ctrl = 1;
toggle_meta = 0;
break;
- case 12: /* second alternative font */
+ case 12: /* second alternative font
+ * ANSI X3.64-1979 (SCO-ish?)
+ * Select second alternate font, toggle
+ * high bit before displaying as ROM char.
+ */
set_translate(vc, IBMPC_MAP);
disp_ctrl = 1;
toggle_meta = 1;
@@ -346,11 +359,22 @@
case 27: /* positive image */
reverse = 0;
break;
- case 38: /* foreground color (ISO 8613-6/ITU T.416) */
+ case 38: /*
+ * foreground color (ISO 8613-6/ITU T.416)
+ * Enables underscore, white foreground
+ * with white underscore (Linux - use
+ * default foreground).
+ */
color = (def_color & 0x0f) | background;
underline = 1;
break;
- case 39: /* default display color */
+ case 39: /*
+ * default display color
+ * ANSI X3.64-1979 (SCO-ish?)
+ * Disable underline option.
+ * Reset colour to default? It did this
+ * before...
+ */
color = (def_color & 0x0f) | background;
underline = 0;
break;
@@ -378,7 +402,7 @@
char buf[40];
sprintf(buf, "%s?%sn", __VTE_CSI, reply);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -401,7 +425,7 @@
sprintf(buf, "%s%d;%dR", __VTE_CSI,
y + (decom ? top + 1 : 1), x + 1);
}
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -413,7 +437,7 @@
char buf[40];
sprintf(buf, "%s0n", __VTE_CSI);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -421,7 +445,9 @@
*/
static inline void vte_answerback(struct tty_struct *tty)
{
- respond_string("l i n u x", tty);
+ struct vc_data *vc = (struct vc_data *) tty->driver_data;
+
+ puts_queue(vc, "linux");
}
/*
@@ -434,7 +460,7 @@
/* We claim VT220 compatibility... */
sprintf(buf, "%s?62;1;2;6;7;8;9c", __VTE_CSI);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
#define VTE_VERSION 211
@@ -452,7 +478,7 @@
char buf[40];
sprintf(buf, "%s>%d;%d;0c", __VTE_CSI, 1, VTE_VERSION / 10);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -466,7 +492,7 @@
char buf[40];
sprintf(buf, "%s!|%s%s", __VTE_DCS, "0", __VTE_ST);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -478,7 +504,7 @@
char buf[40];
sprintf(buf, "\033[%d;1;1;120;120;1;0x", par[0] + 2);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -495,10 +521,10 @@
switch (par[i]) {
case 1: /* DECCKM - Cursor keys mode */
if (on_off)
- set_kbd_mode(&vc->kbd_table,
+ set_kbd_mode(vc->kbd_table,
VC_CKMODE);
else
- clr_kbd_mode(&vc->kbd_table,
+ clr_kbd_mode(vc->kbd_table,
VC_CKMODE);
break;
case 2: /* DECANM - ANSI mode */
@@ -532,10 +558,10 @@
case 8: /* DECARM - Autorepeat mode */
decarm = on_off;
if (on_off)
- set_kbd_mode(&vc->kbd_table,
+ set_kbd_mode(vc->kbd_table,
VC_REPEAT);
else
- clr_kbd_mode(&vc->kbd_table,
+ clr_kbd_mode(vc->kbd_table,
VC_REPEAT);
break;
case 9:
@@ -555,10 +581,10 @@
case 66: /* DECNKM - Numeric keybad mode */
decnkm = on_off;
if (on_off)
- set_kbd_mode(&vc->kbd_table,
+ set_kbd_mode(vc->kbd_table,
VC_APPLIC);
else
- clr_kbd_mode(&vc->kbd_table,
+ clr_kbd_mode(vc->kbd_table,
VC_APPLIC);
break;
case 67: /* DECBKM - Backarrow key mode */
@@ -585,10 +611,10 @@
break;
case 20: /* Lf, Enter == CrLf/Lf */
if (on_off)
- set_kbd_mode(&vc->kbd_table,
+ set_kbd_mode(vc->kbd_table,
VC_CRLF);
else
- clr_kbd_mode(&vc->kbd_table,
+ clr_kbd_mode(vc->kbd_table,
VC_CRLF);
break;
}
@@ -611,7 +637,7 @@
char buf[40];
sprintf(buf, "%s%d*{", __VTE_CSI, 0); /* No space left */
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -635,7 +661,7 @@
sprintf(buf, "%s?%d;%d$y", __VTE_CSI, mode, status);
else
sprintf(buf, "%s%d;%d$y", __VTE_CSI, mode, status);
- respond_string(buf, tty);
+ puts_queue(vc, buf);
}
/*
@@ -826,8 +852,10 @@
bell_duration = DEFAULT_BELL_DURATION;
break;
case 12: /* bring specified console to the front */
- if (par[1] >= 1 && find_vc(par[1]))
- set_console(find_vc(par[1]));
+ if (par[1] >= 0) {
+ struct vc_data *tmp = find_vc(par[1]);
+ set_console(tmp);
+ }
break;
case 13: /* unblank the screen */
poke_blanked_console(vc->display_fg);
@@ -985,10 +1013,10 @@
irm = 0; /* replace */
lnm = 0; /* line feed */
- set_kbd_mode(&vc->kbd_table, VC_REPEAT);
- clr_kbd_mode(&vc->kbd_table, VC_CKMODE);
- clr_kbd_mode(&vc->kbd_table, VC_APPLIC);
- clr_kbd_mode(&vc->kbd_table, VC_CRLF);
+ set_kbd_mode(vc->kbd_table, VC_REPEAT);
+ clr_kbd_mode(vc->kbd_table, VC_CKMODE);
+ clr_kbd_mode(vc->kbd_table, VC_APPLIC);
+ clr_kbd_mode(vc->kbd_table, VC_CRLF);
vc->kbd_table.lockstate = KBD_DEFLOCK;
vc->kbd_table.slockstate = 0;
vc->kbd_table.ledmode = LED_SHOW_FLAGS;
@@ -1083,7 +1111,7 @@
return;
case 0x07: /* BEL - Bell */
if (bell_duration)
- kd_mksound(vc, bell_pitch, bell_duration);
+ kd_mksound(vc->display_fg->keyboard, bell_pitch, bell_duration);
return;
case 0x08: /* BS - Back space */
vte_bs(vc);
@@ -1109,7 +1137,7 @@
* DEC VT series processes FF as LF.
*/
vte_lf(vc);
- if (!get_kbd_mode(&vc->kbd_table, VC_CRLF))
+ if (!get_kbd_mode(vc->kbd_table, VC_CRLF))
return;
case 0x0d: /* CR - Carriage return */
vte_cr(vc);
@@ -1283,11 +1311,11 @@
return;
case '=': /* DECKPAM - Keypad application mode */
decnkm = 1;
- set_kbd_mode(&vc->kbd_table, VC_APPLIC);
+ set_kbd_mode(vc->kbd_table, VC_APPLIC);
return;
case '>': /* DECKPNM - Keypad numeric mode */
decnkm = 0;
- clr_kbd_mode(&vc->kbd_table, VC_APPLIC);
+ clr_kbd_mode(vc->kbd_table, VC_APPLIC);
return;
/* ===== C1 control functions ===== */
@@ -1527,7 +1555,7 @@
break;
case 'm':
if (priv4) {
- /* clear_selection(); */
+ clear_selection();
if (par[0])
complement_mask =
par[0] << 8 | par[1];
@@ -1968,7 +1996,7 @@
G1_charset = DEC_TECH_MAP;
break;
#endif
- case 'A': /* Latin-1 supplemental */
+ case 'A': /* ISO Latin-1 supplemental */
G1_charset = LAT1_MAP;
break;
case 'B': /* ASCII */
|
|
From: James S. <jsi...@us...> - 2002-10-30 17:40:06
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv22861 Modified Files: Makefile Log Message: Synced up Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v retrieving revision 1.46 retrieving revision 1.47 diff -u -d -r1.46 -r1.47 --- Makefile 10 Jul 2002 18:08:02 -0000 1.46 +++ Makefile 30 Oct 2002 17:39:59 -0000 1.47 @@ -7,29 +7,17 @@ # FONTMAPFILE = cp437.uni -obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o raw.o pty.o misc.o random.o +obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o pty.o misc.o random.o # All of the (potential) objects that export symbols. # This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'. -export-objs := vt.o keyboard.o sysrq.o \ - misc.o pty.o random.o selection.o serial.o \ - sonypi.o tty_io.o tty_ioctl.o generic_serial.o rtc.o \ - ip2main.o - -ifeq ($(CONFIG_DECSTATION),y) - SERIAL = decserial.o -endif - -ifeq ($(CONFIG_QTRONIX_KEYBOARD),y) - KEYBD = qtronix.o - KEYMAP = qtronixmap.o -endif - -obj-$(CONFIG_VT) += vt.o vt_ioctl.o decvte.o vc_screen.o consolemap.o consolemap_deftbl.o selection.o keyboard.o defkeymap.o -obj-$(CONFIG_SERIAL) += $(SERIAL) -obj-$(CONFIG_SERIAL_ACPI) += acpi_serial.o +export-objs := vt.o generic_serial.o ip2main.o \ + ite_gpio.o keyboard.o misc.o nvram.o random.o rtc.o \ + selection.o sonypi.o sysrq.o tty_io.o tty_ioctl.o +obj-$(CONFIG_VT) += vt_ioctl.o decvte.o vc_screen.o consolemap.o consolemap_deftbl.o selection.o keyboard.o +obj-$(CONFIG_HW_CONSOLE) += vt.o defkeymap.o obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o obj-$(CONFIG_ROCKETPORT) += rocket.o @@ -59,13 +47,18 @@ obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o +obj-$(CONFIG_RAW_DRIVER) += raw.o obj-$(CONFIG_PRINTER) += lp.o +obj-$(CONFIG_TIPAR) += tipar.o + obj-$(CONFIG_DTLK) += dtlk.o obj-$(CONFIG_R3964) += n_r3964.o obj-$(CONFIG_APPLICOM) += applicom.o obj-$(CONFIG_SONYPI) += sonypi.o +obj-$(CONFIG_ATARIMOUSE) += atarimouse.o obj-$(CONFIG_RTC) += rtc.o +obj-$(CONFIG_GEN_RTC) += genrtc.o obj-$(CONFIG_EFI_RTC) += efirtc.o ifeq ($(CONFIG_PPC),) obj-$(CONFIG_NVRAM) += nvram.o @@ -74,6 +67,7 @@ obj-$(CONFIG_I8K) += i8k.o obj-$(CONFIG_DS1620) += ds1620.o obj-$(CONFIG_INTEL_RNG) += i810_rng.o +obj-$(CONFIG_AMD_RNG) += amd768_rng.o obj-$(CONFIG_QIC02_TAPE) += tpqic02.o obj-$(CONFIG_FTAPE) += ftape/ obj-$(CONFIG_H8) += h8.o @@ -81,6 +75,7 @@ obj-$(CONFIG_DZ) += dz.o obj-$(CONFIG_NWBUTTON) += nwbutton.o obj-$(CONFIG_NWFLASH) += nwflash.o +obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o # Only one watchdog can succeed. We probe the hardware watchdog # drivers first, then the softdog driver. This means if your hardware @@ -92,6 +87,7 @@ obj-$(CONFIG_ADVANTECH_WDT) += advantechwdt.o obj-$(CONFIG_IB700_WDT) += ib700wdt.o obj-$(CONFIG_MIXCOMWD) += mixcomwd.o +obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o obj-$(CONFIG_WDT) += wdt.o obj-$(CONFIG_WDTPCI) += wdt_pci.o @@ -107,27 +103,13 @@ obj-$(CONFIG_DRM) += drm/ obj-$(CONFIG_PCMCIA) += pcmcia/ -host-progs := conmakehash +# Files generated that shall be removed upon make clean +clean-files := consolemap_deftbl.c defkeymap.c include $(TOPDIR)/Rules.make -$(obj)/consolemap_deftbl.c: $(src)/$(FONTMAPFILE) $(obj)/conmakehash - $(obj)/conmakehash $< > $@ +$(obj)/consolemap_deftbl.c: $(src)/$(FONTMAPFILE) + $(call do_cmd,CONMK $@,$(objtree)/scripts/conmakehash $< > $@) $(obj)/defkeymap.o: $(obj)/defkeymap.c -$(obj)/qtronixmap.o: $(obj)/qtronixmap.c - -# Uncomment if you're changing the keymap and have an appropriate -# loadkeys version for the map. By default, we'll use the shipped -# versions. -# GENERATE_KEYMAP := 1 - -ifdef GENERATE_KEYMAP - -$(obj)/defkeymap.c $(obj)/qtronixmap.c: $(obj)/%.c: $(src)/%.map - loadkeys --mktable $< > $@.tmp - sed -e 's/^static *//' $@.tmp > $@ - rm $@.tmp - -endif \ No newline at end of file |
|
From: James S. <jsi...@us...> - 2002-10-30 17:31:11
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv16312 Modified Files: console_macros.h Log Message: Synced up to BK Index: console_macros.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/console_macros.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- console_macros.h 5 Jan 2001 17:27:59 -0000 1.13 +++ console_macros.h 30 Oct 2002 17:31:08 -0000 1.14 @@ -1,100 +1,100 @@ -#define cons_num (vc->vc_num) -#define video_num_columns (vc->vc_cols) -#define video_num_lines (vc->vc_rows) -#define video_size_row (vc->vc_size_row) -#define vcmode (vc->vc_mode) -#define can_do_color (vc->vc_can_do_color) -#define screenbuf (vc->vc_screenbuf) -#define screenbuf_size (vc->vc_screenbuf_size) -#define screensize (vc->vc_screensize) -#define scrollback (vc->vc_scrollback) -#define origin (vc->vc_origin) -#define scr_top (vc->vc_scr_top) -#define visible_origin (vc->vc_visible_origin) -#define scr_end (vc->vc_scr_end) -#define pos (vc->vc_pos) -#define top (vc->vc_top) -#define bottom (vc->vc_bottom) -#define x (vc->vc_x) -#define y (vc->vc_y) -#define vc_state (vc->vc_state) -#define npar (vc->vc_npar) -#define par (vc->vc_par) -#define ques (vc->vc_ques) -#define attr (vc->vc_attr) -#define saved_x (vc->vc_saved_x) -#define saved_y (vc->vc_saved_y) -#define translate (vc->vc_translate) -#define G0_charset (vc->vc_G0_charset) -#define G1_charset (vc->vc_G1_charset) -#define saved_G0 (vc->vc_saved_G0) -#define saved_G1 (vc->vc_saved_G1) -#define utf (vc->vc_utf) -#define utf_count (vc->vc_utf_count) -#define utf_char (vc->vc_utf_char) -#define video_erase_char (vc->vc_video_erase_char) -#define disp_ctrl (vc->vc_disp_ctrl) -#define toggle_meta (vc->vc_toggle_meta) -#define decscnm (vc->vc_decscnm) -#define decom (vc->vc_decom) -#define decawm (vc->vc_decawm) -#define deccm (vc->vc_deccm) -#define decim (vc->vc_decim) -#define deccolm (vc->vc_deccolm) -#define need_wrap (vc->vc_need_wrap) -#define report_mouse (vc->vc_report_mouse) -#define color (vc->vc_color) -#define s_color (vc->vc_s_color) -#define def_color (vc->vc_def_color) -#define foreground (color & 0x0f) -#define background (color & 0xf0) -#define charset (vc->vc_charset) -#define s_charset (vc->vc_s_charset) -#define intensity (vc->vc_intensity) -#define underline (vc->vc_underline) -#define blink (vc->vc_blink) -#define reverse (vc->vc_reverse) -#define s_intensity (vc->vc_s_intensity) -#define s_underline (vc->vc_s_underline) -#define s_blink (vc->vc_s_blink) -#define s_reverse (vc->vc_s_reverse) -#define ulcolor (vc->vc_ulcolor) -#define halfcolor (vc->vc_halfcolor) -#define tab_stop (vc->vc_tab_stop) -#define palette (vc->vc_palette) -#define bell_pitch (vc->vc_bell_pitch) -#define bell_duration (vc->vc_bell_duration) -#define cursor_type (vc->vc_cursor_type) -#define complement_mask (vc->vc_complement_mask) -#define s_complement_mask (vc->vc_s_complement_mask) -#define hi_font_mask (vc->vc_hi_font_mask) +#define cons_num (vc->vc_num) +#define video_num_columns (vc->vc_cols) +#define video_num_lines (vc->vc_rows) +#define video_size_row (vc->vc_size_row) +#define vcmode (vc->vc_mode) +#define can_do_color (vc->vc_can_do_color) +#define screenbuf (vc->vc_screenbuf) +#define screenbuf_size (vc->vc_screenbuf_size) +#define screensize (vc->vc_screensize) +#define scrollback (vc->vc_scrollback) +#define origin (vc->vc_origin) +#define scr_top (vc->vc_scr_top) +#define visible_origin (vc->vc_visible_origin) +#define scr_end (vc->vc_scr_end) +#define pos (vc->vc_pos) +#define top (vc->vc_top) +#define bottom (vc->vc_bottom) +#define x (vc->vc_x) +#define y (vc->vc_y) +#define vc_state (vc->vc_state) +#define npar (vc->vc_npar) +#define par (vc->vc_par) +#define ques (vc->vc_ques) +#define attr (vc->vc_attr) +#define saved_x (vc->vc_saved_x) +#define saved_y (vc->vc_saved_y) +#define translate (vc->vc_translate) +#define G0_charset (vc->vc_G0_charset) +#define G1_charset (vc->vc_G1_charset) +#define saved_G0 (vc->vc_saved_G0) +#define saved_G1 (vc->vc_saved_G1) +#define utf (vc->vc_utf) +#define utf_count (vc->vc_utf_count) +#define utf_char (vc->vc_utf_char) +#define video_erase_char (vc->vc_video_erase_char) +#define disp_ctrl (vc->vc_disp_ctrl) +#define toggle_meta (vc->vc_toggle_meta) +#define decscnm (vc->vc_decscnm) +#define decom (vc->vc_decom) +#define decawm (vc->vc_decawm) +#define deccm (vc->vc_deccm) +#define decim (vc->vc_decim) +#define deccolm (vc->vc_deccolm) +#define need_wrap (vc->vc_need_wrap) +#define report_mouse (vc->vc_report_mouse) +#define color (vc->vc_color) +#define s_color (vc->vc_s_color) +#define def_color (vc->vc_def_color) +#define foreground (color & 0x0f) +#define background (color & 0xf0) +#define charset (vc->vc_charset) +#define s_charset (vc->vc_s_charset) +#define intensity (vc->vc_intensity) +#define underline (vc->vc_underline) +#define blink (vc->vc_blink) +#define reverse (vc->vc_reverse) +#define s_intensity (vc->vc_s_intensity) +#define s_underline (vc->vc_s_underline) +#define s_blink (vc->vc_s_blink) +#define s_reverse (vc->vc_s_reverse) +#define ulcolor (vc->vc_ulcolor) +#define halfcolor (vc->vc_halfcolor) +#define tab_stop (vc->vc_tab_stop) +#define palette (vc->vc_palette) +#define bell_pitch (vc->vc_bell_pitch) +#define bell_duration (vc->vc_bell_duration) +#define cursor_type (vc->vc_cursor_type) +#define complement_mask (vc->vc_complement_mask) +#define s_complement_mask (vc->vc_s_complement_mask) +#define hi_font_mask (vc->vc_hi_font_mask) -#define softcursor_original (vc->display_fg->cursor_original) -#define sw (vc->display_fg->vt_sw) +#define softcursor_original (vc->display_fg->cursor_original) +#define sw (vc->display_fg->vt_sw) -#define dectcem (vc->vc_dectcem) -#define decscl (vc->vc_decscl) -#define c8bit (vc->vc_c8bit) -#define d8bit (vc->vc_d8bit) -#define shift (vc->vc_shift) -#define priv1 (vc->vc_priv1) -#define priv2 (vc->vc_priv2) -#define priv3 (vc->vc_priv3) -#define priv4 (vc->vc_priv4) -#define decckm (vc->vc_decckm) -#define decsclm (vc->vc_decsclm) -#define decarm (vc->vc_decarm) -#define decnrcm (vc->vc_decnrcm) -#define decnkm (vc->vc_decnkm) -#define kam (vc->vc_kam) -#define crm (vc->vc_crm) -#define lnm (vc->vc_lnm) -#define irm (vc->vc_irm) -#define GL_charset (vc->vc_GL_charset) -#define GR_charset (vc->vc_GR_charset) -#define G2_charset (vc->vc_G2_charset) -#define G3_charset (vc->vc_G3_charset) -#define GS_charset (vc->vc_GS_charset) -#define saved_G2 (vc->vc_saved_G2) -#define saved_G3 (vc->vc_saved_G3) -#define saved_GS (vc->vc_saved_GS) +#define dectcem (vc->vc_dectcem) +#define decscl (vc->vc_decscl) +#define c8bit (vc->vc_c8bit) +#define d8bit (vc->vc_d8bit) +#define shift (vc->vc_shift) +#define priv1 (vc->vc_priv1) +#define priv2 (vc->vc_priv2) +#define priv3 (vc->vc_priv3) +#define priv4 (vc->vc_priv4) +#define decckm (vc->vc_decckm) +#define decsclm (vc->vc_decsclm) +#define decarm (vc->vc_decarm) +#define decnrcm (vc->vc_decnrcm) +#define decnkm (vc->vc_decnkm) +#define kam (vc->vc_kam) +#define crm (vc->vc_crm) +#define lnm (vc->vc_lnm) +#define irm (vc->vc_irm) +#define GL_charset (vc->vc_GL_charset) +#define GR_charset (vc->vc_GR_charset) +#define G2_charset (vc->vc_G2_charset) +#define G3_charset (vc->vc_G3_charset) +#define GS_charset (vc->vc_GS_charset) +#define saved_G2 (vc->vc_saved_G2) +#define saved_G3 (vc->vc_saved_G3) +#define saved_GS (vc->vc_saved_GS) |
|
From: James S. <jsi...@us...> - 2002-10-30 17:30:23
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv15340
Modified Files:
sysrq.c
Log Message:
Synced up
Index: sysrq.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/sysrq.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- sysrq.c 2 Aug 2002 14:58:50 -0000 1.23
+++ sysrq.c 30 Oct 2002 17:30:19 -0000 1.24
@@ -28,7 +28,8 @@
#include <linux/smp_lock.h>
#include <linux/module.h>
#include <linux/suspend.h>
-#include <linux/buffer_head.h> /* for fsync_bdev()/wakeup_bdflush() */
+#include <linux/writeback.h>
+#include <linux/buffer_head.h> /* for fsync_bdev() */
#include <linux/spinlock.h>
@@ -58,7 +59,6 @@
action_msg: "Changing Loglevel",
};
-
/* SAK sysrq handler */
#ifdef CONFIG_VT
static void sysrq_handle_SAK(int key, struct pt_regs *pt_regs,
@@ -69,22 +69,20 @@
if (tty)
do_SAK(tty);
if ((tty->driver.type == TTY_DRIVER_TYPE_CONSOLE) && vc)
- reset_vc(vc->display_fg->fg_console);
+ reset_vc(vc);
}
static struct sysrq_key_op sysrq_SAK_op = {
handler: sysrq_handle_SAK,
help_msg: "saK",
action_msg: "SAK",
};
-#endif
-
/* unraw sysrq handler */
static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs,
- struct tty_struct *tty)
+ struct tty_struct *tty)
{
struct vc_data *vc = (struct vc_data *) tty->driver_data;
-
+
if ((tty->driver.type == TTY_DRIVER_TYPE_CONSOLE) && vc)
vc->kbd_table.kbdmode = VC_XLATE;
}
@@ -93,7 +91,7 @@
help_msg: "unRaw",
action_msg: "Keyboard mode set to XLATE",
};
-
+#endif /* CONFIG_VT */
/* reboot sysrq handler */
static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs,
@@ -107,6 +105,8 @@
action_msg: "Resetting",
};
+
+
/* SYNC SYSRQ HANDLERS BLOCK */
/* do_emergency_sync helper function */
@@ -227,7 +227,7 @@
struct tty_struct *tty)
{
emergency_sync_scheduled = EMERG_SYNC;
- wakeup_bdflush();
+ wakeup_bdflush(0);
}
static struct sysrq_key_op sysrq_sync_op = {
handler: sysrq_handle_sync,
@@ -239,7 +239,7 @@
struct tty_struct *tty)
{
emergency_sync_scheduled = EMERG_REMOUNT;
- wakeup_bdflush();
+ wakeup_bdflush(0);
}
static struct sysrq_key_op sysrq_mountro_op = {
handler: sysrq_handle_mountro,
@@ -276,6 +276,7 @@
action_msg: "Show State",
};
+
static void sysrq_handle_showmem(int key, struct pt_regs *pt_regs,
struct tty_struct *tty)
{
@@ -298,7 +299,7 @@
{
struct task_struct *p;
- for_each_task(p) {
+ for_each_process(p) {
if (p->mm && p->pid != 1)
/* Not swapper, init nor kernel thread */
force_sig(sig, p);
@@ -347,8 +348,8 @@
/* 8 */ &sysrq_loglevel_op,
/* 9 */ &sysrq_loglevel_op,
/* a */ NULL, /* Don't use for system provided sysrqs,
- it is handled specially on the spark
- and will never arive */
+ it is handled specially on the sparc
+ and will never arrive */
/* b */ &sysrq_reboot_op,
/* c */ NULL,
/* d */ NULL,
@@ -370,7 +371,11 @@
as 'Off' at init time */
/* p */ &sysrq_showregs_op,
/* q */ NULL,
+#ifdef CONFIG_VT
/* r */ &sysrq_unraw_op,
+#else
+/* r */ NULL,
+#endif
/* s */ &sysrq_sync_op,
/* t */ &sysrq_showstate_op,
/* u */ &sysrq_mountro_op,
|
|
From: James S. <jsi...@us...> - 2002-10-30 17:29:40
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv14478
Modified Files:
tty_io.c
Log Message:
Synced up tty_io.c
Index: tty_io.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- tty_io.c 2 Aug 2002 14:58:50 -0000 1.52
+++ tty_io.c 30 Oct 2002 17:29:35 -0000 1.53
@@ -81,7 +81,6 @@
#include <linux/console.h>
#include <linux/timer.h>
#include <linux/ctype.h>
-#include <linux/kd.h>
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/slab.h>
@@ -95,9 +94,7 @@
#include <asm/system.h>
#include <asm/bitops.h>
-#ifdef CONFIG_VT
#include <linux/vt_kern.h>
-#endif
#include <linux/devfs_fs_kernel.h>
#include <linux/kmod.h>
@@ -112,7 +109,7 @@
#define CHECK_TTY_COUNT 1
struct termios tty_std_termios; /* for the benefit of tty drivers */
-struct tty_driver *tty_drivers; /* linked list of tty drivers */
+LIST_HEAD(tty_drivers); /* linked list of tty drivers */
struct tty_ldisc ldiscs[NR_LDISCS]; /* line disc dispatch table */
#ifdef CONFIG_UNIX98_PTYS
@@ -120,6 +117,8 @@
extern struct tty_driver pts_driver[]; /* Unix98 pty slaves; for /dev/ptmx */
#endif
+extern void disable_early_printk(void);
+
/*
* redirect is the pseudo-tty that console output
* is redirected to if asked by TIOCCONS.
@@ -203,6 +202,8 @@
return _tty_make_name(tty, (tty)?tty->driver.name:NULL, buf);
}
+EXPORT_SYMBOL(tty_name);
+
inline int tty_paranoia_check(struct tty_struct *tty, kdev_t device,
const char *routine)
{
@@ -333,7 +334,7 @@
minor = minor(device);
major = major(device);
- for (p = tty_drivers; p; p = p->next) {
+ list_for_each_entry(p, &tty_drivers, tty_drivers) {
if (p->major != major)
continue;
if (minor < p->minor_start)
@@ -429,6 +430,7 @@
struct file * cons_filp = NULL;
struct task_struct *p;
struct list_head *l;
+ struct pid *pid;
int closecount = 0, n;
if (!tty)
@@ -453,11 +455,12 @@
}
file_list_unlock();
- /* FIXME! What are the locking issues here? This may me overdoing things.. */
+ /* FIXME! What are the locking issues here? This may me overdoing things..
+ * this question is especially important now that we've removed the irqlock. */
{
unsigned long flags;
- save_flags(flags); cli();
+ local_irq_save(flags); // FIXME: is this safe?
if (tty->ldisc.flush_buffer)
tty->ldisc.flush_buffer(tty);
if (tty->driver.flush_buffer)
@@ -465,7 +468,7 @@
if ((test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags)) &&
tty->ldisc.write_wakeup)
(tty->ldisc.write_wakeup)(tty);
- restore_flags(flags);
+ local_irq_restore(flags); // FIXME: is this safe?
}
wake_up_interruptible(&tty->write_wait);
@@ -491,17 +494,17 @@
}
read_lock(&tasklist_lock);
- for_each_task(p) {
- if ((tty->session > 0) && (p->session == tty->session) &&
- p->leader) {
- send_sig(SIGHUP,p,1);
- send_sig(SIGCONT,p,1);
+ if (tty->session > 0)
+ for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) {
+ if (p->tty == tty)
+ p->tty = NULL;
+ if (!p->leader)
+ continue;
+ send_sig(SIGHUP, p, 1);
+ send_sig(SIGCONT, p, 1);
if (tty->pgrp > 0)
p->tty_old_pgrp = tty->pgrp;
}
- if (p->tty == tty)
- p->tty = NULL;
- }
read_unlock(&tasklist_lock);
tty->flags = 0;
@@ -530,7 +533,7 @@
printk(KERN_DEBUG "%s hangup...\n", tty_name(tty, buf));
#endif
- schedule_task(&tty->tq_hangup);
+ schedule_work(&tty->hangup_work);
}
void tty_vhangup(struct tty_struct * tty)
@@ -542,6 +545,7 @@
#endif
do_tty_hangup((void *) tty);
}
+EXPORT_SYMBOL(tty_vhangup);
int tty_hung_up_p(struct file * filp)
{
@@ -565,6 +569,8 @@
{
struct tty_struct *tty = current->tty;
struct task_struct *p;
+ struct list_head *l;
+ struct pid *pid;
int tty_pgrp = -1;
lock_kernel();
@@ -592,9 +598,8 @@
tty->pgrp = -1;
read_lock(&tasklist_lock);
- for_each_task(p)
- if (p->session == current->session)
- p->tty = NULL;
+ for_each_task_pid(current->session, PIDTYPE_SID, p, l, pid)
+ p->tty = NULL;
read_unlock(&tasklist_lock);
unlock_kernel();
}
@@ -738,7 +743,8 @@
return -ESPIPE;
/*
- * For now, we redirect writes from /dev/console.
+ * For now, we redirect writes from /dev/console as
+ * well as /dev/tty0.
*/
inode = file->f_dentry->d_inode;
is_console = IS_SYSCONS_DEV(inode->i_rdev);
@@ -1213,12 +1219,15 @@
*/
if (tty_closing || o_tty_closing) {
struct task_struct *p;
+ struct list_head *l;
+ struct pid *pid;
read_lock(&tasklist_lock);
- for_each_task(p) {
- if (p->tty == tty || (o_tty && p->tty == o_tty))
+ for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid)
+ p->tty = NULL;
+ if (o_tty)
+ for_each_task_pid(o_tty->session, PIDTYPE_SID, p,l, pid)
p->tty = NULL;
- }
read_unlock(&tasklist_lock);
if (redirect == tty || (o_tty && redirect == o_tty))
@@ -1250,8 +1259,7 @@
/*
* Make sure that the tty's task queue isn't activated.
*/
- run_task_queue(&tq_timer);
- flush_scheduled_tasks();
+ flush_scheduled_work();
/*
* The release_mem function takes care of the details of clearing
@@ -1291,6 +1299,7 @@
filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */
/* noctty = 1; */
}
+
if (IS_SYSCONS_DEV(device)) {
struct console *c = console_drivers;
while(c && !c->device)
@@ -1445,11 +1454,9 @@
if (on) {
if (!waitqueue_active(&tty->read_wait))
tty->minimum_to_wake = 1;
- if (filp->f_owner.pid == 0) {
- filp->f_owner.pid = (-tty->pgrp) ? : current->pid;
- filp->f_owner.uid = current->uid;
- filp->f_owner.euid = current->euid;
- }
+ retval = f_setown(filp, (-tty->pgrp) ? : current->pid, 0);
+ if (retval)
+ return retval;
} else {
if (!tty->fasync && !waitqueue_active(&tty->read_wait))
tty->minimum_to_wake = N_TTY_BUF_SIZE;
@@ -1505,7 +1512,7 @@
static int tioccons(struct inode *inode,
struct tty_struct *tty, struct tty_struct *real_tty)
{
- if (IS_SYSCONS_DEV(inode->i_rdev)) {
+ if (IS_SYSCONS_DEV(inode->i_rdev)) {
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
redirect = NULL;
@@ -1534,6 +1541,10 @@
static int tiocsctty(struct tty_struct *tty, int arg)
{
+ struct list_head *l;
+ struct pid *pid;
+ task_t *p;
+
if (current->leader &&
(current->session == tty->session))
return 0;
@@ -1552,12 +1563,10 @@
/*
* Steal it away
*/
- struct task_struct *p;
read_lock(&tasklist_lock);
- for_each_task(p)
- if (p->tty == tty)
- p->tty = NULL;
+ for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid)
+ p->tty = NULL;
read_unlock(&tasklist_lock);
} else
return -EPERM;
@@ -1828,7 +1837,7 @@
if (tty->driver.flush_buffer)
tty->driver.flush_buffer(tty);
read_lock(&tasklist_lock);
- for_each_task(p) {
+ for_each_process(p) {
if ((p->tty == tty) ||
((session > 0) && (p->session == session))) {
printk(KERN_NOTICE "SAK: killed process %d"
@@ -1860,9 +1869,8 @@
}
/*
- * The tq handling here is a little racy - tty->SAK_tq may already be queued.
- * But there's no mechanism to fix that without futzing with tqueue_lock.
- * Fortunately we don't need to worry, because if ->SAK_tq is already queued,
+ * The tq handling here is a little racy - tty->SAK_work may already be queued.
+ * Fortunately we don't need to worry, because if ->SAK_work is already queued,
* the values which we write to it will be identical to the values which it
* already has. --akpm
*/
@@ -1870,8 +1878,8 @@
{
if (!tty)
return;
- PREPARE_TQUEUE(&tty->SAK_tq, __do_SAK, tty);
- schedule_task(&tty->SAK_tq);
+ PREPARE_WORK(&tty->SAK_work, __do_SAK, tty);
+ schedule_work(&tty->SAK_work);
}
/*
@@ -1887,7 +1895,10 @@
unsigned long flags;
if (test_bit(TTY_DONT_FLIP, &tty->flags)) {
- queue_task(&tty->flip.tqueue, &tq_timer);
+ /*
+ * Do it after the next timer tick:
+ */
+ schedule_delayed_work(&tty->flip.work, 1);
return;
}
if (tty->flip.buf_num) {
@@ -1895,7 +1906,7 @@
fp = tty->flip.flag_buf + TTY_FLIPBUF_SIZE;
tty->flip.buf_num = 0;
- save_flags(flags); cli();
+ local_irq_save(flags); // FIXME: is this safe?
tty->flip.char_buf_ptr = tty->flip.char_buf;
tty->flip.flag_buf_ptr = tty->flip.flag_buf;
} else {
@@ -1903,13 +1914,13 @@
fp = tty->flip.flag_buf;
tty->flip.buf_num = 1;
- save_flags(flags); cli();
+ local_irq_save(flags); // FIXME: is this safe?
tty->flip.char_buf_ptr = tty->flip.char_buf + TTY_FLIPBUF_SIZE;
tty->flip.flag_buf_ptr = tty->flip.flag_buf + TTY_FLIPBUF_SIZE;
}
count = tty->flip.count;
tty->flip.count = 0;
- restore_flags(flags);
+ local_irq_restore(flags); // FIXME: is this safe?
tty->ldisc.receive_buf(tty, cp, fp, count);
}
@@ -1964,7 +1975,7 @@
if (tty->low_latency)
flush_to_ldisc((void *) tty);
else
- queue_task(&tty->flip.tqueue, &tq_timer);
+ schedule_delayed_work(&tty->flip.work, 1);
}
/*
@@ -1978,18 +1989,16 @@
tty->pgrp = -1;
tty->flip.char_buf_ptr = tty->flip.char_buf;
tty->flip.flag_buf_ptr = tty->flip.flag_buf;
- tty->flip.tqueue.routine = flush_to_ldisc;
- tty->flip.tqueue.data = tty;
+ INIT_WORK(&tty->flip.work, flush_to_ldisc, tty);
init_MUTEX(&tty->flip.pty_sem);
init_waitqueue_head(&tty->write_wait);
init_waitqueue_head(&tty->read_wait);
- tty->tq_hangup.routine = do_tty_hangup;
- tty->tq_hangup.data = tty;
+ INIT_WORK(&tty->hangup_work, do_tty_hangup, tty);
sema_init(&tty->atomic_read, 1);
sema_init(&tty->atomic_write, 1);
spin_lock_init(&tty->read_lock);
INIT_LIST_HEAD(&tty->tty_files);
- INIT_TQUEUE(&tty->SAK_tq, 0, 0);
+ INIT_WORK(&tty->SAK_work, NULL, NULL);
}
/*
@@ -2037,14 +2046,12 @@
void tty_unregister_devfs (struct tty_driver *driver, unsigned minor)
{
#ifdef CONFIG_DEVFS_FS
- void * handle;
int idx = minor - driver->minor_start;
char buf[32];
sprintf(buf, driver->name, idx + driver->name_base);
- handle = devfs_find_handle (NULL, buf, driver->major, minor,
- DEVFS_SPECIAL_CHR, 0);
- devfs_unregister (handle);
+ devfs_find_and_unregister(NULL, buf, driver->major, minor,
+ DEVFS_SPECIAL_CHR, 0);
#endif /* CONFIG_DEVFS_FS */
}
@@ -2062,7 +2069,7 @@
if (driver->flags & TTY_DRIVER_INSTALLED)
return 0;
- error = devfs_register_chrdev(driver->major, driver->name, &tty_fops);
+ error = register_chrdev(driver->major, driver->name, &tty_fops);
if (error < 0)
return error;
else if(driver->major == 0)
@@ -2071,10 +2078,7 @@
if (!driver->put_char)
driver->put_char = tty_default_put_char;
- driver->prev = 0;
- driver->next = tty_drivers;
- if (tty_drivers) tty_drivers->prev = driver;
- tty_drivers = driver;
+ list_add(&driver->tty_drivers, &tty_drivers);
//if (!(driver->flags & TTY_DRIVER_CONSOLE))
@@ -2083,7 +2087,7 @@
init_MUTEX(driver->tty_lock);
} else
driver->tty_lock = &driver->console->lock;
-
+
if ( !(driver->flags & TTY_DRIVER_NO_DEVFS) ) {
for(i = 0; i < driver->num; i++)
tty_register_devfs(driver, 0, driver->minor_start + i);
@@ -2106,7 +2110,7 @@
if (*driver->refcount)
return -EBUSY;
- for (p = tty_drivers; p; p = p->next) {
+ list_for_each_entry(p, &tty_drivers, tty_drivers) {
if (p == driver)
found++;
else if (p->major == driver->major)
@@ -2117,19 +2121,13 @@
return -ENOENT;
if (othername == NULL) {
- retval = devfs_unregister_chrdev(driver->major, driver->name);
+ retval = unregister_chrdev(driver->major, driver->name);
if (retval)
return retval;
} else
- devfs_register_chrdev(driver->major, othername, &tty_fops);
+ register_chrdev(driver->major, othername, &tty_fops);
- if (driver->prev)
- driver->prev->next = driver->next;
- else
- tty_drivers = driver->next;
-
- if (driver->next)
- driver->next->prev = driver->prev;
+ list_del(&driver->tty_drivers);
/*
* Free the termios and termios_locked structures because
@@ -2182,6 +2180,9 @@
* set up the console device so that later boot sequences can
* inform about problems etc..
*/
+#ifdef CONFIG_EARLY_PRINTK
+ disable_early_printk();
+#endif
#ifdef CONFIG_VT
vt_console_init();
#endif
@@ -2241,6 +2242,9 @@
#ifdef CONFIG_UNIX98_PTYS
static struct tty_driver dev_ptmx_driver;
#endif
+#ifdef CONFIG_VT
+extern int vty_init(void);
+#endif
/*
* Ok, now we can initialize the rest of the tty devices and can count
@@ -2249,8 +2253,8 @@
void __init tty_init(void)
{
/*
- * dev_tty_driver and dev_console_driver are actually magic
- * devices which get redirected at open time. Nevertheless,
+ * dev_tty_driver are a actually magic device which
+ * get redirected at open time. Nevertheless,
* we register them so that register_chrdev is called
* appropriately.
*/
@@ -2291,11 +2295,10 @@
if (tty_register_driver(&dev_ptmx_driver))
panic("Couldn't register /dev/ptmx driver\n");
#endif
-
+
#ifdef CONFIG_VT
- vty_init();
+ vty_init();
#endif
-
#ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */
espserial_init();
#endif
|
|
From: James S. <jsi...@us...> - 2002-10-30 16:57:58
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv27001
Modified Files:
n_tty.c
Log Message:
Synced up.
Index: n_tty.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/n_tty.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- n_tty.c 16 Apr 2002 17:41:49 -0000 1.7
+++ n_tty.c 30 Oct 2002 16:57:54 -0000 1.8
@@ -35,7 +35,6 @@
#include <linux/tty.h>
#include <linux/timer.h>
#include <linux/ctype.h>
-#include <linux/kd.h>
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/slab.h>
@@ -806,7 +805,7 @@
I_ICRNL(tty) || I_INLCR(tty) || L_ICANON(tty) ||
I_IXON(tty) || L_ISIG(tty) || L_ECHO(tty) ||
I_PARMRK(tty)) {
- cli();
+ local_irq_disable(); // FIXME: is this safe?
memset(tty->process_char_map, 0, 256/8);
if (I_IGNCR(tty) || I_ICRNL(tty))
@@ -842,7 +841,7 @@
set_bit(SUSP_CHAR(tty), tty->process_char_map);
}
clear_bit(__DISABLED_CHAR, tty->process_char_map);
- sti();
+ local_irq_enable(); // FIXME: is this safe?
tty->raw = 0;
tty->real_raw = 0;
} else {
|
|
From: James S. <jsi...@us...> - 2002-10-30 16:54:37
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char
In directory usw-pr-cvs1:/tmp/cvs-serv24675
Modified Files:
misc.c mem.c
Log Message:
Synced more files.
Index: misc.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/misc.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- misc.c 21 May 2002 04:06:05 -0000 1.18
+++ misc.c 30 Oct 2002 16:54:34 -0000 1.19
@@ -277,7 +277,7 @@
#ifdef CONFIG_I8K
i8k_init();
#endif
- if (devfs_register_chrdev(MISC_MAJOR,"misc",&misc_fops)) {
+ if (register_chrdev(MISC_MAJOR,"misc",&misc_fops)) {
printk("unable to get major %d for misc devices\n",
MISC_MAJOR);
return -EIO;
Index: mem.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/mem.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- mem.c 16 Apr 2002 17:41:49 -0000 1.22
+++ mem.c 30 Oct 2002 16:54:34 -0000 1.23
@@ -204,6 +204,9 @@
return 0;
}
+extern long vread(char *buf, char *addr, unsigned long count);
+extern long vwrite(char *buf, char *addr, unsigned long count);
+
/*
* This function reads the *virtual* memory as seen by the kernel.
*/
@@ -267,8 +270,6 @@
return virtr + read;
}
-extern long vwrite(char *buf, char *addr, unsigned long count);
-
/*
* This function writes to the *virtual* memory as seen by the kernel.
*/
@@ -318,7 +319,7 @@
return virtr + wrote;
}
-#if !defined(__mc68000__)
+#if defined(CONFIG_ISA) || !defined(__mc68000__)
static ssize_t read_port(struct file * file, char * buf,
size_t count, loff_t *ppos)
{
@@ -551,7 +552,7 @@
write: write_null,
};
-#if !defined(__mc68000__)
+#if defined(CONFIG_ISA) || !defined(__mc68000__)
static struct file_operations port_fops = {
llseek: memory_lseek,
read: read_port,
@@ -585,7 +586,7 @@
case 3:
filp->f_op = &null_fops;
break;
-#if !defined(__mc68000__)
+#if defined(CONFIG_ISA) || !defined(__mc68000__)
case 4:
filp->f_op = &port_fops;
break;
@@ -622,7 +623,9 @@
{1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops},
{2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops},
{3, "null", S_IRUGO | S_IWUGO, &null_fops},
+#if defined(CONFIG_ISA) || !defined(__mc68000__)
{4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops},
+#endif
{5, "zero", S_IRUGO | S_IWUGO, &zero_fops},
{7, "full", S_IRUGO | S_IWUGO, &full_fops},
{8, "random", S_IRUGO | S_IWUSR, &random_fops},
@@ -643,7 +646,7 @@
int __init chr_dev_init(void)
{
- if (devfs_register_chrdev(MEM_MAJOR,"mem",&memory_fops))
+ if (register_chrdev(MEM_MAJOR,"mem",&memory_fops))
printk("unable to get major %d for memory devs\n", MEM_MAJOR);
memory_devfs_register();
rand_initialize();
|
|
From: James S. <jsi...@us...> - 2002-10-29 18:45:23
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv14597 Modified Files: selection.h Log Message: Synced to console BK tree. Index: selection.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/selection.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- selection.h 30 Jun 2001 17:39:25 -0000 1.6 +++ selection.h 29 Oct 2002 18:45:20 -0000 1.7 @@ -11,22 +11,22 @@ extern int sel_cons; -void clear_selection(void); -int set_selection(const unsigned long arg, struct tty_struct *tty, int user); -int paste_selection(struct tty_struct *tty); -int sel_loadlut(const unsigned long arg); -int mouse_reporting(struct tty_struct *tty); -void mouse_report(struct tty_struct *tty, int butt, int mrx, int mry); +extern void clear_selection(void); +extern int set_selection(const unsigned long arg, struct tty_struct *tty, int user); +extern int paste_selection(struct tty_struct *tty); +extern int sel_loadlut(const unsigned long arg); +extern int mouse_reporting(struct vc_data *vc); +extern void mouse_report(struct vc_data *vc, int butt, int mrx, int mry); -unsigned short *screen_pos(struct vc_data *vc, int w_offset, int viewed); -u16 screen_glyph(struct vc_data *vc, int offset); -void complement_pos(struct vc_data *vc, int offset); -void invert_screen(struct vc_data *vc, int offset, int count, int shift); +extern unsigned short *screen_pos(struct vc_data *vc, int w_offset, int viewed); +extern u16 screen_glyph(struct vc_data *vc, int offset); +extern void complement_pos(struct vc_data *vc, int offset); +extern void invert_screen(struct vc_data *vc, int offset, int count, int shift); -void getconsxy(struct vc_data *vc, char *p); -void putconsxy(struct vc_data *vc, char *p); +extern void getconsxy(struct vc_data *vc, char *p); +extern void putconsxy(struct vc_data *vc, char *p); -u16 vcs_scr_readw(struct vc_data *vc, const u16 *org); -void vcs_scr_writew(struct vc_data *vc, u16 val, u16 *org); +extern u16 vcs_scr_readw(struct vc_data *vc, const u16 *org); +extern void vcs_scr_writew(struct vc_data *vc, u16 val, u16 *org); #endif |
|
From: James S. <jsi...@us...> - 2002-10-29 18:44:21
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv14215 Removed Files: keyboard.h Log Message: keyboard.h is in standard tree now. --- keyboard.h DELETED --- |
|
From: James S. <jsi...@us...> - 2002-10-29 18:43:34
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux
In directory usw-pr-cvs1:/tmp/cvs-serv13868
Modified Files:
kbd_kern.h
Log Message:
Synced to console BK tree.
Index: kbd_kern.h
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/kbd_kern.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- kbd_kern.h 20 Feb 2002 17:49:34 -0000 1.13
+++ kbd_kern.h 29 Oct 2002 18:43:31 -0000 1.14
@@ -1,6 +1,8 @@
#ifndef _KBD_KERN_H
#define _KBD_KERN_H
+#include <linux/tty.h>
+#include <linux/kd.h>
#include <linux/interrupt.h>
#include <linux/keyboard.h>
@@ -11,11 +13,15 @@
extern char *func_table[MAX_NR_FUNC];
extern char func_buf[];
extern char *funcbufptr;
-extern int funcbufsize, funcbufleft;
+extern int funcbufsize, funcbufleft;
-#define KBD_DEFMODE ((1 << VC_REPEAT) | (1 << VC_META))
-#define KBD_DEFLEDS 0
-#define KBD_DEFLOCK 0
+#define KBD_DEFMODE ((1 << VC_REPEAT) | (1 << VC_META))
+/*
+ * Some laptops take the 789uiojklm,. keys as number pad when NumLock is on.
+ * This seems a good reason to start with NumLock off.
+ */
+#define KBD_DEFLEDS 0
+#define KBD_DEFLOCK 0
/*
* kbd->xxx contains the VC-local things (flag settings etc..)
@@ -33,18 +39,18 @@
they can be associated to arbitrarily chosen keys */
#define VC_SHIFTLOCK KG_SHIFT /* shift lock mode */
#define VC_ALTGRLOCK KG_ALTGR /* altgr lock mode */
-#define VC_CTRLLOCK KG_CTRL /* control lock mode */
-#define VC_ALTLOCK KG_ALT /* alt lock mode */
+#define VC_CTRLLOCK KG_CTRL /* control lock mode */
+#define VC_ALTLOCK KG_ALT /* alt lock mode */
#define VC_SHIFTLLOCK KG_SHIFTL /* shiftl lock mode */
#define VC_SHIFTRLOCK KG_SHIFTR /* shiftr lock mode */
-#define VC_CTRLLLOCK KG_CTRLL /* ctrll lock mode */
-#define VC_CTRLRLOCK KG_CTRLR /* ctrlr lock mode */
- unsigned char slockstate; /* for `sticky' Shift, Ctrl, etc. */
+#define VC_CTRLLLOCK KG_CTRLL /* ctrll lock mode */
+#define VC_CTRLRLOCK KG_CTRLR /* ctrlr lock mode */
+ unsigned char slockstate; /* for `sticky' Shift, Ctrl, etc. */
- unsigned char ledmode:2; /* one 2-bit value */
-#define LED_SHOW_FLAGS 0 /* traditional state */
-#define LED_SHOW_IOCTL 1 /* only change leds upon ioctl */
-#define LED_SHOW_MEM 2 /* `heartbeat': peek into memory */
+ unsigned char ledmode:2; /* one 2-bit value */
+#define LED_SHOW_FLAGS 0 /* traditional state */
+#define LED_SHOW_IOCTL 1 /* only change leds upon ioctl */
+#define LED_SHOW_MEM 2 /* `heartbeat': peek into memory */
unsigned char ledflagstate:3; /* flags, not lights */
unsigned char default_ledflagstate:3;
@@ -71,75 +77,78 @@
extern unsigned char getledstate(void);
extern void setledstate(struct kbd_struct *kbd, unsigned int led);
-extern void (*kbd_ledfunc)(unsigned int led);
+extern void (*kbd_ledfunc) (unsigned int led);
static inline void set_leds(void)
{
tasklet_schedule(&keyboard_tasklet);
}
-static inline int get_kbd_mode(struct kbd_struct *kbd, int flag)
+static inline int get_kbd_mode(struct kbd_struct kbd, int flag)
{
- return ((kbd->modeflags >> flag) & 1);
+ return ((kbd.modeflags >> flag) & 1);
}
-static inline int get_kbd_led(struct kbd_struct *kbd, int flag)
+static inline int get_kbd_led(struct kbd_struct kbd, int flag)
{
- return ((kbd->ledflagstate >> flag) & 1);
+ return ((kbd.ledflagstate >> flag) & 1);
}
-static inline void set_kbd_mode(struct kbd_struct *kbd, int flag)
+static inline void set_kbd_mode(struct kbd_struct kbd, int flag)
{
- kbd->modeflags |= 1 << flag;
+ kbd.modeflags |= 1 << flag;
}
-static inline void set_kbd_led(struct kbd_struct *kbd, int flag)
+static inline void set_kbd_led(struct kbd_struct kbd, int flag)
{
- kbd->ledflagstate |= 1 << flag;
+ kbd.ledflagstate |= 1 << flag;
}
-static inline void clr_kbd_mode(struct kbd_struct *kbd, int flag)
+static inline void clr_kbd_mode(struct kbd_struct kbd, int flag)
{
- kbd->modeflags &= ~(1 << flag);
+ kbd.modeflags &= ~(1 << flag);
}
-static inline void clr_kbd_led(struct kbd_struct *kbd, int flag)
+static inline void clr_kbd_led(struct kbd_struct kbd, int flag)
{
- kbd->ledflagstate &= ~(1 << flag);
+ kbd.ledflagstate &= ~(1 << flag);
}
-static inline void chg_kbd_lock(struct kbd_struct *kbd, int flag)
+static inline void chg_kbd_lock(struct kbd_struct kbd, int flag)
{
- kbd->lockstate ^= 1 << flag;
+ kbd.lockstate ^= 1 << flag;
}
-static inline void chg_kbd_slock(struct kbd_struct *kbd, int flag)
+static inline void chg_kbd_slock(struct kbd_struct kbd, int flag)
{
- kbd->slockstate ^= 1 << flag;
+ kbd.slockstate ^= 1 << flag;
}
-static inline void chg_kbd_mode(struct kbd_struct *kbd, int flag)
+static inline void chg_kbd_mode(struct kbd_struct kbd, int flag)
{
- kbd->modeflags ^= 1 << flag;
+ kbd.modeflags ^= 1 << flag;
}
-static inline void chg_kbd_led(struct kbd_struct *kbd, int flag)
+static inline void chg_kbd_led(struct kbd_struct kbd, int flag)
{
- kbd->ledflagstate ^= 1 << flag;
+ kbd.ledflagstate ^= 1 << flag;
}
#define U(x) ((x) ^ 0xf000)
-/* defkeymap.c */
+/* keyboard.c */
+struct vc_data;
-extern unsigned int keymap_count;
+int getkeycode(struct input_handle *handle, unsigned int scancode);
+int setkeycode(struct input_handle *handle, unsigned int scancode, unsigned int keycode);
+void kd_mksound(struct input_handle *handle, unsigned int hz, unsigned int ticks);
+void kd_nosound(unsigned long private);
+int kbd_rate(struct input_handle *handle, struct kbd_repeat *rep);
+void puts_queue(struct vc_data *vc, char *cp);
+void compute_shiftstate(void);
-/* keyboard.c */
+/* defkeymap.c */
-struct console;
+extern unsigned int keymap_count;
-void compute_shiftstate(void);
-int getkeycode(struct input_handle *handle, unsigned int scancode);
-int setkeycode(struct input_handle *handle, unsigned int scancode, unsigned int
-keycode);
#endif
|
|
From: James S. <jsi...@us...> - 2002-10-29 18:40:57
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv12724 Modified Files: console.h Log Message: Synced to 2.5.44. Index: console.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/console.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- console.h 23 Feb 2002 16:44:42 -0000 1.8 +++ console.h 29 Oct 2002 18:40:53 -0000 1.9 @@ -61,9 +61,9 @@ extern struct console *console_drivers; /* VESA Blanking Levels */ -#define VESA_NO_BLANKING 0 -#define VESA_VSYNC_SUSPEND 1 -#define VESA_HSYNC_SUSPEND 2 -#define VESA_POWERDOWN 3 +#define VESA_NO_BLANKING 0 +#define VESA_VSYNC_SUSPEND 1 +#define VESA_HSYNC_SUSPEND 2 +#define VESA_POWERDOWN 3 #endif /* _LINUX_CONSOLE_H */ |
|
From: James S. <jsi...@us...> - 2002-10-29 18:37:25
|
Update of /cvsroot/linuxconsole/ruby/linux/include/asm-m68k In directory usw-pr-cvs1:/tmp/cvs-serv11419 Removed Files: machdep.h Log Message: Another file that is now standard. --- machdep.h DELETED --- |
|
From: James S. <jsi...@us...> - 2002-10-29 18:36:06
|
Update of /cvsroot/linuxconsole/ruby/linux
In directory usw-pr-cvs1:/tmp/cvs-serv10548
Modified Files:
Makefile
Log Message:
SYnced the main makefile up.
Index: Makefile
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/Makefile,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- Makefile 23 Jul 2002 19:40:31 -0000 1.68
+++ Makefile 29 Oct 2002 18:36:02 -0000 1.69
@@ -1,12 +1,12 @@
VERSION = 2
PATCHLEVEL = 5
-SUBLEVEL = 27
+SUBLEVEL = 44
EXTRAVERSION = -ruby
# *DOCUMENTATION*
-# Too see a list of typical targets execute "make help"
+# To see a list of typical targets execute "make help"
# More info can be located in ./Documentation/kbuild
-# Comments in this file is targeted only to the developer, do not
+# Comments in this file are targeted only to the developer, do not
# expect to learn how to build the kernel reading this file.
# We are using a recursive build, so we need to do a little thinking
@@ -27,17 +27,24 @@
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
+# SUBARCH tells the usermode build what the underlying arch is. That is set
+# first, and if a usermode build is happening, the "ARCH=um" on the command
+# line overrides the setting of ARCH below. If a native build is happening,
+# then ARCH is assigned, getting whatever value it gets normally, and
+# SUBARCH is subsequently ignored.
+
+SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
+ARCH := $(SUBARCH)
+
KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
+UTS_MACHINE := $(ARCH)
+
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi ; fi)
TOPDIR := $(CURDIR)
-HPATH = $(TOPDIR)/include
-FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net
-
HOSTCC = gcc
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
@@ -47,13 +54,6 @@
all: vmlinux
-# Print entire command lines instead of short version
-# For now, leave the default
-
-ifndef KBUILD_VERBOSE
- KBUILD_VERBOSE = 1
-endif
-
# Decide whether to build built-in, modular, or both.
# Normally, just do built-in.
@@ -83,7 +83,7 @@
KBUILD_MODULES := 1
endif
-export KBUILD_MODULES KBUILD_BUILTIN
+export KBUILD_MODULES KBUILD_BUILTIN KBUILD_VERBOSE
# Beautify output
# ---------------------------------------------------------------------------
@@ -100,12 +100,28 @@
# If it is set to "silent_", nothing wil be printed at all, since
# the variable $(silent_cmd_cc_o_c) doesn't exist.
+# For now, leave verbose as default
+
+ifndef KBUILD_VERBOSE
+ KBUILD_VERBOSE = 1
+endif
+
+MAKEFLAGS += --no-print-directory
+
+# For maximum performance (+ possibly random breakage, uncomment
+# the following)
+
+#MAKEFLAGS += -rR
+
# If the user wants quiet mode, echo short versions of the commands
-# only and suppress the 'Entering/Leaving directory' messages
+# only
-ifneq ($(KBUILD_VERBOSE),1)
+ifeq ($(KBUILD_VERBOSE),1)
+ quiet =
+ Q =
+else
quiet=quiet_
- MAKEFLAGS += --no-print-directory
+ Q = @
endif
# If the user is running make -s (silent mode), suppress echoing of
@@ -115,11 +131,18 @@
quiet=silent_
endif
-export quiet
+export quiet Q KBUILD_VERBOSE
-#
-# Include the make variables (CC, etc...)
-#
+# Paths to obj / src tree
+
+src := .
+obj := .
+srctree := .
+objtree := .
+
+export srctree objtree
+
+# Make variables (CC, etc...)
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
@@ -130,35 +153,33 @@
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
-MAKEFILES = $(TOPDIR)/.config
GENKSYMS = /sbin/genksyms
DEPMOD = /sbin/depmod
+KALLSYMS = /sbin/kallsyms
PERL = perl
MODFLAGS = -DMODULE
CFLAGS_MODULE = $(MODFLAGS)
AFLAGS_MODULE = $(MODFLAGS)
CFLAGS_KERNEL =
AFLAGS_KERNEL =
-EXPORT_FLAGS =
NOSTDINC_FLAGS = -nostdinc -iwithprefix include
+CPPFLAGS := -D__KERNEL__ -Iinclude
+CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+ -fomit-frame-pointer -fno-strict-aliasing -fno-common
+AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
+
export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
- CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
- CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS PERL
+ CONFIG_SHELL TOPDIR HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
+ CPP AR NM STRIP OBJCOPY OBJDUMP MAKE GENKSYMS PERL UTS_MACHINE
-export CPPFLAGS EXPORT_FLAGS NOSTDINC_FLAGS OBJCOPYFLAGS
+export CPPFLAGS NOSTDINC_FLAGS OBJCOPYFLAGS LDFLAGS
export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
-src := .
-obj := .
-srctree := $(TOPDIR)
-objtree := $(TOPDIR)
-
-export srctree objtree
-
-SUBDIRS := init kernel mm fs ipc lib drivers sound net security
-
+# The temporary file to save gcc -MD generated dependencies must not
+# contain a comma
+depfile = $(subst $(comma),_,$(@D)/.$(@F).d)
noconfig_targets := xconfig menuconfig config oldconfig randconfig \
defconfig allyesconfig allnoconfig allmodconfig \
@@ -166,8 +187,56 @@
help tags TAGS sgmldocs psdocs pdfdocs htmldocs \
checkconfig checkhelp checkincludes
+RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \) -prune -o
+RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS
+
+# Helpers built in scripts/
+# ---------------------------------------------------------------------------
+
+scripts/docproc scripts/fixdep scripts/split-include : scripts ;
+
+.PHONY: scripts
+scripts:
+ +@$(Q)$(MAKE) -f scripts/Makefile.build obj=scripts
+
+# Objects we will link into vmlinux / subdirs we need to visit
+# ---------------------------------------------------------------------------
+
+init-y := init/
+drivers-y := drivers/ sound/
+net-y := net/
+libs-y := lib/
+core-y :=
+SUBDIRS :=
+
ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
+include-config := 1
+
+-include .config
+
+endif
+
+include arch/$(ARCH)/Makefile
+
+core-y += kernel/ mm/ fs/ ipc/ security/
+
+SUBDIRS += $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
+ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
+ $(net-y) $(net-m) $(libs-y) $(libs-m)))
+
+ALL_SUBDIRS := $(SUBDIRS) $(patsubst %/,%,$(filter %/, $(init-n) $(init-) \
+ $(core-n) $(core-) $(drivers-n) $(drivers-) \
+ $(net-n) $(net-) $(libs-n) $(libs-)))
+
+init-y := $(patsubst %/, %/built-in.o, $(init-y))
+core-y := $(patsubst %/, %/built-in.o, $(core-y))
+drivers-y := $(patsubst %/, %/built-in.o, $(drivers-y))
+net-y := $(patsubst %/, %/built-in.o, $(net-y))
+libs-y := $(patsubst %/, %/lib.a, $(libs-y))
+
+ifdef include-config
+
# Here goes the main Makefile
# ===========================================================================
#
@@ -178,18 +247,26 @@
# In this section, we need .config
--include .config
-
# If .config doesn't exist - tough luck
-.config:
+.config: arch/$(ARCH)/config.in # FIXME $(shell find . -name Config.in)
@echo '***'
- @echo '*** You have not yet configured your kernel!'
- @echo '*** Please run some configurator (do "make xconfig" or'
- @echo '*** "make menuconfig" or "make oldconfig" or "make config").'
+ @if [ -f $@ ]; then \
+ echo '*** The tree was updated, so your .config may be'; \
+ echo '*** out of date!'; \
+ else \
+ echo '*** You have not yet configured your kernel!'; \
+ fi
+ @echo '***'
+ @echo '*** Please run some configurator (e.g. "make oldconfig" or'
+ @echo '*** "make menuconfig" or "make xconfig").'
@echo '***'
@exit 1
+ifdef CONFIG_MODULES
+export EXPORT_FLAGS := -DEXPORT_SYMTAB
+endif
+
#
# INSTALL_PATH specifies where to place the updated kernel and system map
# images. Uncomment if you want to place them anywhere other than root.
@@ -206,39 +283,6 @@
MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
export MODLIB
-#
-# standard CFLAGS
-#
-
-CPPFLAGS := -D__KERNEL__ -I$(HPATH)
-
-CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
- -fomit-frame-pointer -fno-strict-aliasing -fno-common
-AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
-
-ifdef CONFIG_MODULES
-EXPORT_FLAGS := -DEXPORT_SYMTAB
-endif
-
-# Link components for vmlinux
-# ---------------------------------------------------------------------------
-
-INIT := init/init.o
-CORE_FILES := kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o security/built-in.o
-LIBS := lib/lib.a
-DRIVERS := drivers/built-in.o sound/sound.o
-NETWORKS := net/network.o
-
-include arch/$(ARCH)/Makefile
-
-export NETWORKS DRIVERS LIBS HEAD LDFLAGS MAKEBOOT ASFLAGS
-
-# boot target
-# ---------------------------------------------------------------------------
-
-boot: vmlinux
- @$(MAKE) -C arch/$(ARCH)/boot
-
# Build vmlinux
# ---------------------------------------------------------------------------
@@ -249,34 +293,78 @@
# we cannot yet know if we will need to relink vmlinux.
# So we descend into init/ inside the rule for vmlinux again.
-vmlinux-objs := $(HEAD) $(INIT) $(CORE_FILES) $(LIBS) $(DRIVERS) $(NETWORKS)
+vmlinux-objs := $(HEAD) $(init-y) $(core-y) $(libs-y) $(drivers-y) $(net-y)
-quiet_cmd_link_vmlinux = LD $@
-cmd_link_vmlinux = $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $(HEAD) $(INIT) \
- --start-group \
- $(CORE_FILES) \
- $(LIBS) \
- $(DRIVERS) \
- $(NETWORKS) \
- --end-group \
- -o vmlinux
+quiet_cmd_vmlinux__ = LD $@
+define cmd_vmlinux__
+ $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) $(HEAD) $(init-y) \
+ --start-group \
+ $(core-y) \
+ $(libs-y) \
+ $(drivers-y) \
+ $(net-y) \
+ --end-group \
+ $(filter .tmp_kallsyms%,$^) \
+ -o $@
+endef
# set -e makes the rule exit immediately on error
-define rule_link_vmlinux
+define rule_vmlinux__
set -e
- echo ' Generating build number'
- . scripts/mkversion > .tmpversion
- mv -f .tmpversion .version
- +$(MAKE) -C init
- $(call cmd,link_vmlinux)
- $(cmd_link_vmlinux)
- echo 'cmd_$@ := $(cmd_link_vmlinux)' > $(@D)/.$(@F).cmd
- $(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
+ $(if $(filter .tmp_kallsyms%,$^),,
+ echo ' Generating build number'
+ . scripts/mkversion > .tmp_version
+ mv -f .tmp_version .version
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=init
+ )
+ $(call cmd,vmlinux__)
+ echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd
endef
-vmlinux: $(vmlinux-objs) FORCE
- $(call if_changed_rule,link_vmlinux)
+define rule_vmlinux
+ $(rule_vmlinux__)
+ $(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
+endef
+
+LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s
+
+# Generate section listing all symbols and add it into vmlinux
+# It's a three stage process:
+# o .tmp_vmlinux1 has all symbols and sections, but __kallsyms is
+# empty
+# Running kallsyms on that gives as .tmp_kallsyms1.o with
+# the right size
+# o .tmp_vmlinux2 now has a __kallsyms section of the right size,
+# but due to the added section, some addresses have shifted
+# From here, we generate a correct .tmp_kallsyms2.o
+# o The correct .tmp_kallsyms2.o is linked into the final vmlinux.
+
+ifdef CONFIG_KALLSYMS
+
+kallsyms.o := .tmp_kallsyms2.o
+
+quiet_cmd_kallsyms = KSYM $@
+cmd_kallsyms = $(KALLSYMS) $< > $@
+
+.tmp_kallsyms1.o: .tmp_vmlinux1
+ $(call cmd,kallsyms)
+
+.tmp_kallsyms2.o: .tmp_vmlinux2
+ $(call cmd,kallsyms)
+
+.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/vmlinux.lds.s FORCE
+ $(call if_changed_rule,vmlinux__)
+
+.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/vmlinux.lds.s FORCE
+ $(call if_changed_rule,vmlinux__)
+
+endif
+
+# Finally the vmlinux rule
+
+vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/vmlinux.lds.s FORCE
+ $(call if_changed_rule,vmlinux)
# The actual objects are generated when descending,
# make sure no implicit rule kicks in
@@ -287,7 +375,7 @@
.PHONY: $(SUBDIRS)
$(SUBDIRS): .hdepend prepare
- @$(MAKE) -C $@
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$@
# Things we need done before we descend to build or make
# module versions are listed in "prepare"
@@ -296,21 +384,31 @@
prepare: include/linux/version.h include/asm include/config/MARKER
@echo ' Starting the build. KBUILD_BUILTIN=$(KBUILD_BUILTIN) KBUILD_MODULES=$(KBUILD_MODULES)'
+# This can be used by arch/$ARCH/Makefile to preprocess
+# their vmlinux.lds.S file
+
+AFLAGS_vmlinux.lds.o += -P -C -U$(ARCH)
+
+arch/$(ARCH)/vmlinux.lds.s: %.s: %.S scripts FORCE
+ $(call if_changed_dep,as_s_S)
+
+targets += arch/$(ARCH)/vmlinux.lds.s
+
# Single targets
# ---------------------------------------------------------------------------
-%.s: %.c FORCE
- @$(MAKE) -C $(@D) $(@F)
-%.i: %.c FORCE
- @$(MAKE) -C $(@D) $(@F)
-%.o: %.c FORCE
- @$(MAKE) -C $(@D) $(@F)
-%.lst: %.c FORCE
- @$(MAKE) -C $(@D) $(@F)
-%.s: %.S FORCE
- @$(MAKE) -C $(@D) $(@F)
-%.o: %.S FORCE
- @$(MAKE) -C $(@D) $(@F)
+%.s: %.c scripts FORCE
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$(@D) $@
+%.i: %.c scripts FORCE
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$(@D) $@
+%.o: %.c scripts FORCE
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$(@D) $@
+%.lst: %.c scripts FORCE
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$(@D) $@
+%.s: %.S scripts FORCE
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$(@D) $@
+%.o: %.S scripts FORCE
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=$(@D) $@
# FIXME: The asm symlink changes when $(ARCH) changes. That's
# hard to detect, but I suppose "make mrproper" is a good idea
@@ -357,15 +455,6 @@
) > $@.tmp
@$(update-if-changed)
-# Helpers built in scripts/
-# ---------------------------------------------------------------------------
-
-scripts/fixdep scripts/split-include : scripts ;
-
-.PHONY: scripts
-scripts:
- @$(MAKE) -C scripts
-
# Generate module versions
# ---------------------------------------------------------------------------
@@ -377,33 +466,42 @@
depend dep: .hdepend
-# .hdepend is our (misnomed) marker for whether we've run
+# .hdepend is our (misnomed) marker for whether we've
# generated module versions
-.hdepend: $(if $(filter dep depend,$(MAKECMDGOALS)),FORCE)
+make-versions := $(strip $(if $(filter dep depend,$(MAKECMDGOALS)),1) \
+ $(if $(wildcard .hdepend),,1))
+
+.hdepend: prepare FORCE
+ifneq ($(make-versions),)
@$(MAKE) include/linux/modversions.h
@touch $@
+endif
ifdef CONFIG_MODVERSIONS
# Update modversions.h, but only if it would change.
-include/linux/modversions.h: scripts/fixdep prepare FORCE
+.PHONY: __rm_tmp_export-objs
+__rm_tmp_export-objs:
@rm -rf .tmp_export-objs
- @$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS))
+
+include/linux/modversions.h: $(patsubst %,_modver_%,$(SUBDIRS))
@echo -n ' Generating $@'
@( echo "#ifndef _LINUX_MODVERSIONS_H";\
echo "#define _LINUX_MODVERSIONS_H"; \
echo "#include <linux/modsetver.h>"; \
- for f in `cd .tmp_export-objs; find modules -name SCCS -prune -o -name BitKeeper -prune -o -name \*.ver -print | sort`; do \
+ cd .tmp_export-objs >/dev/null; \
+ for f in `find modules -name \*.ver -print | sort`; do \
echo "#include <linux/$${f}>"; \
done; \
echo "#endif"; \
) > $@.tmp; \
$(update-if-changed)
-$(patsubst %,_sfdep_%,$(SUBDIRS)): FORCE
- @$(MAKE) -C $(patsubst _sfdep_%, %, $@) fastdep
+.PHONY: $(patsubst %, _modver_%, $(SUBDIRS))
+$(patsubst %, _modver_%, $(SUBDIRS)): __rm_tmp_export-objs
+ $(Q)$(MAKE) -f scripts/Makefile.modver obj=$(patsubst _modver_%,%,$@)
else # !CONFIG_MODVERSIONS
@@ -421,7 +519,7 @@
# Build modules
ifdef CONFIG_MODVERSIONS
-MODFLAGS += -include $(HPATH)/linux/modversions.h
+MODFLAGS += -include include/linux/modversions.h
endif
.PHONY: modules
@@ -455,8 +553,7 @@
.PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))
$(patsubst %, _modinst_%, $(SUBDIRS)) :
- @$(MAKE) -C $(patsubst _modinst_%, %, $@) modules_install
-
+ $(Q)$(MAKE) -f scripts/Makefile.modinst obj=$(patsubst _modinst_%,%,$@)
else # CONFIG_MODULES
# Modules not configured
@@ -506,20 +603,20 @@
# will become invalid
rpm: clean spec
- find . -name SCCS -prune -o -name BitKeeper -prune -o \
+ find . $(RCS_FIND_IGNORE) \
\( -size 0 -o -name .depend -o -name .hdepend \) \
-type f -print | xargs rm -f
set -e; \
cd $(TOPDIR)/.. ; \
ln -sf $(TOPDIR) $(KERNELPATH) ; \
- tar -cvz --exclude CVS -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \
+ tar -cvz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \
rm $(KERNELPATH) ; \
cd $(TOPDIR) ; \
. scripts/mkversion > .version ; \
rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; \
rm $(TOPDIR)/../$(KERNELPATH).tar.gz
-else # ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
+else # ifdef include-config
ifeq ($(filter-out $(noconfig_targets),$(MAKECMDGOALS)),)
@@ -553,145 +650,125 @@
make_with_config
xconfig:
- @$(MAKE) -C scripts kconfig.tk
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=scripts scripts/kconfig.tk
wish -f scripts/kconfig.tk
menuconfig:
- @$(MAKE) -C scripts lxdialog
- $(CONFIG_SHELL) scripts/Menuconfig arch/$(ARCH)/config.in
+ $(Q)$(MAKE) -f scripts/Makefile.build obj=scripts lxdialog
+ $(CONFIG_SHELL) $(src)/scripts/Menuconfig arch/$(ARCH)/config.in
config:
- $(CONFIG_SHELL) scripts/Configure arch/$(ARCH)/config.in
+ $(CONFIG_SHELL) $(src)/scripts/Configure arch/$(ARCH)/config.in
oldconfig:
- $(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
+ $(CONFIG_SHELL) $(src)/scripts/Configure -d arch/$(ARCH)/config.in
randconfig:
- $(CONFIG_SHELL) scripts/Configure -r arch/$(ARCH)/config.in
+ $(CONFIG_SHELL) $(src)/scripts/Configure -r arch/$(ARCH)/config.in
allyesconfig:
- $(CONFIG_SHELL) scripts/Configure -y arch/$(ARCH)/config.in
+ $(CONFIG_SHELL) $(src)/scripts/Configure -y arch/$(ARCH)/config.in
allnoconfig:
- $(CONFIG_SHELL) scripts/Configure -n arch/$(ARCH)/config.in
+ $(CONFIG_SHELL) $(src)/scripts/Configure -n arch/$(ARCH)/config.in
allmodconfig:
- $(CONFIG_SHELL) scripts/Configure -m arch/$(ARCH)/config.in
+ $(CONFIG_SHELL) $(src)/scripts/Configure -m arch/$(ARCH)/config.in
defconfig:
- yes '' | $(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
+ yes '' | $(CONFIG_SHELL) $(src)/scripts/Configure -d arch/$(ARCH)/config.in
-# Cleaning up
-# ---------------------------------------------------------------------------
+###
+# Cleaning is done on three levels.
+# make clean Delete all automatically generated files, including
+# tools and firmware.
+# make mrproper Delete the current configuration, and related files
+# Any core files spread around is deleted as well
+# make distclean Remove editor backup files, patch leftover files and the like
-# files removed with 'make clean'
-CLEAN_FILES += \
- include/linux/compile.h \
- vmlinux System.map \
- drivers/char/consolemap_deftbl.c drivers/video/promcon_tbl.c \
- drivers/char/conmakehash \
- drivers/char/drm/*-mod.c \
- drivers/char/defkeymap.c drivers/char/qtronixmap.c \
- drivers/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist \
- drivers/zorro/devlist.h drivers/zorro/gen-devlist \
- sound/oss/bin2hex sound/oss/hex2hex \
- drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} \
- drivers/scsi/aic7xxx/aic7xxx_seq.h \
- drivers/scsi/aic7xxx/aic7xxx_reg.h \
- drivers/scsi/aic7xxx/aicasm/aicasm_gram.c \
- drivers/scsi/aic7xxx/aicasm/aicasm_scan.c \
- drivers/scsi/aic7xxx/aicasm/y.tab.h \
- drivers/scsi/aic7xxx/aicasm/aicasm \
- drivers/scsi/53c700_d.h drivers/scsi/sim710_d.h \
- drivers/scsi/53c7xx_d.h drivers/scsi/53c7xx_u.h \
- drivers/scsi/53c8xx_d.h drivers/scsi/53c8xx_u.h \
- net/802/cl2llc.c net/802/transit/pdutr.h net/802/transit/timertr.h \
- net/802/pseudo/pseudocode.h \
- net/khttpd/make_times_h net/khttpd/times.h \
- submenu*
+# Files removed with 'make clean'
+CLEAN_FILES += vmlinux System.map MC*
-# files removed with 'make mrproper'
+# Files removed with 'make mrproper'
MRPROPER_FILES += \
include/linux/autoconf.h include/linux/version.h \
- drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h \
- drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h \
- drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h \
- drivers/net/hamradio/soundmodem/gentbl \
- sound/oss/*_boot.h sound/oss/.*.boot \
- sound/oss/msndinit.c \
- sound/oss/msndperm.c \
- sound/oss/pndsperm.c \
- sound/oss/pndspini.c \
- drivers/atm/fore200e_*_fw.c drivers/atm/.fore200e_*.fw \
- .version .config* config.in config.old \
- scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp \
- scripts/lxdialog/*.o scripts/lxdialog/lxdialog \
+ .version .config .config.old config.in config.old \
.menuconfig.log \
include/asm \
- .hdepend scripts/split-include scripts/docproc \
- scripts/fixdep $(TOPDIR)/include/linux/modversions.h \
+ .hdepend include/linux/modversions.h \
tags TAGS kernel.spec \
- .tmpversion
+ .tmp*
-# directories removed with 'make mrproper'
+# Directories removed with 'make mrproper'
MRPROPER_DIRS += \
.tmp_export-objs \
include/config \
- $(TOPDIR)/include/linux/modules
-
-# That's our way to know about arch specific cleanup.
+ include/linux/modules
-include arch/$(ARCH)/Makefile
+# clean - Delete all intermediate files
+#
+clean-dirs += $(ALL_SUBDIRS) Documentation/DocBook scripts
-clean: archclean
- @echo 'Cleaning up'
- @find . -name SCCS -prune -o -name BitKeeper -prune -o \
- \( -name \*.[oas] -o -name core -o -name .\*.cmd -o \
- -name .\*.tmp -o -name .\*.d \) -type f -print \
- | grep -v lxdialog/ | xargs rm -f
- @rm -f $(CLEAN_FILES)
- @$(MAKE) -C Documentation/DocBook clean
+$(addprefix _clean_,$(clean-dirs)):
+ $(Q)$(MAKE) -f scripts/Makefile.clean obj=$(patsubst _clean_%,%,$@)
-mrproper: clean archmrproper
- @echo 'Making mrproper'
- @find . -name SCCS -prune -o -name BitKeeper -prune -o \
- \( -name .depend -o -name .\*.cmd \) \
- -type f -print | xargs rm -f
- @rm -f $(MRPROPER_FILES)
- @rm -rf $(MRPROPER_DIRS)
- @$(MAKE) -C Documentation/DocBook mrproper
+quiet_cmd_rmclean = RM $$(CLEAN_FILES)
+cmd_rmclean = rm -f $(CLEAN_FILES)
+clean: archclean $(addprefix _clean_,$(clean-dirs))
+ $(call cmd,rmclean)
+ @find . $(RCS_FIND_IGNORE) \
+ \( -name '*.[oas]' -o -name '.*.cmd' -o -name '.*.d' \
+ -o -name '.*.tmp' \) -type f -print | xargs rm -f
-distclean: mrproper
- @echo 'Making distclean'
- @find . -name SCCS -prune -o -name BitKeeper -prune -o \
- \( -not -type d \) -and \
+# mrproper - delete configuration + modules + core files
+#
+quiet_cmd_mrproper = RM $$(MRPROPER_DIRS) + $$(MRPROPER_FILES)
+cmd_mrproper = rm -rf $(MRPROPER_DIRS) && rm -f $(MRPROPER_FILES)
+mrproper distclean: clean archmrproper
+ @echo ' Making $@ in the srctree'
+ @find . $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
- -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f \
- -print | xargs rm -f
+ -o -name '.*.rej' -o -size 0 \
+ -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
+ -type f -print | xargs rm -f
+ $(call cmd,mrproper)
# Generate tags for editors
# ---------------------------------------------------------------------------
-TAGS: FORCE
- { find include/asm-${ARCH} -name SCCS -prune -o -name BitKeeper -prune \
- -o -name '*.h' -print ; \
- find include -name SCCS -prune -o -name BitKeeper -prune -o \
- -type d \( -name "asm-*" -o -name config \) -prune -o \
- -name '*.h' -print ; \
- find $(SUBDIRS) init arch/${ARCH} \
- -name SCCS -prune -o -name BitKeeper -prune -o \
- -name '*.[chS]' -print ; } | grep -v SCCS | etags -
+define all-sources
+ ( find . $(RCS_FIND_IGNORE) \
+ \( -name include -o -name arch \) -prune -o \
+ -name '*.[chS]' -print; \
+ find arch/$(ARCH) $(RCS_FIND_IGNORE) \
+ -name '*.[chS]' -print; \
+ find include $(RCS_FIND_IGNORE) \
+ \( -name config -o -name 'asm-*' \) -prune \
+ -o -name '*.[chS]' -print; \
+ find include/asm-$(ARCH) $(RCS_FIND_IGNORE) \
+ -name '*.[chS]' -print; \
+ find include/asm-generic $(RCS_FIND_IGNORE) \
+ -name '*.[chS]' -print )
+endef
+
+quiet_cmd_TAGS = MAKE $@
+cmd_TAGS = $(all-sources) | etags -
# Exuberant ctags works better with -I
-tags: FORCE
+
+quiet_cmd_tags = MAKE $@
+define cmd_tags
+ rm -f $@; \
CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \
- ctags $$CTAGSF `find include/asm-$(ARCH) -name SCCS -prune -o -name BitKeeper -prune -o -name '*.h' -print` && \
- find include -name SCCS -prune -o -name BitKeeper -prune -o \
- -type d \( -name "asm-*" -o -name config \) -prune -o \
- -name '*.h' -print | xargs ctags $$CTAGSF -a && \
- find $(SUBDIRS) init -name SCCS -prune -o -name BitKeeper -prune -o \
- -name '*.[ch]' -print | xargs ctags $$CTAGSF -a
+ $(all-sources) | xargs ctags $$CTAGSF -a
+endef
+
+TAGS: FORCE
+ $(call cmd,TAGS)
+
+tags: FORCE
+ $(call cmd,tags)
# Brief documentation of the typical targets used
# ---------------------------------------------------------------------------
@@ -732,26 +809,24 @@
# Documentation targets
# ---------------------------------------------------------------------------
-
-sgmldocs psdocs pdfdocs htmldocs:
- @$(MAKE) -C Documentation/DocBook $@
-
+sgmldocs psdocs pdfdocs htmldocs: scripts
+ $(Q)$(MAKE) -f Documentation/DocBook/Makefile $@
# Scripts to check various things for consistency
# ---------------------------------------------------------------------------
checkconfig:
- find * -name SCCS -prune -o -name BitKeeper -prune -o \
+ find * $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort \
| xargs $(PERL) -w scripts/checkconfig.pl
checkhelp:
- find * -name SCCS -prune -o -name BitKeeper -prune -o \
+ find * $(RCS_FIND_IGNORE) \
-name [cC]onfig.in -print | sort \
| xargs $(PERL) -w scripts/checkhelp.pl
checkincludes:
- find * -name SCCS -prune -o -name BitKeeper -prune -o \
+ find * $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort \
| xargs $(PERL) -w scripts/checkincludes.pl
@@ -765,18 +840,39 @@
$(MAKE) $@
endif # ifeq ($(filter-out $(noconfig_targets),$(MAKECMDGOALS)),)
-endif # ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
+endif # ifdef include-config
# FIXME Should go into a make.lib or something
# ===========================================================================
+a_flags = -Wp,-MD,$(depfile) $(AFLAGS) $(NOSTDINC_FLAGS) \
+ $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(*F).o)
+
+quiet_cmd_as_s_S = CPP $@
+cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
+
# read all saved command lines
-cmd_files := $(wildcard .*.cmd)
+targets := $(wildcard $(sort $(targets)))
+cmd_files := $(wildcard .*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
+
ifneq ($(cmd_files),)
include $(cmd_files)
endif
+# execute the command and also postprocess generated .d dependencies
+# file
+
+if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
+ $(filter-out $(cmd_$(1)),$(cmd_$@))\
+ $(filter-out $(cmd_$@),$(cmd_$(1)))),\
+ @set -e; \
+ $(if $($(quiet)cmd_$(1)),echo ' $($(quiet)cmd_$(1))';) \
+ $(cmd_$(1)); \
+ scripts/fixdep $(depfile) $@ '$(cmd_$(1))' > $(@D)/.$(@F).tmp; \
+ rm -f $(depfile); \
+ mv -f $(@D)/.$(@F).tmp $(@D)/.$(@F).cmd)
+
# Usage: $(call if_changed_rule,foo)
# will check if $(cmd_foo) changed, or any of the prequisites changed,
# and if so will execute $(rule_foo)
@@ -799,6 +895,9 @@
mv -f $@.tmp $@; \
fi
endef
+# $(call descend,<dir>,<target>)
+# Recursively call a sub-make in <dir> with target <target>
+descend = $(Q)$(MAKE) -f scripts/Makefile.build obj=$(1) $(2)
FORCE:
|
|
From: James S. <jsi...@us...> - 2002-10-29 18:35:12
|
Update of /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook
In directory usw-pr-cvs1:/tmp/cvs-serv10263
Modified Files:
kernel-api.tmpl
Removed Files:
Makefile
Log Message:
Synced to latest BK tree.
Index: kernel-api.tmpl
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook/kernel-api.tmpl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- kernel-api.tmpl 23 Jul 2002 19:18:46 -0000 1.10
+++ kernel-api.tmpl 29 Oct 2002 18:35:09 -0000 1.11
@@ -50,7 +50,7 @@
kernel/sched.c has no docs, which stuffs up the sgml. Comment
out until somebody adds docs. KAO
<sect1><title>Delaying, scheduling, and timer routines</title>
-!Ekernel/sched.c
+X!Ekernel/sched.c
</sect1>
KAO -->
</chapter>
@@ -161,7 +161,7 @@
</sect1>
<sect1><title>MTRR Handling</title>
-!Earch/i386/kernel/mtrr.c
+!Earch/i386/kernel/cpu/mtrr/main.c
</sect1>
<sect1><title>PCI Support Library</title>
!Edrivers/pci/pci.c
@@ -185,6 +185,11 @@
!Efs/devfs/base.c
</chapter>
+ <chapter id="security">
+ <title>Security Framework</title>
+!Esecurity/security.c
+ </chapter>
+
<chapter id="pmfuncs">
<title>Power Management</title>
!Ekernel/pm.c
@@ -299,13 +304,16 @@
EHCI, OHCI, or UHCI.
</para>
!Edrivers/usb/core/hcd.c
+!Edrivers/usb/core/hcd-pci.c
+!Edrivers/usb/core/buffer.c
</sect1>
</chapter>
<chapter id="uart16x50">
<title>16x50 UART Driver</title>
-!Edrivers/char/serial.c
+!Edrivers/serial/core.c
+!Edrivers/serial/8250.c
</chapter>
<chapter id="z85230">
@@ -357,7 +365,7 @@
!Edrivers/video/fbmem.c
</sect1>
<sect1><title>Frame Buffer Console</title>
-!Edrivers/video/fbcon.c
+!Edrivers/video/console/fbcon.c
</sect1>
<sect1><title>Frame Buffer Colormap</title>
!Edrivers/video/fbcmap.c
@@ -366,7 +374,7 @@
drivers/video/fbgen.c has no docs, which stuffs up the sgml. Comment
out until somebody adds docs. KAO
<sect1><title>Frame Buffer Generic Functions</title>
-!Idrivers/video/fbgen.c
+X!Idrivers/video/fbgen.c
</sect1>
KAO -->
<sect1><title>Frame Buffer Video Mode Database</title>
@@ -377,8 +385,12 @@
!Idrivers/video/macmodes.c
</sect1>
<sect1><title>Frame Buffer Fonts</title>
-!Idrivers/video/fonts/fbcon_fonts.c
+!Idrivers/video/console/fonts.c
</sect1>
</chapter>
-
+<!-- Needs ksyms to list additional exported symbols, but no specific doc.
+ docproc do not care about sgml commants.
+!Dkernel/ksyms.c
+!Dnet/netsyms.c
+-->
</book>
--- Makefile DELETED ---
|
|
From: James S. <jsi...@us...> - 2002-10-29 18:32:04
|
Update of /cvsroot/linuxconsole/ruby/linux/lib In directory usw-pr-cvs1:/tmp/cvs-serv9210 Removed Files: bust_spinlocks.c Log Message: Use standard tree code. --- bust_spinlocks.c DELETED --- |
|
From: James S. <jsi...@us...> - 2002-10-29 18:27:47
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/input/mouse In directory usw-pr-cvs1:/tmp/cvs-serv7494 Removed Files: amimouse.c Log Message: In standard tree. --- amimouse.c DELETED --- |
|
From: James S. <jsi...@us...> - 2002-10-29 18:24:38
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers In directory usw-pr-cvs1:/tmp/cvs-serv6170 Modified Files: Makefile Log Message: Synced with fbdev BK tree. Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/Makefile,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- Makefile 22 Jun 2002 17:50:58 -0000 1.36 +++ Makefile 29 Oct 2002 18:24:35 -0000 1.37 @@ -1,43 +1,96 @@ -# -# Makefile for the Linux kernel device drivers. -# -# 15 Sep 2000, Christoph Hellwig <hc...@in...> +# Makefile for the Linux video drivers. +# 5 Aug 1999, James Simmons, <mailto:jsi...@us...> # Rewritten to use lists instead of if-statements. -# -obj-$(CONFIG_PCI) += pci/ -obj-$(CONFIG_ACPI) += acpi/ -obj-$(CONFIG_PARPORT) += parport/ -obj-y += base/ char/ block/ misc/ net/ media/ -obj-$(CONFIG_NUBUS) += nubus/ -obj-$(CONFIG_ATM) += atm/ -obj-$(CONFIG_IDE) += ide/ -obj-$(CONFIG_FC4) += fc4/ -obj-$(CONFIG_SCSI) += scsi/ -obj-$(CONFIG_FUSION) += message/ -obj-$(CONFIG_IEEE1394) += ieee1394/ -obj-y += cdrom/ video/ serial/ -obj-$(CONFIG_MTD) += mtd/ -obj-$(CONFIG_PCMCIA) += pcmcia/ -obj-$(CONFIG_DIO) += dio/ -obj-$(CONFIG_SBUS) += sbus/ -obj-$(CONFIG_ZORRO) += zorro/ -obj-$(CONFIG_ALL_PPC) += macintosh/ -obj-$(CONFIG_MAC) += macintosh/ -obj-$(CONFIG_PNP) += pnp/ -obj-$(CONFIG_SGI) += sgi/ -obj-$(CONFIG_PARIDE) += block/paride/ -obj-$(CONFIG_TC) += tc/ -obj-$(CONFIG_USB) += usb/ -obj-$(CONFIG_INPUT) += input/ -obj-$(CONFIG_GAMEPORT) += input/gameport/ -obj-$(CONFIG_SERIO) += input/serio/ -obj-$(CONFIG_I2O) += message/ -obj-$(CONFIG_I2C) += i2c/ -obj-$(CONFIG_PHONE) += telephony/ -obj-$(CONFIG_MD) += md/ -obj-$(CONFIG_BLUEZ) += bluetooth/ -obj-$(CONFIG_HOTPLUG_PCI) += hotplug/ -obj-$(CONFIG_ISDN_BOOL) += isdn/ +# All of the (potential) objects that export symbols. +# This list comes from 'grep -l EXPORT_SYMBOL *.[hc]'. + +export-objs := fbmem.o fbcmap.o fbgen.o fbmon.o modedb.o cyber2000fb.o + +# Each configuration option enables a list of files. + +obj-$(CONFIG_AGP) += agp/ +obj-$(CONFIG_DRM) += drm/ +obj-$(CONFIG_VT) += console/ + +# Add fbmon.o back into obj-$(CONFIG_FB) in 2.5.x +obj-$(CONFIG_FB) += fbmem.o fbcmap.o modedb.o fbgen.o +# Only include macmodes.o if we have FB support and are PPC +ifeq ($(CONFIG_FB),y) +obj-$(CONFIG_PPC) += macmodes.o +endif + +obj-$(CONFIG_FB_ACORN) += acornfb.o +obj-$(CONFIG_FB_AMIGA) += amifb.o +obj-$(CONFIG_FB_PM2) += pm2fb.o +obj-$(CONFIG_FB_PM3) += pm3fb.o +obj-$(CONFIG_FB_APOLLO) += dnfb.o cfbfillrect.o cfbimgblt.o +obj-$(CONFIG_FB_Q40) += q40fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_ATARI) += atafb.o +obj-$(CONFIG_FB_ATY128) += aty128fb.o +obj-$(CONFIG_FB_RADEON) += radeonfb.o +obj-$(CONFIG_FB_NEOMAGIC) += neofb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_IGA) += igafb.o +obj-$(CONFIG_FB_CONTROL) += controlfb.o +obj-$(CONFIG_FB_PLATINUM) += platinumfb.o +obj-$(CONFIG_FB_VALKYRIE) += valkyriefb.o +obj-$(CONFIG_FB_CT65550) += chipsfb.o +obj-$(CONFIG_FB_ANAKIN) += anakinfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_CYBER) += cyberfb.o +obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o +obj-$(CONFIG_FB_SGIVW) += sgivwfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_3DFX) += tdfxfb.o +obj-$(CONFIG_FB_MAC) += macfb.o macmodes.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_HP300) += hpfb.o cfbfillrect.o cfbimgblt.o +obj-$(CONFIG_FB_OF) += offb.o cfbfillrect.o cfbimgblit.o cfbcopyarea.o +obj-$(CONFIG_FB_IMSTT) += imsttfb.o +obj-$(CONFIG_FB_RETINAZ3) += retz3fb.o +obj-$(CONFIG_FB_CLGEN) += clgenfb.o +obj-$(CONFIG_FB_TRIDENT) += tridentfb.o +obj-$(CONFIG_FB_S3TRIO) += S3triofb.o +obj-$(CONFIG_FB_TGA) += tgafb.o +obj-$(CONFIG_FB_VESA) += vesafb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_VGA16) += vga16fb.o fbcon-vga-planes.o +obj-$(CONFIG_FB_VIRGE) += virgefb.o +obj-$(CONFIG_FB_G364) += g364fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_FM2) += fm2fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_CREATOR) += creatorfb.o sbusfb.o +obj-$(CONFIG_FB_CGSIX) += cgsixfb.o sbusfb.o +obj-$(CONFIG_FB_BWTWO) += bwtwofb.o sbusfb.o +obj-$(CONFIG_FB_CGTHREE) += cgthreefb.o sbusfb.o +obj-$(CONFIG_FB_TCX) += tcxfb.o sbusfb.o +obj-$(CONFIG_FB_CGFOURTEEN) += cgfourteenfb.o sbusfb.o +obj-$(CONFIG_FB_P9100) += p9100fb.o sbusfb.o +obj-$(CONFIG_FB_LEO) += leofb.o sbusfb.o +obj-$(CONFIG_FB_STI) += stifb.o console/sticore.o +obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_MAXINE) += maxinefb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_TX3912) += tx3912fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o + +obj-$(CONFIG_FB_MATROX) += matrox/ +obj-$(CONFIG_FB_RIVA) += riva/ +obj-$(CONFIG_FB_SIS) += sis/ +obj-$(CONFIG_FB_ATY) += aty/ cfbimgblt.o + +obj-$(CONFIG_FB_SUN3) += sun3fb.o +obj-$(CONFIG_FB_BWTWO) += bwtwofb.o +obj-$(CONFIG_FB_HGA) += hgafb.o +obj-$(CONFIG_FB_SA1100) += sa1100fb.o +obj-$(CONFIG_FB_VIRTUAL) += vfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_HIT) += hitfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_E1355) += epson1355fb.o +obj-$(CONFIG_FB_PVR2) += pvr2fb.o +obj-$(CONFIG_FB_VOODOO1) += sstfb.o + +# Files generated that shall be removed upon make clean +clean-files := promcon_tbl.c include $(TOPDIR)/Rules.make + +$(obj)/promcon_tbl.c: $(src)/prom.uni + $(objtree)/scripts/conmakehash $< | \ + sed -e '/#include <[^>]*>/p' -e 's/types/init/' \ + -e 's/dfont\(_uni.*\]\)/promfont\1 __initdata/' > $@ + |