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/' > $@ + |