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: Aivils S. <ai...@us...> - 2004-06-17 10:45:04
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292/ruby-2.6/drivers/video Modified Files: fbmem.c Log Message: sync to 2.6.7 Index: fbmem.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/fbmem.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- fbmem.c 25 May 2004 05:26:48 -0000 1.7 +++ fbmem.c 17 Jun 2004 10:44:53 -0000 1.8 @@ -114,6 +114,8 @@ extern int chips_init(void); extern int g364fb_init(void); extern int sa1100fb_init(void); +extern int pxafb_init(void); +extern int pxafb_setup(char*); extern int fm2fb_init(void); extern int fm2fb_setup(char*); extern int q40fb_init(void); @@ -121,6 +123,8 @@ extern int sun3fb_setup(char *); extern int sgivwfb_init(void); extern int sgivwfb_setup(char*); +extern int gbefb_init(void); +extern int gbefb_setup(char*); extern int rivafb_init(void); extern int rivafb_setup(char*); extern int tdfxfb_init(void); @@ -164,6 +168,8 @@ extern int leo_setup(char*); extern int kyrofb_init(void); extern int kyrofb_setup(char*); +extern int mc68x328fb_init(void); +extern int mc68x328fb_setup(char *); static struct { const char *name; @@ -305,6 +311,9 @@ #ifdef CONFIG_FB_SGIVW { "sgivwfb", sgivwfb_init, sgivwfb_setup }, #endif +#ifdef CONFIG_FB_GBE + { "gbefb", gbefb_init, gbefb_setup }, +#endif #ifdef CONFIG_FB_ACORN { "acornfb", acornfb_init, acornfb_setup }, #endif @@ -338,6 +347,9 @@ #ifdef CONFIG_FB_SA1100 { "sa1100fb", sa1100fb_init, NULL }, #endif +#ifdef CONFIG_FB_PXA + { "pxafb", pxafb_init, pxafb_setup }, +#endif #ifdef CONFIG_FB_SUN3 { "sun3fb", sun3fb_init, sun3fb_setup }, #endif @@ -380,6 +392,9 @@ /* Not a real frame buffer device... */ { "resolverfb", NULL, resolver_video_setup }, #endif +#ifdef CONFIG_FB_68328 + { "68328fb", mc68x328fb_init, mc68x328fb_setup }, +#endif #ifdef CONFIG_FB_VIRTUAL /* @@ -408,12 +423,13 @@ /* * Drawing helpers. */ -u8 sys_inbuf(struct fb_info *info, u8 *src) -{ +static u8 fb_sys_inbuf(struct fb_info *info, u8 *src) +{ return *src; } -void sys_outbuf(struct fb_info *info, u8 *dst, u8 *src, unsigned int size) +static void fb_sys_outbuf(struct fb_info *info, u8 *dst, + u8 *src, unsigned int size) { memcpy(dst, src, size); } @@ -911,7 +927,7 @@ return -ENOMEM; } - if (copy_from_user(&cursor.image.data, sprite->image.data, size) || + if (copy_from_user(cursor.image.data, sprite->image.data, size) || copy_from_user(cursor.mask, sprite->mask, size)) { kfree(cursor.image.data); kfree(cursor.mask); @@ -1010,8 +1026,11 @@ vc = vt->default_mode; vc->vc_cols = info->var.xres/vc->vc_font.width; vc->vc_rows = info->var.yres/vc->vc_font.height; - for(i = 0; i < vt->vc_count; i++) + for(i = 0; i < vt->vc_count; i++) { + acquire_console_sem(); vc_resize(vt->vc_cons[i], vc->vc_cols, vc->vc_rows); + release_console_sem(); + } return 0; } @@ -1194,8 +1213,7 @@ if (boot_cpu_data.x86 > 3) pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; #elif defined(__mips__) - pgprot_val(vma->vm_page_prot) &= ~_CACHE_MASK; - pgprot_val(vma->vm_page_prot) |= _CACHE_UNCACHED; + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); #elif defined(__hppa__) pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; #elif defined(__ia64__) || defined(__arm__) || defined(__sh__) @@ -1302,14 +1320,15 @@ fb_info->pixmap.size = FBPIXMAPSIZE; fb_info->pixmap.buf_align = 1; fb_info->pixmap.scan_align = 1; + fb_info->pixmap.access_align = 4; fb_info->pixmap.flags = FB_PIXMAP_DEFAULT; } } fb_info->pixmap.offset = 0; if (fb_info->pixmap.outbuf == NULL) - fb_info->pixmap.outbuf = sys_outbuf; + fb_info->pixmap.outbuf = fb_sys_outbuf; if (fb_info->pixmap.inbuf == NULL) - fb_info->pixmap.inbuf = sys_inbuf; + fb_info->pixmap.inbuf = fb_sys_inbuf; if (fb_info->sprite.addr == NULL) { fb_info->sprite.addr = kmalloc(FBPIXMAPSIZE, GFP_KERNEL); @@ -1317,14 +1336,15 @@ fb_info->sprite.size = FBPIXMAPSIZE; fb_info->sprite.buf_align = 1; fb_info->sprite.scan_align = 1; + fb_info->sprite.access_align = 4; fb_info->sprite.flags = FB_PIXMAP_DEFAULT; } } fb_info->sprite.offset = 0; if (fb_info->sprite.outbuf == NULL) - fb_info->sprite.outbuf = sys_outbuf; + fb_info->sprite.outbuf = fb_sys_outbuf; if (fb_info->sprite.inbuf == NULL) - fb_info->sprite.inbuf = sys_inbuf; + fb_info->sprite.inbuf = fb_sys_inbuf; registered_fb[i] = fb_info; |
From: Aivils S. <ai...@us...> - 2004-06-17 10:45:03
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292/ruby-2.6/drivers/pci Modified Files: proc.c Log Message: sync to 2.6.7 Index: proc.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci/proc.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- proc.c 25 May 2004 05:26:48 -0000 1.5 +++ proc.c 17 Jun 2004 10:44:52 -0000 1.6 @@ -97,7 +97,7 @@ if ((pos & 3) && cnt > 2) { unsigned short val; pci_read_config_word(dev, pos, &val); - __put_user(cpu_to_le16(val), (unsigned short *) buf); + __put_user(cpu_to_le16(val), (unsigned short __user *) buf); buf += 2; pos += 2; cnt -= 2; @@ -106,7 +106,7 @@ while (cnt >= 4) { unsigned int val; pci_read_config_dword(dev, pos, &val); - __put_user(cpu_to_le32(val), (unsigned int *) buf); + __put_user(cpu_to_le32(val), (unsigned int __user *) buf); buf += 4; pos += 4; cnt -= 4; @@ -115,7 +115,7 @@ if (cnt >= 2) { unsigned short val; pci_read_config_word(dev, pos, &val); - __put_user(cpu_to_le16(val), (unsigned short *) buf); + __put_user(cpu_to_le16(val), (unsigned short __user *) buf); buf += 2; pos += 2; cnt -= 2; @@ -172,7 +172,7 @@ if ((pos & 3) && cnt > 2) { unsigned short val; - __get_user(val, (unsigned short *) buf); + __get_user(val, (unsigned short __user *) buf); pci_write_config_word(dev, pos, le16_to_cpu(val)); buf += 2; pos += 2; @@ -181,7 +181,7 @@ while (cnt >= 4) { unsigned int val; - __get_user(val, (unsigned int *) buf); + __get_user(val, (unsigned int __user *) buf); pci_write_config_dword(dev, pos, le32_to_cpu(val)); buf += 4; pos += 4; @@ -190,7 +190,7 @@ if (cnt >= 2) { unsigned short val; - __get_user(val, (unsigned short *) buf); + __get_user(val, (unsigned short __user *) buf); pci_write_config_word(dev, pos, le16_to_cpu(val)); buf += 2; pos += 2; |
From: Aivils S. <ai...@us...> - 2004-06-17 10:45:03
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/fs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292/ruby-2.6/fs Modified Files: compat_ioctl.c Log Message: sync to 2.6.7 Index: compat_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/fs/compat_ioctl.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- compat_ioctl.c 31 May 2004 09:46:54 -0000 1.10 +++ compat_ioctl.c 17 Jun 2004 10:44:53 -0000 1.11 @@ -20,6 +20,7 @@ #include <linux/smp_lock.h> #include <linux/ioctl.h> #include <linux/if.h> +#include <linux/if_bridge.h> #include <linux/slab.h> #include <linux/hdreg.h> #include <linux/raid/md.h> @@ -134,7 +135,7 @@ set_fs (KERNEL_DS); err = sys_ioctl(fd, cmd, (unsigned long)&val); set_fs (old_fs); [...1355 lines suppressed...] HANDLE_IOCTL(SIOCGIWNICKN, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWENCODE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWENCODE, do_wireless_ioctl) -HANDLE_IOCTL(SIOCSIFBR, do_bridge_ioctl) -HANDLE_IOCTL(SIOCGIFBR, do_bridge_ioctl) +HANDLE_IOCTL(SIOCSIFBR, old_bridge_ioctl) +HANDLE_IOCTL(SIOCGIFBR, old_bridge_ioctl) + +#if defined(CONFIG_NCP_FS) || defined(CONFIG_NCP_FS_MODULE) +HANDLE_IOCTL(NCP_IOC_NCPREQUEST_32, do_ncp_ncprequest) +HANDLE_IOCTL(NCP_IOC_GETMOUNTUID2_32, do_ncp_getmountuid2) +HANDLE_IOCTL(NCP_IOC_GET_FS_INFO_V2_32, do_ncp_getfsinfo2) +HANDLE_IOCTL(NCP_IOC_GETOBJECTNAME_32, do_ncp_getobjectname) +HANDLE_IOCTL(NCP_IOC_SETOBJECTNAME_32, do_ncp_setobjectname) +HANDLE_IOCTL(NCP_IOC_GETPRIVATEDATA_32, do_ncp_getprivatedata) +HANDLE_IOCTL(NCP_IOC_SETPRIVATEDATA_32, do_ncp_setprivatedata) +#endif #undef DECLARES #endif |
From: Aivils S. <ai...@us...> - 2004-06-17 10:45:03
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292/ruby-2.6 Modified Files: Makefile Log Message: sync to 2.6.7 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/Makefile,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile 25 May 2004 05:26:47 -0000 1.9 +++ Makefile 17 Jun 2004 10:44:52 -0000 1.10 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 6 -SUBLEVEL = 6 +SUBLEVEL = 7 EXTRAVERSION = -ruby NAME=Zonked Quokka @@ -110,7 +110,7 @@ $(filter-out _all,$(MAKECMDGOALS)) _all: $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \ KBUILD_SRC=$(CURDIR) KBUILD_VERBOSE=$(KBUILD_VERBOSE) \ - KBUILD_CHECK=$(KBUILD_CHECK) KBUILD_EXTMOD=$(KBUILD_EXTMOD) \ + KBUILD_CHECK=$(KBUILD_CHECK) KBUILD_EXTMOD="$(KBUILD_EXTMOD)" \ -f $(CURDIR)/Makefile $@ # Leave processing to above invocation of make @@ -325,7 +325,7 @@ # When compiling out-of-tree modules, put MODVERDIR in the module # tree rather than in the kernel tree. The kernel tree might # even be read-only. -export MODVERDIR := $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/).tmp_versions +export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_versions # The temporary file to save gcc -MD generated dependencies must not # contain a comma @@ -567,7 +567,7 @@ kallsyms.o := .tmp_kallsyms2.o quiet_cmd_kallsyms = KSYM $@ -cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) > $@ +cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) $(foreach x,$(CONFIG_KALLSYMS_ALL),--all-symbols) > $@ .tmp_kallsyms1.o .tmp_kallsyms2.o: %.o: %.S scripts FORCE $(call if_changed_dep,as_o_S) @@ -680,7 +680,7 @@ uts_len := 64 define filechk_version.h - if ((`echo -n "$(KERNELRELEASE)" | wc -c ` > $(uts_len))); then \ + if [ `echo -n "$(KERNELRELEASE)" | wc -c ` -gt $(uts_len) ]; then \ echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \ exit 1; \ fi; \ @@ -904,6 +904,7 @@ @echo ' rpm - Build a kernel as an RPM package' @echo ' tags/TAGS - Generate tags file for editors' @echo ' cscope - Generate cscope index' + @echo ' checkstack - Generate a list of stack hogs' @echo '' @echo 'Documentation targets:' @$(MAKE) -f $(srctree)/Documentation/DocBook/Makefile dochelp @@ -952,15 +953,15 @@ # We are always building modules KBUILD_MODULES := 1 .PHONY: crmodverdir -crmodverdir: FORCE +crmodverdir: $(Q)mkdir -p $(MODVERDIR) -.PHONY: $(KBUILD_EXTMOD) -$(KBUILD_EXTMOD): crmodverdir FORCE - $(Q)$(MAKE) $(build)=$@ +module-dirs := $(addprefix _module_,$(KBUILD_EXTMOD)) +.PHONY: $(module-dirs) modules +$(module-dirs): crmodverdir + $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@) -.PHONY: modules -modules: $(KBUILD_EXTMOD) +modules: $(module-dirs) @echo ' Building modules, stage 2.'; $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost @@ -968,7 +969,7 @@ modules_install: $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modinst -clean-dirs := _clean_$(KBUILD_EXTMOD) +clean-dirs := $(addprefix _clean_,$(KBUILD_EXTMOD)) .PHONY: $(clean-dirs) clean $(clean-dirs): @@ -1001,6 +1002,8 @@ -name '*.[chS]' -print; \ find arch/$(ARCH) $(RCS_FIND_IGNORE) \ -name '*.[chS]' -print; \ + find security/selinux/include $(RCS_FIND_IGNORE) \ + -name '*.[chS]' -print; \ find include $(RCS_FIND_IGNORE) \ \( -name config -o -name 'asm-*' \) -prune \ -o -name '*.[chS]' -print; \ @@ -1057,9 +1060,18 @@ -name '*.[hcS]' -type f -print | sort \ | xargs $(PERL) -w scripts/checkversion.pl +buildcheck: + $(PERL) scripts/reference_discarded.pl + $(PERL) scripts/reference_init.pl + endif #ifeq ($(config-targets),1) endif #ifeq ($(mixed-targets),1) +.PHONY: checkstack +checkstack: + $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \ + $(PERL) scripts/checkstack.pl $(ARCH) + # FIXME Should go into a make.lib or something # =========================================================================== |
From: Aivils S. <ai...@us...> - 2004-06-17 10:45:03
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292/ruby-2.6/drivers/input Modified Files: input.c Log Message: sync to 2.6.7 Index: input.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/input/input.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- input.c 23 Apr 2004 07:36:55 -0000 1.5 +++ input.c 17 Jun 2004 10:44:52 -0000 1.6 @@ -106,7 +106,7 @@ } break; - + case EV_ABS: if (code > ABS_MAX || !test_bit(code, dev->absbit)) @@ -144,27 +144,27 @@ if (code > MSC_MAX || !test_bit(code, dev->mscbit)) return; - if (dev->event) dev->event(dev, type, code, value); - + if (dev->event) dev->event(dev, type, code, value); + break; case EV_LED: - + if (code > LED_MAX || !test_bit(code, dev->ledbit) || !!test_bit(code, dev->led) == value) return; change_bit(code, dev->led); - if (dev->event) dev->event(dev, type, code, value); - + if (dev->event) dev->event(dev, type, code, value); + break; case EV_SND: - + if (code > SND_MAX || !test_bit(code, dev->sndbit)) return; - if (dev->event) dev->event(dev, type, code, value); - + if (dev->event) dev->event(dev, type, code, value); + break; case EV_REP: @@ -181,7 +181,7 @@ break; } - if (type != EV_SYN) + if (type != EV_SYN) dev->sync = 0; if (dev->grab) @@ -282,11 +282,11 @@ if (id->flags & INPUT_DEVICE_ID_MATCH_VENDOR) if (id->id.vendor != dev->id.vendor) continue; - + if (id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT) if (id->id.product != dev->id.product) continue; - + if (id->flags & INPUT_DEVICE_ID_MATCH_VERSION) if (id->id.version != dev->id.version) continue; @@ -351,11 +351,11 @@ } if (in_interrupt()) { printk(KERN_ERR "input.c: calling hotplug from interrupt\n"); - return; + return; } if (!current->fs->root) { printk(KERN_WARNING "input.c: calling hotplug without valid filesystem\n"); - return; + return; } if (!(envp = (char **) kmalloc(20 * sizeof(char *), GFP_KERNEL))) { printk(KERN_ERR "input.c: not enough memory allocating hotplug environment\n"); @@ -381,17 +381,17 @@ envp[i++] = scratch; scratch += sprintf(scratch, "PRODUCT=%x/%x/%x/%x", - dev->id.bustype, dev->id.vendor, dev->id.product, dev->id.version) + 1; - + dev->id.bustype, dev->id.vendor, dev->id.product, dev->id.version) + 1; + if (dev->name) { envp[i++] = scratch; - scratch += sprintf(scratch, "NAME=%s", dev->name) + 1; + scratch += sprintf(scratch, "NAME=%s", dev->name) + 1; } if (dev->phys) { envp[i++] = scratch; - scratch += sprintf(scratch, "PHYS=%s", dev->phys) + 1; - } + scratch += sprintf(scratch, "PHYS=%s", dev->phys) + 1; + } SPRINTF_BIT_A(evbit, "EV=", EV_MAX); SPRINTF_BIT_A2(keybit, "KEY=", KEY_MAX, EV_KEY); @@ -447,10 +447,10 @@ list_add_tail(&dev->node, &input_dev_list); list_for_each_entry(handler, &input_handler_list, node) - if (!handler->blacklist || !input_match_device(handler->blacklist, dev)) - if ((id = input_match_device(handler->id_table, dev))) - if ((handle = handler->connect(handler, dev, id))) - input_link_handle(handle); + if (!handler->blacklist || !input_match_device(handler->blacklist, dev)) + if ((id = input_match_device(handler->id_table, dev))) + if ((handle = handler->connect(handler, dev, id))) + input_link_handle(handle); #ifdef CONFIG_HOTPLUG input_call_hotplug("add", dev); @@ -506,12 +506,12 @@ input_table[handler->minor >> 5] = handler; list_add_tail(&handler->node, &input_handler_list); - + list_for_each_entry(dev, &input_dev_list, node) - if (!handler->blacklist || !input_match_device(handler->blacklist, dev)) - if ((id = input_match_device(handler->id_table, dev))) - if ((handle = handler->connect(handler, dev, id))) - input_link_handle(handle); + if (!handler->blacklist || !input_match_device(handler->blacklist, dev)) + if ((id = input_match_device(handler->id_table, dev))) + if ((handle = handler->connect(handler, dev, id))) + input_link_handle(handle); #ifdef CONFIG_PROC_FS input_devices_state++; @@ -719,17 +719,17 @@ struct input_handle *input_find_handle(char *phys_descr) { - struct input_dev *dev; - struct input_handle *handle; + struct input_dev *dev; + struct input_handle *handle; - list_for_each_entry(dev, &input_dev_list, node) { - list_for_each_entry(handle, &dev->h_list, d_node) { - if(!strcmp(handle->name,"kbd") && !strcmp(phys_descr,dev->phys) ) - return handle; - } - } - printk(KERN_WARNING "input: no matching device for \"%s\"\n", phys_descr); - return NULL; + list_for_each_entry(dev, &input_dev_list, node) { + list_for_each_entry(handle, &dev->h_list, d_node) { + if(!strcmp(handle->name,"kbd") && !strcmp(phys_descr,dev->phys) ) + return handle; + } + } + printk(KERN_WARNING "input: no matching device for \"%s\"\n", phys_descr); + return NULL; } #else /* !CONFIG_PROC_FS */ |
From: Aivils S. <ai...@us...> - 2004-06-17 10:45:03
|
Update of /cvsroot/linuxconsole/ruby In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292 Added Files: AGAINST-2.6.7 Removed Files: AGAINST-2.6.6 Log Message: sync to 2.6.7 --- NEW FILE: AGAINST-2.6.7 --- --- AGAINST-2.6.6 DELETED --- |
From: Aivils S. <ai...@us...> - 2004-06-17 10:45:02
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/arch/i386/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30292/ruby-2.6/arch/i386/kernel Modified Files: setup.c Log Message: sync to 2.6.7 Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/arch/i386/kernel/setup.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- setup.c 25 May 2004 05:26:47 -0000 1.9 +++ setup.c 17 Jun 2004 10:44:52 -0000 1.10 @@ -65,6 +65,7 @@ #ifdef CONFIG_EFI int efi_enabled = 0; +EXPORT_SYMBOL(efi_enabled); #endif /* cpu data as detected by the assembly code in head.S */ |
From: Aivils S. <ai...@us...> - 2004-06-11 11:09:37
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24656/ruby-2.6/drivers/video/console Modified Files: vgacon.c Log Message: vga clean up kernel self-unpacker boottime messages Index: vgacon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console/vgacon.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- vgacon.c 23 Apr 2004 07:36:56 -0000 1.4 +++ vgacon.c 11 Jun 2004 11:09:24 -0000 1.5 @@ -985,17 +985,6 @@ static void vgacon_save_screen(struct vc_data *c) { - static int vga_bootup_console = 0; - - if (!vga_bootup_console) { - /* This is a gross hack, but here is the only place we can - * set bootup console parameters without messing up generic - * console initialization routines. - */ - vga_bootup_console = 1; - c->vc_x = ORIG_X; - c->vc_y = ORIG_Y; - } if (!vga_is_gfx) scr_memcpyw((u16 *) c->vc_screenbuf, (u16 *) c->vc_origin, c->vc_screenbuf_size); |
From: Aivils S. <ai...@us...> - 2004-05-31 09:47:06
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/fs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28602/ruby-2.6/fs Modified Files: compat_ioctl.c Log Message: missing semicolon Index: compat_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/fs/compat_ioctl.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- compat_ioctl.c 25 May 2004 05:26:48 -0000 1.9 +++ compat_ioctl.c 31 May 2004 09:46:54 -0000 1.10 @@ -1719,7 +1719,8 @@ switch (cmd) { case PIO_UNIMAP: if (!perm) return -EPERM; - return con_set_unimap(vc, tmp.entry_ct, compat_ptr(tmp.entries)) case GIO_UNIMAP: + return con_set_unimap(vc, tmp.entry_ct, compat_ptr(tmp.entries)); + case GIO_UNIMAP: return con_get_unimap(vc, tmp.entry_ct, &(user_ud->entry_ct), compat_ptr(tmp.entries)); } return 0; |
From: Aivils S. <ai...@us...> - 2004-05-25 05:27:00
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/drivers/video/console Modified Files: fbcon.c Log Message: sync to 2.6.6 Index: fbcon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console/fbcon.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- fbcon.c 23 Apr 2004 07:36:56 -0000 1.8 +++ fbcon.c 25 May 2004 05:26:48 -0000 1.9 @@ -290,9 +290,10 @@ * Maps a virtual console @unit to a frame buffer device * @newidx. */ -int set_con2fb_map(int vt_num, int newidx) +int set_con2fb_map(int vc_num, int newidx) { /*FIXME*/ + con2fb_map[vc_num] = newidx; return 0; } |
From: Aivils S. <ai...@us...> - 2004-05-25 05:27:00
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/drivers/char Modified Files: Kconfig selection.c tty_io.c vc_screen.c vt.c vt_ioctl.c Log Message: sync to 2.6.6 Index: Kconfig =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/Kconfig,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Kconfig 23 Apr 2004 07:36:55 -0000 1.7 +++ Kconfig 25 May 2004 05:26:48 -0000 1.8 @@ -7,7 +7,7 @@ config VT bool "Virtual terminal" if EMBEDDED select INPUT - default y + default y if !VIOCONS ---help--- If you say Y here, you will get support for terminal devices with display and keyboard devices. These are called "virtual" because you @@ -117,7 +117,7 @@ config CYCLADES tristate "Cyclades async mux support" - depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP + depends on SERIAL_NONSTANDARD ---help--- This is a driver for a card that gives you many serial ports. You would need something like this to connect more than two modems to @@ -312,7 +312,7 @@ help This is a driver for the Specialix RIO, a smart serial card which drives an outboard box that can support up to 128 ports. Product - information is at <http://www.sphinxcst.co.uk/perle/multi.htm>. + information is at <http://www.perle.com/support/documentation.html#multiport>. There are both ISA and PCI versions. config RIO_OLDPCI @@ -422,7 +422,7 @@ Say Y here to support smart-card reader 0 (SCR0) on the Integrated Technology Express, Inc. ITE8172 SBC. Vendor page at <http://www.ite.com.tw/ia/brief_it8172bsp.htm>; picture of the - board at <http://www.mvista.com/allies/semiconductor/ite.html>. + board at <http://www.mvista.com/partners/semiconductor/ite.html>. config IT8172_SCR1 bool "Enable Smart Card Reader 1 Support " @@ -431,7 +431,7 @@ Say Y here to support smart-card reader 1 (SCR1) on the Integrated Technology Express, Inc. ITE8172 SBC. Vendor page at <http://www.ite.com.tw/ia/brief_it8172bsp.htm>; picture of the - board at <http://www.mvista.com/allies/semiconductor/ite.html>. + board at <http://www.mvista.com/partners/semiconductor/ite.html>. config A2232 tristate "Commodore A2232 serial support (EXPERIMENTAL)" @@ -775,7 +775,7 @@ config GEN_RTC tristate "Generic /dev/rtc emulation" - depends on RTC!=y + depends on RTC!=y && !IA64 ---help--- If you say Y here and create a character special file /dev/rtc with major number 10 and minor number 135 using mknod ("man mknod"), you Index: selection.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/selection.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- selection.c 20 Feb 2004 06:52:18 -0000 1.3 +++ selection.c 25 May 2004 05:26:48 -0000 1.4 @@ -12,6 +12,7 @@ */ #include <linux/module.h> +#include <linux/console.h> #include <linux/tty.h> #include <linux/sched.h> #include <linux/mm.h> Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/tty_io.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- tty_io.c 23 Apr 2004 07:36:55 -0000 1.9 +++ tty_io.c 25 May 2004 05:26:48 -0000 1.10 @@ -81,6 +81,7 @@ #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,7 +96,9 @@ #include <asm/system.h> #include <asm/bitops.h> +#include <linux/kbd_kern.h> #include <linux/vt_kern.h> +#include <linux/selection.h> #include <linux/devfs_fs_kernel.h> #include <linux/kmod.h> @@ -119,6 +122,9 @@ LIST_HEAD(tty_drivers); /* linked list of tty drivers */ struct tty_ldisc ldiscs[NR_LDISCS]; /* line disc dispatch table */ +/* Semaphore to protect creating and releasing a tty */ +DECLARE_MUTEX(tty_sem); + #ifdef CONFIG_UNIX98_PTYS extern struct tty_driver *ptm_driver; /* Unix98 pty masters; for /dev/ptmx */ extern int pty_limit; /* Config limit on Unix98 ptys */ @@ -138,6 +144,8 @@ unsigned int cmd, unsigned long arg); static int tty_fasync(int fd, struct file * filp, int on); extern void rs_360_init(void); +static void release_mem(struct tty_struct *tty, int idx); + static struct tty_struct *alloc_tty_struct(void) { @@ -313,7 +321,7 @@ */ int tty_check_change(struct tty_struct * tty) { - if (current->tty != tty) + if (current->signal->tty != tty) return 0; if (tty->pgrp <= 0) { printk(KERN_WARNING "tty_check_change: tty->pgrp <= 0!\n"); @@ -478,17 +486,14 @@ if (tty->session > 0) { struct list_head *l; for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) { - task_t *task = p; - do { - if (task->tty == tty) - task->tty = NULL; - if (task->leader) { - send_group_sig_info(SIGHUP, SEND_SIG_PRIV, task); - send_group_sig_info(SIGCONT, SEND_SIG_PRIV, task); - } - } while_each_thread(p, task); + if (p->signal->tty == tty) + p->signal->tty = NULL; + if (!p->signal->leader) + continue; + send_group_sig_info(SIGHUP, SEND_SIG_PRIV, p); + send_group_sig_info(SIGCONT, SEND_SIG_PRIV, p); if (tty->pgrp > 0) - p->tty_old_pgrp = tty->pgrp; + p->signal->tty_old_pgrp = tty->pgrp; } } read_unlock(&tasklist_lock); @@ -567,15 +572,15 @@ lock_kernel(); - tty = current->tty; + tty = current->signal->tty; if (tty) { tty_pgrp = tty->pgrp; if (on_exit && tty->driver->type != TTY_DRIVER_TYPE_PTY) tty_vhangup(tty); } else { - if (current->tty_old_pgrp) { - kill_pg(current->tty_old_pgrp, SIGHUP, on_exit); - kill_pg(current->tty_old_pgrp, SIGCONT, on_exit); + if (current->signal->tty_old_pgrp) { + kill_pg(current->signal->tty_old_pgrp, SIGHUP, on_exit); + kill_pg(current->signal->tty_old_pgrp, SIGCONT, on_exit); } unlock_kernel(); return; @@ -586,17 +591,13 @@ kill_pg(tty_pgrp, SIGCONT, on_exit); } - current->tty_old_pgrp = 0; + current->signal->tty_old_pgrp = 0; tty->session = 0; tty->pgrp = -1; read_lock(&tasklist_lock); - for_each_task_pid(current->session, PIDTYPE_SID, p, l, pid) { - task_t *task = p; - do { - task->tty = NULL; - } while_each_thread(p, task); - } + for_each_task_pid(current->signal->session, PIDTYPE_SID, p, l, pid) + p->signal->tty = NULL; read_unlock(&tasklist_lock); unlock_kernel(); } @@ -762,21 +763,6 @@ return tty_write(file, buf, count, ppos); } -/* Semaphore to protect creating and releasing a tty */ -static DECLARE_MUTEX(tty_sem); - -static void down_tty_sem(int index) -{ - down(&tty_sem); -} - -static void up_tty_sem(int index) -{ - up(&tty_sem); -} - -static void release_mem(struct tty_struct *tty, int idx); - static inline void tty_line_name(struct tty_driver *driver, int index, char *p) { sprintf(p, "%s%d", driver->name, index + driver->name_base); @@ -800,7 +786,7 @@ * Check whether we need to acquire the tty semaphore to avoid * race conditions. For now, play it safe. */ - down_tty_sem(idx); + down(&tty_sem); /* check whether we're reopening an existing tty */ if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { @@ -984,7 +970,7 @@ /* All paths come through here to release the semaphore */ end_init: - up_tty_sem(idx); + up(&tty_sem); return retval; /* Release locally allocated memory ... nothing placed in slots */ @@ -1264,20 +1250,11 @@ struct pid *pid; read_lock(&tasklist_lock); - for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) { - task_t *task = p; - do { - task->tty = NULL; - } while_each_thread(p, task); - } - if (o_tty) { - for_each_task_pid(o_tty->session, PIDTYPE_SID, p,l, pid) { - task_t *task = p; - do { - task->tty = NULL; - } while_each_thread(p, task); - } - } + for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) + p->signal->tty = NULL; + if (o_tty) + for_each_task_pid(o_tty->session, PIDTYPE_SID, p,l, pid) + p->signal->tty = NULL; read_unlock(&tasklist_lock); } @@ -1348,10 +1325,10 @@ retry_open: noctty = filp->f_flags & O_NOCTTY; if (device == MKDEV(TTYAUX_MAJOR,0)) { - if (!current->tty) + if (!current->signal->tty) return -ENXIO; - driver = current->tty->driver; - index = current->tty->index; + driver = current->signal->tty->driver; + index = current->signal->tty->index; filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */ /* noctty = 1; */ goto got_driver; @@ -1362,11 +1339,11 @@ extern struct tty_driver *console_driver; driver = console_driver; - if (current->tty && + if (current->signal->tty && filp->f_op->write == redirected_tty_write && - current->tty->index > 0 && - current->tty->index < MAX_NR_CONSOLES) - vc = (struct vc_data *)current->tty->driver_data; + current->signal->tty->index > 0 && + current->signal->tty->index < MAX_NR_CONSOLES) + vc = current->signal->tty->driver_data; if (vc) index = vc->display_fg->fg_console->vc_num; else @@ -1461,14 +1438,14 @@ goto retry_open; } if (!noctty && - current->leader && - !current->tty && + current->signal->leader && + !current->signal->tty && tty->session == 0) { task_lock(current); - current->tty = tty; + current->signal->tty = tty; task_unlock(current); - current->tty_old_pgrp = 0; - tty->session = current->session; + current->signal->tty_old_pgrp = 0; + tty->session = current->signal->session; tty->pgrp = process_group(current); } return 0; @@ -1526,7 +1503,7 @@ { char ch, mbz = 0; - if ((current->tty != tty) && !capable(CAP_SYS_ADMIN)) + if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN)) return -EPERM; if (get_user(ch, arg)) return -EFAULT; @@ -1619,14 +1596,14 @@ struct pid *pid; task_t *p; - if (current->leader && - (current->session == tty->session)) + if (current->signal->leader && + (current->signal->session == tty->session)) return 0; /* * The process must be a session leader and * not have a controlling tty already. */ - if (!current->leader || current->tty) + if (!current->signal->leader || current->signal->tty) return -EPERM; if (tty->session > 0) { /* @@ -1639,21 +1616,17 @@ */ read_lock(&tasklist_lock); - for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) { - task_t *task = p; - do { - task->tty = NULL; - } while_each_thread(p, task); - } + for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) + p->signal->tty = NULL; read_unlock(&tasklist_lock); } else return -EPERM; } task_lock(current); - current->tty = tty; + current->signal->tty = tty; task_unlock(current); - current->tty_old_pgrp = 0; - tty->session = current->session; + current->signal->tty_old_pgrp = 0; + tty->session = current->signal->session; tty->pgrp = process_group(current); return 0; } @@ -1664,7 +1637,7 @@ * (tty == real_tty) is a cheap way of * testing if the tty is NOT a master pty. */ - if (tty == real_tty && current->tty != real_tty) + if (tty == real_tty && current->signal->tty != real_tty) return -ENOTTY; return put_user(real_tty->pgrp, arg); } @@ -1678,15 +1651,15 @@ return -ENOTTY; if (retval) return retval; - if (!current->tty || - (current->tty != real_tty) || - (real_tty->session != current->session)) + if (!current->signal->tty || + (current->signal->tty != real_tty) || + (real_tty->session != current->signal->session)) return -ENOTTY; if (get_user(pgrp, (pid_t *) arg)) return -EFAULT; if (pgrp < 0) return -EINVAL; - if (session_of_pgrp(pgrp) != current->session) + if (session_of_pgrp(pgrp) != current->signal->session) return -EPERM; real_tty->pgrp = pgrp; return 0; @@ -1698,7 +1671,7 @@ * (tty == real_tty) is a cheap way of * testing if the tty is NOT a master pty. */ - if (tty == real_tty && current->tty != real_tty) + if (tty == real_tty && current->signal->tty != real_tty) return -ENOTTY; if (real_tty->session <= 0) return -ENOTTY; @@ -1856,12 +1829,12 @@ clear_bit(TTY_EXCLUSIVE, &tty->flags); return 0; case TIOCNOTTY: - if (current->tty != tty) + if (current->signal->tty != tty) return -ENOTTY; - if (current->leader) + if (current->signal->leader) disassociate_ctty(0); task_lock(current); - current->tty = NULL; + current->signal->tty = NULL; task_unlock(current); return 0; case TIOCSCTTY: @@ -1965,9 +1938,9 @@ tty->driver->flush_buffer(tty); read_lock(&tasklist_lock); for_each_task_pid(session, PIDTYPE_SID, p, l, pid) { - if (p->tty == tty || session > 0) { + if (p->signal->tty == tty || session > 0) { printk(KERN_NOTICE "SAK: killed process %d" - " (%s): p->session==tty->session\n", + " (%s): p->signal->session==tty->session\n", p->pid, p->comm); send_sig(SIGKILL, p, 1); continue; Index: vc_screen.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vc_screen.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- vc_screen.c 20 Feb 2004 06:52:18 -0000 1.4 +++ vc_screen.c 25 May 2004 05:26:48 -0000 1.5 @@ -35,6 +35,7 @@ #include <linux/selection.h> #include <linux/console.h> #include <linux/smp_lock.h> +#include <linux/device.h> #include <asm/uaccess.h> #include <asm/byteorder.h> #include <asm/unaligned.h> @@ -507,6 +508,8 @@ .open = vcs_open, }; +static struct class_simple *vc_class; + void vcs_make_devfs(struct tty_struct *tty) { devfs_mk_cdev(MKDEV(VCS_MAJOR, tty->index + 1), @@ -515,19 +518,26 @@ devfs_mk_cdev(MKDEV(VCS_MAJOR, tty->index + 129), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/a%u", tty->index + 1); + class_simple_device_add(vc_class, MKDEV(VCS_MAJOR, tty->index + 1), NULL, "vcs%u", tty->index + 1); + class_simple_device_add(vc_class, MKDEV(VCS_MAJOR, tty->index + 129), NULL, "vcsa%u", tty->index + 1); } void vcs_remove_devfs(struct tty_struct *tty) { devfs_remove("vcc/%u", tty->index + 1); devfs_remove("vcc/a%u", tty->index + 1); + class_simple_device_remove(MKDEV(VCS_MAJOR, tty->index + 1)); + class_simple_device_remove(MKDEV(VCS_MAJOR, tty->index + 129)); } int __init vcs_init(void) { if (register_chrdev(VCS_MAJOR, "vcs", &vcs_fops)) panic("unable to get major %d for vcs device", VCS_MAJOR); + vc_class = class_simple_create(THIS_MODULE, "vc"); devfs_mk_cdev(MKDEV(VCS_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/0"); devfs_mk_cdev(MKDEV(VCS_MAJOR, 128), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/a0"); + class_simple_device_add(vc_class, MKDEV(VCS_MAJOR, 0), NULL, "vcs"); + class_simple_device_add(vc_class, MKDEV(VCS_MAJOR, 128), NULL, "vcsa"); return 0; } Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vt.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- vt.c 23 Apr 2004 07:36:55 -0000 1.18 +++ vt.c 25 May 2004 05:26:48 -0000 1.19 @@ -1208,7 +1208,7 @@ #define CON_BUF_SIZE PAGE_SIZE DECLARE_MUTEX(con_buf_sem); -static int do_con_write(struct tty_struct * tty, int from_user, +static int do_con_write(struct tty_struct *tty, int from_user, const unsigned char *buf, int count) { #ifdef VT_BUF_VRAM_ONLY @@ -1219,7 +1219,7 @@ draw_x = -1; \ } #endif - struct vc_data *vc = (struct vc_data *)tty->driver_data; + struct vc_data *vc = tty->driver_data; unsigned long draw_from = 0, draw_to = 0; const unsigned char *orig_buf = NULL; int c, tc, ok, n = 0, draw_x = -1; @@ -1404,13 +1404,13 @@ } /* - * /dev/ttyN handling + * /dev/ttyN handling */ /* Allocate the console screen memory. */ -static int vt_open(struct tty_struct *tty, struct file * filp) +static int vt_open(struct tty_struct *tty, struct file *filp) { - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = tty->driver_data; unsigned int index = tty->index; if (!vc) { @@ -1445,7 +1445,7 @@ return; } - vc = (struct vc_data *)tty->driver_data; + vc = tty->driver_data; if (vc) { vcs_remove_devfs(tty); vc->vc_tty = NULL; @@ -1457,7 +1457,7 @@ static int vt_write(struct tty_struct * tty, int from_user, const unsigned char *buf, int count) { - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = tty->driver_data; int retval; pm_access(vc->display_fg->pm_con); @@ -1469,10 +1469,10 @@ static void vt_put_char(struct tty_struct *tty, unsigned char ch) { - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = tty->driver_data; if (in_interrupt()) - return; /* n_r3964 calls put_char() from interrupt context */ + return; /* n_r3964 calls put_char() from interrupt context */ pm_access(vc->display_fg->pm_con); do_con_write(tty, 0, &ch, 1); } @@ -1486,7 +1486,7 @@ static void vt_flush_chars(struct tty_struct *tty) { - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = tty->driver_data; if (in_interrupt()) /* from flush_to_ldisc */ return; @@ -1516,7 +1516,7 @@ if (!tty) return; - vc = (struct vc_data *)tty->driver_data; + vc = tty->driver_data; if (!vc) return; set_kbd_led(&vc->kbd_table, VC_SCROLLOCK); @@ -1532,7 +1532,7 @@ if (!tty) return; - vc = (struct vc_data *)tty->driver_data; + vc = tty->driver_data; if (!vc) return; @@ -1551,7 +1551,7 @@ static void vt_unthrottle(struct tty_struct *tty) { - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = tty->driver_data; wake_up_interruptible(&vc->paste_wait); } @@ -1564,7 +1564,7 @@ * The console must be locked when we get here. */ -void vt_console_print(struct console *co, const char * b, unsigned count) +void vt_console_print(struct console *co, const char *b, unsigned count) { struct vc_data *vc = find_vc(kmsg_redirect); static unsigned long printing; @@ -1682,13 +1682,13 @@ int tioclinux(struct tty_struct *tty, unsigned long arg) { - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = tty->driver_data; char type, data; int lines, ret; if (tty->driver->type != TTY_DRIVER_TYPE_CONSOLE) return -EINVAL; - if (current->tty != tty && !capable(CAP_SYS_ADMIN)) + if (current->signal->tty != tty && !capable(CAP_SYS_ADMIN)) return -EPERM; if (get_user(type, (char *)arg)) return -EFAULT; @@ -1872,6 +1872,8 @@ if (list_empty(&vt_list)) return -ENXIO; + vcs_init(); + console_driver = alloc_tty_driver(MAX_NR_CONSOLES); if (!console_driver) panic("Couldn't allocate VT console driver\n"); @@ -1900,7 +1902,6 @@ #endif kbd_init(); console_map_init(); - vcs_init(); return 0; } Index: vt_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vt_ioctl.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- vt_ioctl.c 20 Feb 2004 06:52:18 -0000 1.6 +++ vt_ioctl.c 25 May 2004 05:26:48 -0000 1.7 @@ -701,7 +701,7 @@ * to be the owner of the tty, or have CAP_SYS_TTY_CONFIG. */ perm = 0; - if (current->tty == tty || capable(CAP_SYS_TTY_CONFIG)) + if (current->signal->tty == tty || capable(CAP_SYS_TTY_CONFIG)) perm = 1; switch (cmd) { @@ -1360,4 +1360,3 @@ return -ENOIOCTLCMD; } } - |
From: Aivils S. <ai...@us...> - 2004-05-25 05:27:00
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/drivers/video Modified Files: fbmem.c Log Message: sync to 2.6.6 Index: fbmem.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/fbmem.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- fbmem.c 23 Apr 2004 07:36:56 -0000 1.6 +++ fbmem.c 25 May 2004 05:26:48 -0000 1.7 @@ -31,6 +31,9 @@ #include <linux/kmod.h> #endif #include <linux/devfs_fs_kernel.h> +#include <linux/err.h> +#include <linux/kernel.h> +#include <linux/device.h> #if defined(__mc68000__) || defined(CONFIG_APUS) #include <asm/setup.h> @@ -1054,7 +1057,7 @@ case FBIOGETCMAP: if (copy_from_user(&cmap, (void *) arg, sizeof(cmap))) return -EFAULT; - return (fb_copy_cmap(&info->cmap, &cmap, 0)); + return (fb_copy_cmap(&info->cmap, &cmap, 2)); case FBIOPAN_DISPLAY: if (copy_from_user(&var, (void *) arg, sizeof(var))) return -EFAULT; @@ -1261,6 +1264,8 @@ #endif }; +static struct class_simple *fb_class; + /** * register_framebuffer - registers a frame buffer device * @fb_info: frame buffer info structure @@ -1275,6 +1280,7 @@ register_framebuffer(struct fb_info *fb_info) { int i; + struct class_device *c; if (num_registered_fb == FB_MAX) return -ENXIO; @@ -1284,6 +1290,12 @@ break; fb_info->node = i; + c = class_simple_device_add(fb_class, MKDEV(FB_MAJOR, i), NULL, "fb%d", i); + if (IS_ERR(c)) { + /* Not fatal */ + printk(KERN_WARNING "Unable to create class_device for framebuffer %d; errno = %ld\n", i, PTR_ERR(c)); + } + if (fb_info->pixmap.addr == NULL) { fb_info->pixmap.addr = kmalloc(FBPIXMAPSIZE, GFP_KERNEL); if (fb_info->pixmap.addr) { @@ -1350,6 +1362,7 @@ kfree(fb_info->sprite.addr); registered_fb[i]=NULL; num_registered_fb--; + class_simple_device_remove(MKDEV(FB_MAJOR, i)); return 0; } @@ -1411,6 +1424,12 @@ if (register_chrdev(FB_MAJOR,"fb",&fb_fops)) printk("unable to get major %d for fb devs\n", FB_MAJOR); + fb_class = class_simple_create(THIS_MODULE, "graphics"); + if (IS_ERR(fb_class)) { + printk(KERN_WARNING "Unable to create fb class; errno = %ld\n", PTR_ERR(fb_class)); + fb_class = NULL; + } + #ifdef CONFIG_FB_OF if (ofonly) { offb_init(); |
From: Aivils S. <ai...@us...> - 2004-05-25 05:27:00
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/arch/i386/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/arch/i386/kernel Modified Files: setup.c Log Message: sync to 2.6.6 Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/arch/i386/kernel/setup.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- setup.c 23 Apr 2004 07:36:55 -0000 1.8 +++ setup.c 25 May 2004 05:26:47 -0000 1.9 @@ -47,8 +47,8 @@ #include <asm/sections.h> #include <asm/io_apic.h> #include <asm/ist.h> +#include <asm/std_resources.h> #include "setup_arch_pre.h" -#include "mach_resources.h" /* This value is set up by the early boot code to point to the value immediately after the boot time page tables. It contains a *physical* @@ -135,19 +135,6 @@ static struct resource code_resource = { "Kernel code", 0x100000, 0 }; static struct resource data_resource = { "Kernel data", 0, 0 }; -static void __init probe_roms(void) -{ - int roms = 1; - - request_resource(&iomem_resource, rom_resources+0); - - /* Video ROM is standard at C000:0000 - C7FF:0000, check signature */ - probe_video_rom(roms); - - /* Extension roms */ - probe_extension_roms(roms); -} - static void __init limit_regions(unsigned long long size) { unsigned long long current_addr = 0; @@ -596,9 +583,13 @@ disable_acpi(); acpi_ht = 1; } - - /* "pci=noacpi" disables ACPI interrupt routing */ + + /* "pci=noacpi" disable ACPI IRQ routing and PCI scan */ else if (!memcmp(from, "pci=noacpi", 10)) { + acpi_disable_pci(); + } + /* "acpi=noirq" disables ACPI interrupt routing */ + else if (!memcmp(from, "acpi=noirq", 10)) { acpi_noirq_set(); } @@ -614,6 +605,11 @@ else if (!memcmp(from, "acpi_sci=low", 12)) acpi_sci_flags.polarity = 3; +#ifdef CONFIG_X86_IO_APIC + else if (!memcmp(from, "acpi_skip_timer_override", 24)) + acpi_skip_timer_override = 1; +#endif + #ifdef CONFIG_X86_LOCAL_APIC /* disable IO-APIC */ else if (!memcmp(from, "noapic", 6)) @@ -951,19 +947,17 @@ static void __init register_memory(unsigned long max_low_pfn) { unsigned long low_mem_size; - int i; if (efi_enabled) efi_initialize_iomem_resources(&code_resource, &data_resource); else legacy_init_iomem_resources(&code_resource, &data_resource); - /* EFI systems may still have VGA */ + /* EFI systems may still have VGA */ request_graphics_resource(); /* request I/O space for devices used on all i[345]86 PCs */ - for (i = 0; i < STANDARD_IO_RESOURCES; i++) - request_resource(&ioport_resource, standard_io_resources+i); + request_standard_io_resources(); /* Tell the PCI layer not to allocate too close to the RAM area.. */ low_mem_size = ((max_low_pfn << PAGE_SHIFT) + 0xfffff) & ~0xfffff; |
From: Aivils S. <ai...@us...> - 2004-05-25 05:26:59
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/include/linux Modified Files: tty.h Log Message: sync to 2.6.6 Index: tty.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/include/linux/tty.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- tty.h 23 Apr 2004 07:36:56 -0000 1.4 +++ tty.h 25 May 2004 05:26:49 -0000 1.5 @@ -351,6 +351,9 @@ extern int tty_get_baud_rate(struct tty_struct *tty); extern int tty_termios_baud_rate(struct termios *termios); +struct semaphore; +extern struct semaphore tty_sem; + /* n_tty.c */ extern struct tty_ldisc tty_ldisc_N_TTY; |
From: Aivils S. <ai...@us...> - 2004-05-25 05:26:59
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/fs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/fs Modified Files: compat_ioctl.c Log Message: sync to 2.6.6 Index: compat_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/fs/compat_ioctl.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- compat_ioctl.c 23 Apr 2004 07:36:56 -0000 1.8 +++ compat_ioctl.c 25 May 2004 05:26:48 -0000 1.9 @@ -70,8 +70,10 @@ #include <net/sock.h> /* siocdevprivate_ioctl */ #include <net/bluetooth/bluetooth.h> -#include <net/bluetooth/rfcomm.h> #include <net/bluetooth/hci.h> +#include <net/bluetooth/rfcomm.h> + +#include <linux/capi.h> #include <scsi/scsi.h> /* Ugly hack. */ @@ -1604,7 +1606,7 @@ * To have permissions to do most of the vt ioctls, we either have * to be the owner of the tty, or super-user. */ - if (current->tty == tty || capable(CAP_SYS_ADMIN)) + if (current->signal->tty == tty || capable(CAP_SYS_ADMIN)) return 1; return 0; } |
From: Aivils S. <ai...@us...> - 2004-05-25 05:26:58
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6 Modified Files: Makefile Log Message: sync to 2.6.6 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 23 Apr 2004 07:36:55 -0000 1.8 +++ Makefile 25 May 2004 05:26:47 -0000 1.9 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 6 -SUBLEVEL = 5 +SUBLEVEL = 6 EXTRAVERSION = -ruby NAME=Zonked Quokka @@ -53,6 +53,19 @@ KBUILD_CHECKSRC = 0 endif +# Use make M=dir to specify direcotry of external module to build +# Old syntax make ... SUBDIRS=$PWD is still supported +# Setting the environment variable KBUILD_EXTMOD take precedence +ifdef SUBDIRS + KBUILD_EXTMOD ?= $(SUBDIRS) +endif +ifdef M + ifeq ("$(origin M)", "command line") + KBUILD_EXTMOD := $(M) + endif +endif + + # kbuild supports saving output files in a separate directory. # To locate output files in a separate directory two syntax'es are supported. # In both cases the working directory must be the root of the kernel src. @@ -81,9 +94,9 @@ endif # That's our default target when none is given on the command line -.PHONY: all -all: - +.PHONY: _all +_all: + ifneq ($(KBUILD_OUTPUT),) # Invoke a second make in the output directory, passing relevant variables # check that the output directory actually exists @@ -94,10 +107,11 @@ .PHONY: $(MAKECMDGOALS) -$(filter-out all,$(MAKECMDGOALS)) all: +$(filter-out _all,$(MAKECMDGOALS)) _all: $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \ - KBUILD_SRC=$(CURDIR) KBUILD_VERBOSE=$(KBUILD_VERBOSE) \ - KBUILD_CHECK=$(KBUILD_CHECK) -f $(CURDIR)/Makefile $@ + KBUILD_SRC=$(CURDIR) KBUILD_VERBOSE=$(KBUILD_VERBOSE) \ + KBUILD_CHECK=$(KBUILD_CHECK) KBUILD_EXTMOD=$(KBUILD_EXTMOD) \ + -f $(CURDIR)/Makefile $@ # Leave processing to above invocation of make skip-makefile := 1 @@ -107,6 +121,15 @@ # We process the rest of the Makefile if this is the final invocation of make ifeq ($(skip-makefile),) +# If building an external module we do not care about the all: rule +# but instead _all depend on modules +.PHONY: all +ifeq ($(KBUILD_EXTMOD),) +_all: all +else +_all: modules +endif + # Make sure we're not wasting cpu-cycles doing locale handling, yet do make # sure error messages appear in the user-desired language ifdef LC_ALL @@ -194,7 +217,7 @@ # in addition to whatever we do anyway. # Just "make" or "make all" shall build modules as well -ifneq ($(filter all modules,$(MAKECMDGOALS)),) +ifneq ($(filter all _all modules,$(MAKECMDGOALS)),) KBUILD_MODULES := 1 endif @@ -203,7 +226,7 @@ endif export KBUILD_MODULES KBUILD_BUILTIN KBUILD_VERBOSE -export KBUILD_CHECKSRC KBUILD_SRC +export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD # Beautify output # --------------------------------------------------------------------------- @@ -299,7 +322,10 @@ export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE export AFLAGS AFLAGS_KERNEL AFLAGS_MODULE -export MODVERDIR := .tmp_versions +# When compiling out-of-tree modules, put MODVERDIR in the module +# tree rather than in the kernel tree. The kernel tree might +# even be read-only. +export MODVERDIR := $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/).tmp_versions # The temporary file to save gcc -MD generated dependencies must not # contain a comma @@ -340,11 +366,13 @@ endif endif -ifneq ($(filter config %config,$(MAKECMDGOALS)),) - config-targets := 1 - ifneq ($(filter-out config %config,$(MAKECMDGOALS)),) - mixed-targets := 1 - endif +ifeq ($(KBUILD_EXTMOD),) + ifneq ($(filter config %config,$(MAKECMDGOALS)),) + config-targets := 1 + ifneq ($(filter-out config %config,$(MAKECMDGOALS)),) + mixed-targets := 1 + endif + endif endif ifeq ($(mixed-targets),1) @@ -371,6 +399,7 @@ # Build targets only - this includes vmlinux, arch specific targets, clean # targets and others. In general all targets except *config targets. +ifeq ($(KBUILD_EXTMOD),) # Additional helpers built in scripts/ # Carefully list dependencies so we do not try to build scripts twice # in parrallel @@ -393,7 +422,7 @@ net-y := net/ libs-y := lib/ core-y := usr/ -SUBDIRS := +endif # KBUILD_EXTMOD ifeq ($(dot-config),1) # In this section, we need .config @@ -420,33 +449,6 @@ include $(srctree)/arch/$(ARCH)/Makefile -# Let architecture Makefiles change CPPFLAGS if needed -CFLAGS := $(CPPFLAGS) $(CFLAGS) -AFLAGS := $(CPPFLAGS) $(AFLAGS) - -core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ - -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 := $(sort $(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-y1 := $(patsubst %/, %/lib.a, $(libs-y)) -libs-y2 := $(patsubst %/, %/built-in.o, $(libs-y)) -libs-y := $(libs-y1) $(libs-y2) - -# Here goes the main Makefile -# --------------------------------------------------------------------------- - - ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE CFLAGS += -Os else @@ -480,6 +482,27 @@ MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) export MODLIB + +ifeq ($(KBUILD_EXTMOD),) +core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ + +vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ + $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ + $(net-y) $(net-m) $(libs-y) $(libs-m))) + +vmlinux-alldirs := $(sort $(vmlinux-dirs) $(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-y1 := $(patsubst %/, %/lib.a, $(libs-y)) +libs-y2 := $(patsubst %/, %/built-in.o, $(libs-y)) +libs-y := $(libs-y1) $(libs-y2) + # Build vmlinux # --------------------------------------------------------------------------- @@ -568,12 +591,12 @@ # The actual objects are generated when descending, # make sure no implicit rule kicks in -$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.s: $(SUBDIRS) ; +$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.s: $(vmlinux-dirs) ; -# Handle descending into subdirectories listed in $(SUBDIRS) +# Handle descending into subdirectories listed in $(vmlinux-dirs) -.PHONY: $(SUBDIRS) -$(SUBDIRS): prepare-all scripts +.PHONY: $(vmlinux-dirs) +$(vmlinux-dirs): prepare-all scripts $(Q)$(MAKE) $(build)=$@ # Things we need to do before we recursively start building the kernel @@ -601,15 +624,10 @@ endif prepare0: prepare1 include/linux/version.h include/asm include/config/MARKER -ifdef KBUILD_MODULES -ifeq ($(origin SUBDIRS),file) +ifneq ($(KBUILD_MODULES),) $(Q)rm -rf $(MODVERDIR) -else - @echo '*** Warning: Overriding SUBDIRS on the command line can cause' - @echo '*** inconsistencies' -endif + $(Q)mkdir -p $(MODVERDIR) endif - $(if $(CONFIG_MODULES),$(Q)mkdir -p $(MODVERDIR)) # All the preparing.. prepare-all: prepare0 prepare @@ -693,12 +711,16 @@ # Build modules .PHONY: modules -modules: $(SUBDIRS) $(if $(KBUILD_BUILTIN),vmlinux) +modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) @echo ' Building modules, stage 2.'; $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost -# Install modules +# Target to prepare building external modules +.PHONY: modules_prepare +modules_prepare: prepare-all scripts + +# Target to install modules .PHONY: modules_install modules_install: _modinst_ _modinst_post @@ -766,39 +788,32 @@ ### # 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 are deleted as well +# make clean Delete most generated files +# Leave enough to build external modules +# make mrproper Delete the current configuration, and all generated files # make distclean Remove editor backup files, patch leftover files and the like # Directories & files removed with 'make clean' -CLEAN_DIRS += $(MODVERDIR) include/config include2 -CLEAN_FILES += vmlinux System.map \ - include/linux/autoconf.h include/linux/version.h \ - include/asm include/linux/modversions.h \ - kernel.spec .tmp* +CLEAN_DIRS += $(MODVERDIR) +CLEAN_FILES += vmlinux System.map kernel.spec \ + .tmp_kallsyms* .tmp_version .tmp_vmlinux* -# Files removed with 'make mrproper' -MRPROPER_FILES += .version .config .config.old tags TAGS cscope* +# Directories & files removed with 'make mrproper' +MRPROPER_DIRS += include/config include2 +MRPROPER_FILES += .config .config.old include/asm .version \ + include/linux/autoconf.h include/linux/version.h \ + Module.symvers tags TAGS cscope* -# clean - Delete all intermediate files +# clean - Delete most, but leave enough to build external modules # -clean-dirs += $(addprefix _clean_,$(ALL_SUBDIRS) Documentation/DocBook scripts) -.PHONY: $(clean-dirs) clean archclean mrproper archmrproper distclean +clean: rm-dirs := $(CLEAN_DIRS) +clean: rm-files := $(CLEAN_FILES) +clean-dirs := $(addprefix _clean_,$(vmlinux-alldirs)) + +.PHONY: $(clean-dirs) clean archclean $(clean-dirs): $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) -clean: rm-dirs := $(wildcard $(CLEAN_DIRS)) -mrproper: rm-dirs := $(wildcard $(MRPROPER_DIRS)) -quiet_cmd_rmdirs = $(if $(rm-dirs),CLEAN $(rm-dirs)) - cmd_rmdirs = rm -rf $(rm-dirs) - -clean: rm-files := $(wildcard $(CLEAN_FILES)) -mrproper: rm-files := $(wildcard $(MRPROPER_FILES)) -quiet_cmd_rmfiles = $(if $(rm-files),CLEAN $(rm-files)) - cmd_rmfiles = rm -rf $(rm-files) - clean: archclean $(clean-dirs) $(call cmd,rmdirs) $(call cmd,rmfiles) @@ -807,12 +822,25 @@ -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \ -type f -print | xargs rm -f -# mrproper +# mrproper - Delete all generated files, including .config # -distclean: mrproper -mrproper: clean archmrproper +mrproper: rm-dirs := $(wildcard $(MRPROPER_DIRS)) +mrproper: rm-files := $(wildcard $(MRPROPER_FILES)) +mrproper-dirs := $(addprefix _mrproper_,Documentation/DocBook scripts) + +.PHONY: $(mrproper-dirs) mrproper archmrproper +$(mrproper-dirs): + $(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@) + +mrproper: clean archmrproper $(mrproper-dirs) $(call cmd,rmdirs) $(call cmd,rmfiles) + +# distclean +# +.PHONY: distclean + +distclean: mrproper @find . $(RCS_FIND_IGNORE) \ \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ @@ -820,52 +848,6 @@ -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ -type f -print | xargs rm -f -# Generate tags for editors -# --------------------------------------------------------------------------- - -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_cscope-file = FILELST cscope.files - cmd_cscope-file = $(all-sources) > cscope.files - -quiet_cmd_cscope = MAKE cscope.out - cmd_cscope = cscope -k -b -q - -cscope: FORCE - $(call cmd,cscope-file) - $(call cmd,cscope) - -quiet_cmd_TAGS = MAKE $@ -cmd_TAGS = $(all-sources) | etags - - -# Exuberant ctags works better with -I - -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"`; \ - $(all-sources) | xargs ctags $$CTAGSF -a -endef - -TAGS: FORCE - $(call cmd,TAGS) - -tags: FORCE - $(call cmd,tags) - # RPM target # --------------------------------------------------------------------------- @@ -945,9 +927,118 @@ # Documentation targets # --------------------------------------------------------------------------- -%docs: scripts FORCE +%docs: scripts_basic FORCE $(Q)$(MAKE) $(build)=Documentation/DocBook $@ +else # KBUILD_EXTMOD + +### +# External module support. +# When building external modules the kernel used as basis is considered +# read-only, and no consistency checks are made and the make +# system is not used on the basis kernel. If updates are required +# in the basis kernel ordinary make commands (without M=...) must +# be used. +# +# The following are the only valid targets when building external +# modules. +# make M=dir clean Delete all automatically generated files +# make M=dir modules Make all modules in specified dir +# make M=dir Same as 'make M=dir modules' +# make M=dir modules_install +# Install the modules build in the module directory +# Assumes install directory is already created + +# We are always building modules +KBUILD_MODULES := 1 +.PHONY: crmodverdir +crmodverdir: FORCE + $(Q)mkdir -p $(MODVERDIR) + +.PHONY: $(KBUILD_EXTMOD) +$(KBUILD_EXTMOD): crmodverdir FORCE + $(Q)$(MAKE) $(build)=$@ + +.PHONY: modules +modules: $(KBUILD_EXTMOD) + @echo ' Building modules, stage 2.'; + $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modpost + +.PHONY: modules_install +modules_install: + $(Q)$(MAKE) -rR -f $(srctree)/scripts/Makefile.modinst + +clean-dirs := _clean_$(KBUILD_EXTMOD) + +.PHONY: $(clean-dirs) clean +$(clean-dirs): + $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) + +clean: rm-dirs := $(MODVERDIR) +clean: $(clean-dirs) + $(call cmd,rmdirs) + @find $(KBUILD_EXTMOD) $(RCS_FIND_IGNORE) \ + \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \ + -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) \ + -type f -print | xargs rm -f + +help: + @echo ' Building external modules.' + @echo ' Syntax: make -C path/to/kernel/src M=$$PWD target' + @echo '' + @echo ' modules - default target, build the module(s)' + @echo ' modules_install - install the module' + @echo ' clean - remove generated files in module directory only' + @echo '' +endif # KBUILD_EXTMOD + +# Generate tags for editors +# --------------------------------------------------------------------------- + +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_cscope-file = FILELST cscope.files + cmd_cscope-file = $(all-sources) > cscope.files + +quiet_cmd_cscope = MAKE cscope.out + cmd_cscope = cscope -k -b -q + +cscope: FORCE + $(call cmd,cscope-file) + $(call cmd,cscope) + +quiet_cmd_TAGS = MAKE $@ +cmd_TAGS = $(all-sources) | etags - + +# Exuberant ctags works better with -I + +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"`; \ + $(all-sources) | xargs ctags $$CTAGSF -a +endef + +TAGS: FORCE + $(call cmd,TAGS) + +tags: FORCE + $(call cmd,tags) + + # Scripts to check various things for consistency # --------------------------------------------------------------------------- @@ -972,6 +1063,13 @@ # FIXME Should go into a make.lib or something # =========================================================================== +quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN $(wildcard $(rm-dirs))) + cmd_rmdirs = rm -rf $(rm-dirs) + +quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files))) + cmd_rmfiles = rm -f $(rm-files) + + a_flags = -Wp,-MD,$(depfile) $(AFLAGS) $(AFLAGS_KERNEL) \ $(NOSTDINC_FLAGS) $(CPPFLAGS) \ $(modkern_aflags) $(EXTRA_AFLAGS) $(AFLAGS_$(*F).o) |
From: Aivils S. <ai...@us...> - 2004-05-25 05:26:58
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912/ruby-2.6/drivers/pci Modified Files: proc.c Log Message: sync to 2.6.6 Index: proc.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci/proc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- proc.c 30 Apr 2004 09:43:28 -0000 1.4 +++ proc.c 25 May 2004 05:26:48 -0000 1.5 @@ -16,15 +16,13 @@ #include <asm/uaccess.h> #include <asm/byteorder.h> -#define PCI_CFG_SPACE_SIZE 256 - static int proc_initialized; /* = 0 */ //from xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h -#define PCI_CMD_STAT_REG 0x04 -#define PCI_CMD_IO_ENABLE 0x01 -#define PCI_CMD_MEM_ENABLE 0x02 -#define PCI_CMD_MASTER_ENABLE 0x04 +#define PCI_CMD_STAT_REG 0x04 +#define PCI_CMD_IO_ENABLE 0x01 +#define PCI_CMD_MEM_ENABLE 0x02 +#define PCI_CMD_MASTER_ENABLE 0x04 static int pci_hackvideo=0; @@ -32,8 +30,9 @@ proc_bus_pci_lseek(struct file *file, loff_t off, int whence) { loff_t new = -1; + struct inode *inode = file->f_dentry->d_inode; - down(&file->f_dentry->d_inode->i_sem); + down(&inode->i_sem); switch (whence) { case 0: new = off; @@ -42,15 +41,15 @@ new = file->f_pos + off; break; case 2: - new = PCI_CFG_SPACE_SIZE + off; + new = inode->i_size + off; break; } - if (new < 0 || new > PCI_CFG_SPACE_SIZE) - new = -EINVAL; - else - file->f_pos = new; - up(&file->f_dentry->d_inode->i_sem); - return new; + if (new < 0 || new > inode->i_size) + new = -EINVAL; + else + file->f_pos = new; + up(&inode->i_sem); + return new; } static ssize_t @@ -69,7 +68,7 @@ */ if (capable(CAP_SYS_ADMIN)) - size = PCI_CFG_SPACE_SIZE; + size = dev->cfg_size; else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) size = 128; else @@ -142,20 +141,21 @@ const struct proc_dir_entry *dp = PDE(ino); struct pci_dev *dev = dp->data; int pos = *ppos; + int size = dev->cfg_size; int cnt; - if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && - (buf[0] <= PCI_CMD_MASTER_ENABLE) && - ((dev->class>>8) == 0x0300 || - (dev->class>>8) == 0x0400 || - (dev->class>>8) == 0x0000 ) ) - return -EINVAL; - if (pos >= PCI_CFG_SPACE_SIZE) + if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && + (buf[0] <= PCI_CMD_MASTER_ENABLE) && + ((dev->class>>8) == 0x0300 || + (dev->class>>8) == 0x0400 || + (dev->class>>8) == 0x0000 ) ) + return -EINVAL; + if (pos >= size) return 0; - if (nbytes >= PCI_CFG_SPACE_SIZE) - nbytes = PCI_CFG_SPACE_SIZE; - if (pos + nbytes > PCI_CFG_SPACE_SIZE) - nbytes = PCI_CFG_SPACE_SIZE - pos; + if (nbytes >= size) + nbytes = size; + if (pos + nbytes > size) + nbytes = size - pos; cnt = nbytes; if (!access_ok(VERIFY_READ, buf, cnt)) @@ -417,7 +417,7 @@ return -ENOMEM; e->proc_fops = &proc_bus_pci_operations; e->data = dev; - e->size = PCI_CFG_SPACE_SIZE; + e->size = dev->cfg_size; return 0; } |
From: Aivils S. <ai...@us...> - 2004-05-25 05:26:57
|
Update of /cvsroot/linuxconsole/ruby In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14912 Added Files: AGAINST-2.6.6 Removed Files: AGAINST-2.6.5 Log Message: sync to 2.6.6 --- NEW FILE: AGAINST-2.6.6 --- --- AGAINST-2.6.5 DELETED --- |
From: <ben...@id...> - 2004-05-22 12:30:07
|
Dear Open Source developer I am doing a research project on "Fun and Software Development" in which I kindly invite you to participate. You will find the online survey under http://fasd.ethz.ch/qsf/. The questionnaire consists of 53 questions and you will need about 15 minutes to complete it. With the FASD project (Fun and Software Development) we want to define the motivational significance of fun when software developers decide to engage in Open Source projects. What is special about our research project is that a similar survey is planned with software developers in commercial firms. This procedure allows the immediate comparison between the involved individuals and the conditions of production of these two development models. Thus we hope to obtain substantial new insights to the phenomenon of Open Source Development. With many thanks for your participation, Benno Luthiger PS: The results of the survey will be published under http://www.isu.unizh.ch/fuehrung/blprojects/FASD/. We have set up the mailing list fa...@we... for this study. Please see http://fasd.ethz.ch/qsf/mailinglist_en.html for registration to this mailing list. _______________________________________________________________________ Benno Luthiger Swiss Federal Institute of Technology Zurich 8092 Zurich Mail: benno.luthiger(at)id.ethz.ch _______________________________________________________________________ |
From: Aivils S. <ai...@us...> - 2004-04-30 09:43:39
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29648/ruby-2.6/drivers/pci Modified Files: proc.c Log Message: uh back to 2.6.5 Index: proc.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci/proc.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- proc.c 30 Apr 2004 09:32:47 -0000 1.3 +++ proc.c 30 Apr 2004 09:43:28 -0000 1.4 @@ -16,13 +16,15 @@ #include <asm/uaccess.h> #include <asm/byteorder.h> +#define PCI_CFG_SPACE_SIZE 256 + static int proc_initialized; /* = 0 */ //from xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h -#define PCI_CMD_STAT_REG 0x04 -#define PCI_CMD_IO_ENABLE 0x01 -#define PCI_CMD_MEM_ENABLE 0x02 -#define PCI_CMD_MASTER_ENABLE 0x04 +#define PCI_CMD_STAT_REG 0x04 +#define PCI_CMD_IO_ENABLE 0x01 +#define PCI_CMD_MEM_ENABLE 0x02 +#define PCI_CMD_MASTER_ENABLE 0x04 static int pci_hackvideo=0; @@ -30,9 +32,8 @@ proc_bus_pci_lseek(struct file *file, loff_t off, int whence) { loff_t new = -1; - struct inode *inode = file->f_dentry->d_inode; - down(&inode->i_sem); + down(&file->f_dentry->d_inode->i_sem); switch (whence) { case 0: new = off; @@ -41,15 +42,15 @@ new = file->f_pos + off; break; case 2: - new = inode->i_size + off; + new = PCI_CFG_SPACE_SIZE + off; break; } - if (new < 0 || new > inode->i_size) - new = -EINVAL; - else - file->f_pos = new; - up(&inode->i_sem); - return new; + if (new < 0 || new > PCI_CFG_SPACE_SIZE) + new = -EINVAL; + else + file->f_pos = new; + up(&file->f_dentry->d_inode->i_sem); + return new; } static ssize_t @@ -68,7 +69,7 @@ */ if (capable(CAP_SYS_ADMIN)) - size = dev->cfg_size; + size = PCI_CFG_SPACE_SIZE; else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) size = 128; else @@ -141,21 +142,20 @@ const struct proc_dir_entry *dp = PDE(ino); struct pci_dev *dev = dp->data; int pos = *ppos; - int size = dev->cfg_size; int cnt; - if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && - (buf[0] <= PCI_CMD_MASTER_ENABLE) && - ((dev->class>>8) == 0x0300 || - (dev->class>>8) == 0x0400 || - (dev->class>>8) == 0x0000 ) ) - return -EINVAL; - if (pos >= size) + if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && + (buf[0] <= PCI_CMD_MASTER_ENABLE) && + ((dev->class>>8) == 0x0300 || + (dev->class>>8) == 0x0400 || + (dev->class>>8) == 0x0000 ) ) + return -EINVAL; + if (pos >= PCI_CFG_SPACE_SIZE) return 0; - if (nbytes >= size) - nbytes = size; - if (pos + nbytes > size) - nbytes = size - pos; + if (nbytes >= PCI_CFG_SPACE_SIZE) + nbytes = PCI_CFG_SPACE_SIZE; + if (pos + nbytes > PCI_CFG_SPACE_SIZE) + nbytes = PCI_CFG_SPACE_SIZE - pos; cnt = nbytes; if (!access_ok(VERIFY_READ, buf, cnt)) @@ -417,7 +417,7 @@ return -ENOMEM; e->proc_fops = &proc_bus_pci_operations; e->data = dev; - e->size = dev->cfg_size; + e->size = PCI_CFG_SPACE_SIZE; return 0; } |
From: Aivils S. <ai...@us...> - 2004-04-30 09:32:56
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27884/drivers/pci Modified Files: proc.c Log Message: fix forgotten drivers-pci-proc Index: proc.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/pci/proc.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- proc.c 5 Feb 2004 11:53:56 -0000 1.2 +++ proc.c 30 Apr 2004 09:32:47 -0000 1.3 @@ -16,15 +16,13 @@ #include <asm/uaccess.h> #include <asm/byteorder.h> -#define PCI_CFG_SPACE_SIZE 256 - static int proc_initialized; /* = 0 */ //from xc/programs/Xserver/hw/xfree86/os-support/bus/xf86Pci.h -#define PCI_CMD_STAT_REG 0x04 -#define PCI_CMD_IO_ENABLE 0x01 -#define PCI_CMD_MEM_ENABLE 0x02 -#define PCI_CMD_MASTER_ENABLE 0x04 +#define PCI_CMD_STAT_REG 0x04 +#define PCI_CMD_IO_ENABLE 0x01 +#define PCI_CMD_MEM_ENABLE 0x02 +#define PCI_CMD_MASTER_ENABLE 0x04 static int pci_hackvideo=0; @@ -32,8 +30,9 @@ proc_bus_pci_lseek(struct file *file, loff_t off, int whence) { loff_t new = -1; + struct inode *inode = file->f_dentry->d_inode; - down(&file->f_dentry->d_inode->i_sem); + down(&inode->i_sem); switch (whence) { case 0: new = off; @@ -42,15 +41,15 @@ new = file->f_pos + off; break; case 2: - new = PCI_CFG_SPACE_SIZE + off; + new = inode->i_size + off; break; } - if (new < 0 || new > PCI_CFG_SPACE_SIZE) - new = -EINVAL; - else - file->f_pos = new; - up(&file->f_dentry->d_inode->i_sem); - return new; + if (new < 0 || new > inode->i_size) + new = -EINVAL; + else + file->f_pos = new; + up(&inode->i_sem); + return new; } static ssize_t @@ -69,7 +68,7 @@ */ if (capable(CAP_SYS_ADMIN)) - size = PCI_CFG_SPACE_SIZE; + size = dev->cfg_size; else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) size = 128; else @@ -142,20 +141,21 @@ const struct proc_dir_entry *dp = PDE(ino); struct pci_dev *dev = dp->data; int pos = *ppos; + int size = dev->cfg_size; int cnt; - if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && - (buf[0] <= PCI_CMD_MASTER_ENABLE) && - ((dev->class>>8) == 0x0300 || - (dev->class>>8) == 0x0400 || - (dev->class>>8) == 0x0000 ) ) - return -EINVAL; - if (pos >= PCI_CFG_SPACE_SIZE) + if (pci_hackvideo && (pos == PCI_CMD_STAT_REG) && + (buf[0] <= PCI_CMD_MASTER_ENABLE) && + ((dev->class>>8) == 0x0300 || + (dev->class>>8) == 0x0400 || + (dev->class>>8) == 0x0000 ) ) + return -EINVAL; + if (pos >= size) return 0; - if (nbytes >= PCI_CFG_SPACE_SIZE) - nbytes = PCI_CFG_SPACE_SIZE; - if (pos + nbytes > PCI_CFG_SPACE_SIZE) - nbytes = PCI_CFG_SPACE_SIZE - pos; + if (nbytes >= size) + nbytes = size; + if (pos + nbytes > size) + nbytes = size - pos; cnt = nbytes; if (!access_ok(VERIFY_READ, buf, cnt)) @@ -417,7 +417,7 @@ return -ENOMEM; e->proc_fops = &proc_bus_pci_operations; e->data = dev; - e->size = PCI_CFG_SPACE_SIZE; + e->size = dev->cfg_size; return 0; } |
From: Aivils S. <ai...@us...> - 2004-04-30 06:04:27
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22555/ruby-2.6/drivers/char Modified Files: decvte.c Log Message: fix softirq bug - set_leds called to early Index: decvte.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/decvte.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- decvte.c 12 Sep 2003 08:33:21 -0000 1.2 +++ decvte.c 30 Apr 2004 06:04:19 -0000 1.3 @@ -1019,7 +1019,6 @@ vc->kbd_table.default_ledflagstate = KBD_DEFLEDS; vc->kbd_table.modeflags = KBD_DEFMODE; vc->kbd_table.kbdmode = VC_XLATE; - set_leds(); cursor_type = CUR_DEFAULT; complement_mask = s_complement_mask; |
From: Aivils S. <ai...@us...> - 2004-04-23 07:37:09
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8321/ruby-2.6/drivers/video/console Modified Files: fbcon.c vgacon.c Log Message: sync to 2.6.5 Index: fbcon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console/fbcon.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- fbcon.c 20 Feb 2004 06:52:18 -0000 1.7 +++ fbcon.c 23 Apr 2004 07:36:56 -0000 1.8 @@ -160,7 +160,7 @@ static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx, int height, int width); static int fbcon_switch(struct vc_data *vc); -static int fbcon_blank(struct vc_data *vc, int blank); +static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch); static int fbcon_font_op(struct vc_data *vc, struct console_font_op *op); static int fbcon_set_palette(struct vc_data *vc, unsigned char *table); static int fbcon_scroll(struct vc_data *vc, int lines); @@ -297,93 +297,6 @@ } /* - * drawing helpers - */ -static void putcs_unaligned(struct vc_data *vc, struct fb_info *info, - struct fb_image *image, int count, - const unsigned short *s) -{ - unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; - unsigned int width = (vc->vc_font.width + 7) >> 3; - unsigned int cellsize = vc->vc_font.height * width; - unsigned int maxcnt = info->pixmap.size/cellsize; - unsigned int shift_low = 0, mod = vc->vc_font.width % 8; - unsigned int shift_high = 8, size, pitch, cnt, k; - unsigned int buf_align = info->pixmap.buf_align - 1; - unsigned int scan_align = info->pixmap.scan_align - 1; - unsigned int idx = vc->vc_font.width >> 3; - u8 mask, *src, *dst, *dst0; - - while (count) { - if (count > maxcnt) - cnt = k = maxcnt; - else - cnt = k = count; - - image->width = vc->vc_font.width * cnt; - pitch = ((image->width + 7) >> 3) + scan_align; - pitch &= ~scan_align; - size = pitch * vc->vc_font.height + buf_align; - size &= ~buf_align; - dst0 = info->pixmap.addr + fb_get_buffer_offset(info, size); - image->data = dst0; - while (k--) { - src = vc->vc_font.data + (scr_readw(s++) & charmask)* - cellsize; - dst = dst0; - mask = (u8) (0xfff << shift_high); - move_buf_unaligned(info, dst, src, pitch, image->height, - mask, shift_high, shift_low, mod, idx); - shift_low += mod; - dst0 += (shift_low >= 8) ? width : width - 1; - shift_low &= 7; - shift_high = 8 - shift_low; - } - info->fbops->fb_imageblit(info, image); - image->dx += cnt * vc->vc_font.width; - count -= cnt; - } -} - -static void putcs_aligned(struct vc_data *vc, struct fb_info *info, - struct fb_image *image, int count, - const unsigned short *s) -{ - unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; - unsigned int width = vc->vc_font.width >> 3; - unsigned int cellsize = vc->vc_font.height * width; - unsigned int maxcnt = info->pixmap.size/cellsize; - unsigned int scan_align = info->pixmap.scan_align - 1; - unsigned int buf_align = info->pixmap.buf_align - 1; - unsigned int pitch, cnt, size, k; - u8 *src, *dst, *dst0; - - while (count) { - if (count > maxcnt) - cnt = k = maxcnt; - else - cnt = k = count; - - pitch = width * cnt + scan_align; - pitch &= ~scan_align; - size = pitch * vc->vc_font.height + buf_align; - size &= ~buf_align; - image->width = vc->vc_font.width * cnt; - dst0 = info->pixmap.addr + fb_get_buffer_offset(info, size); - image->data = dst0; - while (k--) { - src = vc->vc_font.data + (scr_readw(s++)&charmask)*cellsize; - dst = dst0; - move_buf_aligned(info, dst, src, pitch, width, image->height); - dst0 += width; - } - info->fbops->fb_imageblit(info, image); - image->dx += cnt * vc->vc_font.width; - count -= cnt; - } -} - -/* * Accelerated handlers. */ void accel_bmove(struct vc_data *vc, struct fb_info *info, int sy, @@ -417,48 +330,23 @@ info->fbops->fb_fillrect(info, ®ion); } -static void accel_putc(struct vc_data *vc, struct fb_info *info, - int c, int ypos, int xpos) +void accel_putcs(struct vc_data *vc, struct fb_info *info, + const unsigned short *s, int count, int yy, int xx) { unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; unsigned int width = (vc->vc_font.width + 7) >> 3; + unsigned int cellsize = vc->vc_font.height * width; + unsigned int maxcnt = info->pixmap.size/cellsize; unsigned int scan_align = info->pixmap.scan_align - 1; unsigned int buf_align = info->pixmap.buf_align - 1; + unsigned int shift_low = 0, mod = vc->vc_font.width % 8; + unsigned int shift_high = 8, pitch, cnt, size, k; int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; int fgshift = (vc->vc_hi_font_mask) ? 9 : 8; - unsigned int size, pitch; - struct fb_image image; - u8 *src, *dst; - - image.dx = xpos * vc->vc_font.width; - image.dy = ypos * vc->vc_font.height; - image.width = vc->vc_font.width; - image.height = vc->vc_font.height; - image.fg_color = attr_fgcol(fgshift, c); - image.bg_color = attr_bgcol(bgshift, c); - image.depth = 1; - - pitch = width + scan_align; - pitch &= ~scan_align; - size = pitch * vc->vc_font.height; - size += buf_align; - size &= ~buf_align; - dst = info->pixmap.addr + fb_get_buffer_offset(info, size); - image.data = dst; - src = vc->vc_font.data + (c & charmask) * vc->vc_font.height * width; - - move_buf_aligned(info, dst, src, pitch, width, image.height); - - info->fbops->fb_imageblit(info, &image); -} - -void accel_putcs(struct vc_data *vc, struct fb_info *info, - const unsigned short *s, int count, int yy, int xx) -{ - int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; - int fgshift = (vc->vc_hi_font_mask) ? 9 : 8; + unsigned int idx = vc->vc_font.width >> 3; struct fb_image image; u16 c = scr_readw(s); + u8 *src, *dst, *dst0; image.fg_color = attr_fgcol(fgshift, c); image.bg_color = attr_bgcol(bgshift, c); @@ -467,10 +355,41 @@ image.height = vc->vc_font.height; image.depth = 1; - if (!(vc->vc_font.width & 7)) - putcs_aligned(vc, info, &image, count, s); - else - putcs_unaligned(vc, info, &image, count, s); + while (count) { + if (count > maxcnt) + cnt = k = maxcnt; + else + cnt = k = count; + + image.width = vc->vc_font.width * cnt; + pitch = ((image.width + 7) >> 3) + scan_align; + pitch &= ~scan_align; + size = pitch * image.height + buf_align; + size &= ~buf_align; + dst0 = fb_get_buffer_offset(info, &info->pixmap, size); + image.data = dst0; + while (k--) { + src = vc->vc_font.data + (scr_readw(s++) & charmask)*cellsize; + dst = dst0; + + if (mod) { + fb_move_buf_unaligned(info, &info->pixmap, dst, pitch, + src, idx, image.height, shift_high, + shift_low, mod); + shift_low += mod; + dst0 += (shift_low >= 8) ? width : width - 1; + shift_low &= 7; + shift_high = 8 - shift_low; + } else { + fb_move_buf_aligned(info, &info->pixmap, dst, pitch, + src, idx, image.height); + dst0 += width; + } + } + info->fbops->fb_imageblit(info, &image); + image.dx += cnt * vc->vc_font.width; + count -= cnt; + } } void accel_clear_margins(struct vc_data *vc, struct fb_info *info, @@ -731,7 +650,7 @@ struct display *q = &fb_display[i]; struct vc_data *tmp = find_vc(i); - if (tmp && vc->vc_font.width > 32) { + if (tmp) { /* If we are not the first console on this fb, copy the font from that console */ vc->vc_font.width = tmp->vc_font.width; @@ -948,7 +867,16 @@ static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos) { struct fb_info *info = (struct fb_info *)vc->display_fg->data_hook; + unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; + unsigned int scan_align = info->pixmap.scan_align - 1; + unsigned int buf_align = info->pixmap.buf_align - 1; + unsigned int width = (vc->vc_font.width + 7) >> 3; + int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; + int fgshift = (vc->vc_hi_font_mask) ? 9 : 8; struct display *p = &fb_display[vc->vc_num]; + unsigned int size, pitch; + struct fb_image image; + u8 *src, *dst; if (!info->fbops->fb_blank && vc->display_fg->vt_blanked) return; @@ -958,7 +886,28 @@ if (vc->vc_mode != KD_TEXT) return; - accel_putc(vc, info, c, real_y(p, ypos), xpos); + image.dx = xpos * vc->vc_font.width; + image.dy = real_y(p, ypos) * vc->vc_font.height; + image.width = vc->vc_font.width; + image.height = vc->vc_font.height; + image.fg_color = attr_fgcol(fgshift, c); + image.bg_color = attr_bgcol(bgshift, c); + image.depth = 1; + + src = vc->vc_font.data + (c & charmask) * vc->vc_font.height * width; + + pitch = width + scan_align; + pitch &= ~scan_align; + size = pitch * vc->vc_font.height; + size += buf_align; + size &= ~buf_align; + + dst = fb_get_buffer_offset(info, &info->pixmap, size); + image.data = dst; + + fb_move_buf_aligned(info, &info->pixmap, dst, pitch, src, width, image.height); + + info->fbops->fb_imageblit(info, &image); } static void fbcon_putcs(struct vc_data *vc, const unsigned short *s, @@ -1683,14 +1632,23 @@ return 1; } -static int fbcon_blank(struct vc_data *vc, int blank) +static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) { unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; struct fb_info *info = (struct fb_info *)vc->display_fg->data_hook; struct display *p = &fb_display[vc->vc_num]; - if (blank < 0) /* Entering graphics mode */ - return 0; + if (mode_switch) { + struct fb_info *info = registered_fb[(int) con2fb_map[vc->vc_num]]; + struct fb_var_screeninfo var = info->var; + + if (blank) { + fbcon_cursor(vc, CM_ERASE); + return 0; + } + var.activate = FB_ACTIVATE_NOW | FB_ACTIVATE_FORCE; + fb_set_var(info, &var); + } fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); @@ -2397,7 +2355,6 @@ fbcon_event_notifier_registered = 1; } release_console_sem(); - return 0; } Index: vgacon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/video/console/vgacon.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- vgacon.c 29 Sep 2003 08:50:56 -0000 1.3 +++ vgacon.c 23 Apr 2004 07:36:56 -0000 1.4 @@ -80,7 +80,7 @@ static void vgacon_deinit(struct vc_data *c); static void vgacon_cursor(struct vc_data *c, int mode); static int vgacon_switch(struct vc_data *c); -static int vgacon_blank(struct vc_data *c, int blank); +static int vgacon_blank(struct vc_data *c, int blank, int mode_switch); static int vgacon_font_op(struct vc_data *c, struct console_font_op *op); static int vgacon_set_palette(struct vc_data *vc, unsigned char *table); static int vgacon_scroll(struct vc_data *c, int lines); @@ -657,7 +657,7 @@ } } -static int vgacon_blank(struct vc_data *c, int blank) +static int vgacon_blank(struct vc_data *c, int blank, int mode_switch) { switch (blank) { case 0: /* Unblank */ @@ -674,7 +674,8 @@ /* Tell console.c that it has to restore the screen itself */ return 1; case 1: /* Normal blanking */ - if (vga_video_type == VIDEO_TYPE_VGAC) { + case -1: /* Obsolete */ + if (!mode_switch && vga_video_type == VIDEO_TYPE_VGAC) { vga_pal_blank(&state); vga_palette_blanked = 1; return 0; @@ -682,11 +683,8 @@ vgacon_set_origin(c); scr_memsetw((void *) vga_vram_base, BLANK, c->vc_screenbuf_size); - return 1; - case -1: /* Entering graphic mode */ - scr_memsetw((void *) vga_vram_base, BLANK, - c->vc_screenbuf_size); - vga_is_gfx = 1; + if (mode_switch) + vga_is_gfx = 1; return 1; default: /* VESA blanking */ if (vga_video_type == VIDEO_TYPE_VGAC) { |
From: Aivils S. <ai...@us...> - 2004-04-23 07:37:08
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/fs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8321/ruby-2.6/fs Modified Files: compat_ioctl.c Log Message: sync to 2.6.5 Index: compat_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/fs/compat_ioctl.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- compat_ioctl.c 20 Feb 2004 06:52:18 -0000 1.7 +++ compat_ioctl.c 23 Apr 2004 07:36:56 -0000 1.8 @@ -62,6 +62,7 @@ #include <linux/if_tun.h> #include <linux/ctype.h> #include <linux/ioctl32.h> +#include <linux/syscalls.h> #include <linux/ncp_fs.h> #include <linux/i2c.h> #include <linux/i2c-dev.h> @@ -1457,6 +1458,7 @@ struct cdrom_generic_command *cgc; struct cdrom_generic_command32 *cgc32; unsigned char dir; + int itmp; cgc = compat_alloc_user_space(sizeof(*cgc)); cgc32 = compat_ptr(arg); @@ -1468,12 +1470,16 @@ __cgc_do_ptr((void **) &cgc->sense, &cgc32->sense)) return -EFAULT; - if (get_user(dir, &cgc->data_direction) || - put_user(dir, &cgc32->data_direction)) + if (get_user(dir, &cgc32->data_direction) || + put_user(dir, &cgc->data_direction)) return -EFAULT; - if (copy_in_user(&cgc->quiet, &cgc32->quiet, - 2 * sizeof(int))) + if (get_user(itmp, &cgc32->quiet) || + put_user(itmp, &cgc->quiet)) + return -EFAULT; + + if (get_user(itmp, &cgc32->timeout) || + put_user(itmp, &cgc->timeout)) return -EFAULT; if (__cgc_do_ptr(&cgc->reserved[0], &cgc32->reserved[0])) @@ -1950,6 +1956,7 @@ set_fs (KERNEL_DS); err = sys_ioctl(fd, cmd, (unsigned long)&a); set_fs (old_fs); + break; default: return -EINVAL; } @@ -1983,13 +1990,18 @@ } /* Bluetooth ioctls */ -#define HCIUARTSETPROTO _IOW('U', 200, int) -#define HCIUARTGETPROTO _IOR('U', 201, int) +#define HCIUARTSETPROTO _IOW('U', 200, int) +#define HCIUARTGETPROTO _IOR('U', 201, int) -#define BNEPCONNADD _IOW('B', 200, int) -#define BNEPCONNDEL _IOW('B', 201, int) -#define BNEPGETCONNLIST _IOR('B', 210, int) -#define BNEPGETCONNINFO _IOR('B', 211, int) +#define BNEPCONNADD _IOW('B', 200, int) +#define BNEPCONNDEL _IOW('B', 201, int) +#define BNEPGETCONNLIST _IOR('B', 210, int) +#define BNEPGETCONNINFO _IOR('B', 211, int) + +#define CMTPCONNADD _IOW('C', 200, int) +#define CMTPCONNDEL _IOW('C', 201, int) +#define CMTPGETCONNLIST _IOR('C', 210, int) +#define CMTPGETCONNINFO _IOR('C', 211, int) struct floppy_struct32 { compat_uint_t size; @@ -3062,6 +3074,20 @@ return sys_ioctl(fd, cmd, (unsigned long) iwr); } +/* Emulate old style bridge ioctls */ +static int do_bridge_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) +{ + u32 tmp; + unsigned long *argbuf = compat_alloc_user_space(3 * sizeof(unsigned long)); + int i; + for (i = 0; i < 3; i++) { + if (get_user(tmp, i + ((u32 *)arg)) || + put_user(tmp, i + argbuf)) + return -EFAULT; + } + return sys_ioctl(fd, cmd, (unsigned long)argbuf); +} + #undef CODE #endif @@ -3241,6 +3267,8 @@ HANDLE_IOCTL(SIOCGIWNICKN, do_wireless_ioctl) HANDLE_IOCTL(SIOCSIWENCODE, do_wireless_ioctl) HANDLE_IOCTL(SIOCGIWENCODE, do_wireless_ioctl) +HANDLE_IOCTL(SIOCSIFBR, do_bridge_ioctl) +HANDLE_IOCTL(SIOCGIFBR, do_bridge_ioctl) #undef DECLARES #endif |
From: Aivils S. <ai...@us...> - 2004-04-23 07:37:08
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8321/ruby-2.6/drivers/char Modified Files: Kconfig Makefile tty_io.c vt.c Log Message: sync to 2.6.5 Index: Kconfig =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/Kconfig,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Kconfig 20 Feb 2004 06:52:18 -0000 1.6 +++ Kconfig 23 Apr 2004 07:36:55 -0000 1.7 @@ -452,7 +452,8 @@ source "drivers/serial/Kconfig" config UNIX98_PTYS - bool "Unix98 PTY support" + bool "Unix98 PTY support" if EMBEDDED + default y ---help--- A pseudo terminal (PTY) is a software device consisting of two halves: a master and a slave. The slave device behaves identical to @@ -470,28 +471,38 @@ terminal slave can be accessed as /dev/pts/<number>. What was traditionally /dev/ttyp2 will then be /dev/pts/2, for example. - The entries in /dev/pts/ are created on the fly by a virtual - file system; therefore, if you say Y here you should say Y to - "/dev/pts file system for Unix98 PTYs" as well. + All modern Linux systems use the Unix98 ptys. Say Y unless + you're on an embedded system and want to conserve memory. - If you want to say Y here, you need to have the C library glibc 2.1 - or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*"). - Read the instructions in <file:Documentation/Changes> pertaining to - pseudo terminals. It's safe to say N. +config LEGACY_PTYS + bool "Legacy (BSD) PTY support" + default y + ---help--- + A pseudo terminal (PTY) is a software device consisting of two + halves: a master and a slave. The slave device behaves identical to + a physical terminal; the master device is used by a process to + read data from and write data to the slave, thereby emulating a + terminal. Typical programs for the master side are telnet servers + and xterms. -config UNIX98_PTY_COUNT - int "Maximum number of Unix98 PTYs in use (0-2048)" - depends on UNIX98_PTYS + Linux has traditionally used the BSD-like names /dev/ptyxx + for masters and /dev/ttyxx for slaves of pseudo + terminals. This scheme has a number of problems, including + security. This option enables these legacy devices; on most + systems, it is safe to say N. + + +config LEGACY_PTY_COUNT + int "Maximum number of legacy PTY in use" + depends on LEGACY_PTYS default "256" - help - The maximum number of Unix98 PTYs that can be used at any one time. - The default is 256, and should be enough for desktop systems. Server - machines which support incoming telnet/rlogin/ssh connections and/or - serve several X terminals may want to increase this: every incoming - connection and every xterm uses up one PTY. + ---help--- + The maximum number of legacy PTYs that can be used at any one time. + The default is 256, and should be more than enough. Embedded + systems may want to reduce this to save memory. - When not in use, each additional set of 256 PTYs occupy - approximately 8 KB of kernel memory on 32-bit architectures. + When not in use, each legacy PTY occupies 12 bytes on 32-bit + architectures and 24 bytes on 64-bit architectures. config PRINTER tristate "Parallel printer support" @@ -595,30 +606,6 @@ bool "Support for console on line printer" depends on PC9800_OLDLP - -menu "Mice" - -config BUSMOUSE - tristate "Bus Mouse Support" - ---help--- - Say Y here if your machine has a bus mouse as opposed to a serial - mouse. Most people have a regular serial MouseSystem or - Microsoft mouse (made by Logitech) that plugs into a COM port - (rectangular with 9 or 25 pins). These people say N here. - - If you have a laptop, you either have to check the documentation or - experiment a bit to find out whether the trackball is a serial mouse - or not; it's best to say Y here for you. - - This is the generic bus mouse driver code. If you have a bus mouse, - you will have to say Y here and also to the specific driver for your - mouse below. - - To compile this driver as a module, choose M here: the - module will be called busmouse. - -endmenu - config QIC02_TAPE tristate "QIC-02 tape support" help @@ -736,6 +723,7 @@ config NVRAM tristate "/dev/nvram support" + depends on ATARI || X86 || X86_64 || ARM || GENERIC_NVRAM ---help--- If you say Y here and create a character special file /dev/nvram with major number 10 and minor number 144 using mknod ("man mknod"), @@ -761,7 +749,7 @@ config RTC tristate "Enhanced Real Time Clock Support" - depends on !PPC32 && !PARISC && !IA64 && !X86_PC9800 + depends on !PPC32 && !PARISC && !IA64 && !X86_PC9800 && !M68K ---help--- If you say Y here and create a character special file /dev/rtc with major number 10 and minor number 135 using mknod ("man mknod"), you @@ -801,8 +789,7 @@ precision in some cases. To compile this driver as a module, choose M here: the - module will be called genrtc. To load the module automatically - add 'alias char-major-10-135 genrtc' to your /etc/modules.conf + module will be called genrtc. config GEN_RTC_X bool "Extended RTC operation" Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/Makefile,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile 20 Feb 2004 06:52:18 -0000 1.8 +++ Makefile 23 Apr 2004 07:36:55 -0000 1.9 @@ -44,12 +44,12 @@ obj-$(CONFIG_RAW_DRIVER) += raw.o obj-$(CONFIG_SGI_L1_SERIAL) += sn_serial.o obj-$(CONFIG_VIOCONS) += viocons.o +obj-$(CONFIG_VIOTAPE) += viotape.o obj-$(CONFIG_PRINTER) += lp.o obj-$(CONFIG_TIPAR) += tipar.o obj-$(CONFIG_PC9800_OLDLP) += lp_old98.o -obj-$(CONFIG_BUSMOUSE) += busmouse.o obj-$(CONFIG_DTLK) += dtlk.o obj-$(CONFIG_R3964) += n_r3964.o obj-$(CONFIG_APPLICOM) += applicom.o Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/tty_io.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- tty_io.c 20 Feb 2004 06:52:18 -0000 1.8 +++ tty_io.c 23 Apr 2004 07:36:55 -0000 1.9 @@ -121,7 +121,7 @@ #ifdef CONFIG_UNIX98_PTYS extern struct tty_driver *ptm_driver; /* Unix98 pty masters; for /dev/ptmx */ -extern struct tty_driver *pts_driver; /* Unix98 pty slaves; for /dev/ptmx */ +extern int pty_limit; /* Config limit on Unix98 ptys */ #endif extern void disable_early_printk(void); @@ -478,12 +478,15 @@ if (tty->session > 0) { struct list_head *l; for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) { - if (p->tty == tty) - p->tty = NULL; - if (!p->leader) - continue; - send_group_sig_info(SIGHUP, SEND_SIG_PRIV, p); - send_group_sig_info(SIGCONT, SEND_SIG_PRIV, p); + task_t *task = p; + do { + if (task->tty == tty) + task->tty = NULL; + if (task->leader) { + send_group_sig_info(SIGHUP, SEND_SIG_PRIV, task); + send_group_sig_info(SIGCONT, SEND_SIG_PRIV, task); + } + } while_each_thread(p, task); if (tty->pgrp > 0) p->tty_old_pgrp = tty->pgrp; } @@ -588,8 +591,12 @@ tty->pgrp = -1; read_lock(&tasklist_lock); - for_each_task_pid(current->session, PIDTYPE_SID, p, l, pid) - p->tty = NULL; + for_each_task_pid(current->session, PIDTYPE_SID, p, l, pid) { + task_t *task = p; + do { + task->tty = NULL; + } while_each_thread(p, task); + } read_unlock(&tasklist_lock); unlock_kernel(); } @@ -796,7 +803,13 @@ down_tty_sem(idx); /* check whether we're reopening an existing tty */ - tty = driver->ttys[idx]; + if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { + tty = devpts_get_tty(idx); + if (tty && driver->subtype == PTY_TYPE_MASTER) + tty = tty->link; + } else { + tty = driver->ttys[idx]; + } if (tty) goto fast_track; /* @@ -824,7 +837,14 @@ tty->index = idx; tty_line_name(driver, idx, tty->name); - tp_loc = &driver->termios[idx]; + if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { + tp_loc = &tty->termios; + ltp_loc = &tty->termios_locked; + } else { + tp_loc = &driver->termios[idx]; + ltp_loc = &driver->termios_locked[idx]; + } + if (!*tp_loc) { tp = (struct termios *) kmalloc(sizeof(struct termios), GFP_KERNEL); @@ -833,7 +853,6 @@ *tp = driver->init_termios; } - ltp_loc = &driver->termios_locked[idx]; if (!*ltp_loc) { ltp = (struct termios *) kmalloc(sizeof(struct termios), GFP_KERNEL); @@ -851,7 +870,14 @@ o_tty->index = idx; tty_line_name(driver->other, idx, o_tty->name); - o_tp_loc = &driver->other->termios[idx]; + if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { + o_tp_loc = &o_tty->termios; + o_ltp_loc = &o_tty->termios_locked; + } else { + o_tp_loc = &driver->other->termios[idx]; + o_ltp_loc = &driver->other->termios_locked[idx]; + } + if (!*o_tp_loc) { o_tp = (struct termios *) kmalloc(sizeof(struct termios), GFP_KERNEL); @@ -860,7 +886,6 @@ *o_tp = driver->other->init_termios; } - o_ltp_loc = &driver->other->termios_locked[idx]; if (!*o_ltp_loc) { o_ltp = (struct termios *) kmalloc(sizeof(struct termios), GFP_KERNEL); @@ -872,7 +897,9 @@ /* * Everything allocated ... set up the o_tty structure. */ - driver->other->ttys[idx] = o_tty; + if (!(driver->other->flags & TTY_DRIVER_DEVPTS_MEM)) { + driver->other->ttys[idx] = o_tty; + } if (!*o_tp_loc) *o_tp_loc = o_tp; if (!*o_ltp_loc) @@ -893,7 +920,9 @@ * Failures after this point use release_mem to clean up, so * there's no need to null out the local pointers. */ - driver->ttys[idx] = tty; + if (!(driver->flags & TTY_DRIVER_DEVPTS_MEM)) { + driver->ttys[idx] = tty; + } if (!*tp_loc) *tp_loc = tp; @@ -991,12 +1020,20 @@ { struct tty_struct *o_tty; struct termios *tp; + int devpts = tty->driver->flags & TTY_DRIVER_DEVPTS_MEM; if ((o_tty = tty->link) != NULL) { - o_tty->driver->ttys[idx] = NULL; + if (!devpts) + o_tty->driver->ttys[idx] = NULL; if (o_tty->driver->flags & TTY_DRIVER_RESET_TERMIOS) { - tp = o_tty->driver->termios[idx]; - o_tty->driver->termios[idx] = NULL; + tp = o_tty->termios; + if (!devpts) + o_tty->driver->termios[idx] = NULL; + kfree(tp); + + tp = o_tty->termios_locked; + if (!devpts) + o_tty->driver->termios_locked[idx] = NULL; kfree(tp); } o_tty->magic = 0; @@ -1007,12 +1044,20 @@ free_tty_struct(o_tty); } - tty->driver->ttys[idx] = NULL; + if (!devpts) + tty->driver->ttys[idx] = NULL; if (tty->driver->flags & TTY_DRIVER_RESET_TERMIOS) { - tp = tty->driver->termios[idx]; - tty->driver->termios[idx] = NULL; + tp = tty->termios; + if (!devpts) + tty->driver->termios[idx] = NULL; + kfree(tp); + + tp = tty->termios_locked; + if (!devpts) + tty->driver->termios_locked[idx] = NULL; kfree(tp); } + tty->magic = 0; tty->driver->refcount--; file_list_lock(); @@ -1056,22 +1101,24 @@ "free (%s)\n", tty->name); return; } - if (tty != tty->driver->ttys[idx]) { - printk(KERN_DEBUG "release_dev: driver.table[%d] not tty " - "for (%s)\n", idx, tty->name); - return; - } - if (tty->termios != tty->driver->termios[idx]) { - printk(KERN_DEBUG "release_dev: driver.termios[%d] not termios " - "for (%s)\n", - idx, tty->name); - return; - } - if (tty->termios_locked != tty->driver->termios_locked[idx]) { - printk(KERN_DEBUG "release_dev: driver.termios_locked[%d] not " - "termios_locked for (%s)\n", - idx, tty->name); - return; + if (!(tty->driver->flags & TTY_DRIVER_DEVPTS_MEM)) { + if (tty != tty->driver->ttys[idx]) { + printk(KERN_DEBUG "release_dev: driver.table[%d] not tty " + "for (%s)\n", idx, tty->name); + return; + } + if (tty->termios != tty->driver->termios[idx]) { + printk(KERN_DEBUG "release_dev: driver.termios[%d] not termios " + "for (%s)\n", + idx, tty->name); + return; + } + if (tty->termios_locked != tty->driver->termios_locked[idx]) { + printk(KERN_DEBUG "release_dev: driver.termios_locked[%d] not " + "termios_locked for (%s)\n", + idx, tty->name); + return; + } } #endif @@ -1081,7 +1128,8 @@ #endif #ifdef TTY_PARANOIA_CHECK - if (tty->driver->other) { + if (tty->driver->other && + !(tty->driver->flags & TTY_DRIVER_DEVPTS_MEM)) { if (o_tty != tty->driver->other->ttys[idx]) { printk(KERN_DEBUG "release_dev: other->table[%d] " "not o_tty for (%s)\n", @@ -1216,11 +1264,20 @@ struct pid *pid; read_lock(&tasklist_lock); - 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; + for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) { + task_t *task = p; + do { + task->tty = NULL; + } while_each_thread(p, task); + } + if (o_tty) { + for_each_task_pid(o_tty->session, PIDTYPE_SID, p,l, pid) { + task_t *task = p; + do { + task->tty = NULL; + } while_each_thread(p, task); + } + } read_unlock(&tasklist_lock); } @@ -1334,23 +1391,29 @@ return -ENODEV; } - if (device == MKDEV(TTYAUX_MAJOR,2)) { #ifdef CONFIG_UNIX98_PTYS + if (device == MKDEV(TTYAUX_MAJOR,2)) { /* find a device that is not in use. */ + static int next_ptmx_dev = 0; retval = -1; driver = ptm_driver; - for (index = 0; index < driver->num ; index++) + while (driver->refcount < pty_limit) { + index = next_ptmx_dev; + next_ptmx_dev = (next_ptmx_dev+1) % driver->num; if (!init_dev(driver, index, &tty)) goto ptmx_found; /* ok! */ + } return -EIO; /* no free ptys */ ptmx_found: set_bit(TTY_PTY_LOCK, &tty->flags); /* LOCK THE SLAVE */ - devpts_pty_new(index, MKDEV(pts_driver->major, pts_driver->minor_start) + index); + if (devpts_pty_new(tty->link)) { + /* BADNESS - need to destroy both ptm and pts! */ + return -ENOMEM; + } noctty = 1; -#else - return -ENODEV; -#endif /* CONFIG_UNIX_98_PTYS */ - } else { + } else +#endif + { driver = get_tty_driver(device, &index); if (!driver) return -ENODEV; @@ -1576,8 +1639,12 @@ */ read_lock(&tasklist_lock); - for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) - p->tty = NULL; + for_each_task_pid(tty->session, PIDTYPE_SID, p, l, pid) { + task_t *task = p; + do { + task->tty = NULL; + } while_each_thread(p, task); + } read_unlock(&tasklist_lock); } else return -EPERM; @@ -2136,8 +2203,6 @@ EXPORT_SYMBOL(tty_register_device); EXPORT_SYMBOL(tty_unregister_device); -static struct kobject tty_kobj = {.name = "tty"}; - struct tty_driver *alloc_tty_driver(int lines) { struct tty_driver *driver; @@ -2197,16 +2262,17 @@ int error; int i; dev_t dev; - char *s; - void **p; + void **p = NULL; if (driver->flags & TTY_DRIVER_INSTALLED) return 0; - p = kmalloc(driver->num * 3 * sizeof(void *), GFP_KERNEL); - if (!p) - return -ENOMEM; - memset(p, 0, driver->num * 3 * sizeof(void *)); + if (!(driver->flags & TTY_DRIVER_DEVPTS_MEM)) { + p = kmalloc(driver->num * 3 * sizeof(void *), GFP_KERNEL); + if (!p) + return -ENOMEM; + memset(p, 0, driver->num * 3 * sizeof(void *)); + } if (!driver->major) { error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, @@ -2225,19 +2291,21 @@ return error; } - driver->ttys = (struct tty_struct **)p; - driver->termios = (struct termios **)(p + driver->num); - driver->termios_locked = (struct termios **)(p + driver->num * 2); + if (p) { + driver->ttys = (struct tty_struct **)p; + driver->termios = (struct termios **)(p + driver->num); + driver->termios_locked = (struct termios **)(p + driver->num * 2); + } else { + driver->ttys = NULL; + driver->termios = NULL; + driver->termios_locked = NULL; + } - driver->cdev.kobj.parent = &tty_kobj; - strcpy(driver->cdev.kobj.name, driver->name); - for (s = strchr(driver->cdev.kobj.name, '/'); s; s = strchr(s, '/')) - *s = '!'; cdev_init(&driver->cdev, &tty_fops); driver->cdev.owner = driver->owner; error = cdev_add(&driver->cdev, dev, driver->num); if (error) { - kobject_del(&driver->cdev.kobj); + cdev_del(&driver->cdev); unregister_chrdev_region(dev, driver->num); driver->ttys = NULL; driver->termios = driver->termios_locked = NULL; @@ -2353,7 +2421,9 @@ } postcore_initcall(tty_class_init); - + +/* 3/2004 jmc: why do these devices exist? */ + static struct cdev tty_cdev, console_cdev; #ifdef CONFIG_UNIX98_PTYS static struct cdev ptmx_cdev; @@ -2368,7 +2438,6 @@ */ static int __init tty_init(void) { - strcpy(tty_cdev.kobj.name, "dev.tty"); cdev_init(&tty_cdev, &tty_fops); if (cdev_add(&tty_cdev, MKDEV(TTYAUX_MAJOR, 0), 1) || register_chrdev_region(MKDEV(TTYAUX_MAJOR, 0), 1, "/dev/tty") < 0) @@ -2376,7 +2445,6 @@ devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 0), S_IFCHR|S_IRUGO|S_IWUGO, "tty"); class_simple_device_add(tty_class, MKDEV(TTYAUX_MAJOR, 0), NULL, "tty"); - strcpy(console_cdev.kobj.name, "dev.console"); cdev_init(&console_cdev, &console_fops); if (cdev_add(&console_cdev, MKDEV(TTYAUX_MAJOR, 1), 1) || register_chrdev_region(MKDEV(TTYAUX_MAJOR, 1), 1, "/dev/console") < 0) @@ -2384,11 +2452,7 @@ devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 1), S_IFCHR|S_IRUSR|S_IWUSR, "console"); class_simple_device_add(tty_class, MKDEV(TTYAUX_MAJOR, 1), NULL, "console"); - tty_kobj.kset = tty_cdev.kobj.kset; - kobject_register(&tty_kobj); - #ifdef CONFIG_UNIX98_PTYS - strcpy(ptmx_cdev.kobj.name, "dev.ptmx"); cdev_init(&ptmx_cdev, &tty_fops); if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) || register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) @@ -2396,9 +2460,8 @@ devfs_mk_cdev(MKDEV(TTYAUX_MAJOR, 2), S_IFCHR|S_IRUGO|S_IWUGO, "ptmx"); class_simple_device_add(tty_class, MKDEV(TTYAUX_MAJOR, 2), NULL, "ptmx"); #endif - + #ifdef CONFIG_VT - strcpy(vc0_cdev.kobj.name, "dev.vc0"); cdev_init(&vc0_cdev, &console_fops); if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) || register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vt.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- vt.c 20 Feb 2004 06:52:18 -0000 1.17 +++ vt.c 23 Apr 2004 07:36:55 -0000 1.18 @@ -715,11 +715,11 @@ switch (vc->display_fg->blank_mode) { case VESA_NO_BLANKING: - sw->con_blank(vc, VESA_VSYNC_SUSPEND+1); + sw->con_blank(vc, VESA_VSYNC_SUSPEND+1, 0); break; case VESA_VSYNC_SUSPEND: case VESA_HSYNC_SUSPEND: - sw->con_blank(vc, VESA_POWERDOWN+1); + sw->con_blank(vc, VESA_POWERDOWN+1, 0); break; } } @@ -746,7 +746,7 @@ if (entering_gfx) { hide_cursor(vc); save_screen(vc); - sw->con_blank(vc, -1); + sw->con_blank(vc, -1, 1); vc->display_fg->vt_blanked = 1; set_origin(vc); return; @@ -764,7 +764,7 @@ save_screen(vc); /* In case we need to reset origin, blanking hook returns 1 */ - i = sw->con_blank(vc, 1); + i = sw->con_blank(vc, 1, 0); vc->display_fg->vt_blanked = 1; if (i) set_origin(vc); @@ -776,7 +776,7 @@ mod_timer(&vc->display_fg->timer, jiffies + vc->display_fg->off_interval); } if (vc->display_fg->blank_mode) - sw->con_blank(vc, vc->display_fg->blank_mode + 1); + sw->con_blank(vc, vc->display_fg->blank_mode + 1, 0); } /* @@ -816,7 +816,7 @@ } vc->display_fg->vt_blanked = 0; - if (sw->con_blank(vc, 0)) + if (sw->con_blank(vc, 0, 1)) /* Low-level driver cannot restore -> do it ourselves */ update_screen(vc); if (console_blank_hook) @@ -1229,6 +1229,8 @@ if (in_interrupt()) return count; + might_sleep(); + if (!vc) { printk("vt_write: tty %d not allocated\n", tty->index); return 0; @@ -1436,15 +1438,20 @@ static void vt_close(struct tty_struct *tty, struct file * filp) { struct vc_data *vc; + acquire_console_sem(); - if (!tty || tty->count != 1) - return; + if (!tty || tty->count != 1) { + release_console_sem(); + return; + } + vc = (struct vc_data *)tty->driver_data; if (vc) { vcs_remove_devfs(tty); vc->vc_tty = NULL; } tty->driver_data = NULL; + release_console_sem(); } static int vt_write(struct tty_struct * tty, int from_user, @@ -1721,7 +1728,7 @@ if (get_user(data, (char *) arg + 1)) return -EFAULT; vc->display_fg->blank_mode = (data < 4) ? data : 0; - break;; + break; case TIOCL_SETKMSGREDIRECT: if (!capable(CAP_SYS_ADMIN)) { ret = -EPERM; @@ -1789,8 +1796,7 @@ vt->timer.function = blank_screen_t; mod_timer(&vt->timer, jiffies + vt->blank_interval); if (vt->pm_con) - vt->pm_con->data = vt; - vt->vc_cons[0] = vc_allocate(current_vc); + vt->pm_con->data = vt; vt->keyboard = NULL; INIT_WORK(&vt->vt_work, vt_callback, vt); @@ -1800,10 +1806,13 @@ register_console(&vt_console_driver); printable = 1; #endif - } + } + acquire_console_sem(); + vt->vc_cons[0] = vc_allocate(current_vc); gotoxy(vt->fg_console, vt->fg_console->vc_x, vt->fg_console->vc_y); vte_ed(vt->fg_console, 0); update_screen(vt->fg_console); + release_console_sem(); current_vc += vc_count; current_vt += 1; if (vt->vt_kmalloced) { |