aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DocBook/device-drivers.tmpl4
-rw-r--r--arch/arm/boot/compressed/Makefile2
-rw-r--r--arch/avr32/mach-at32ap/at32ap700x.c2
-rw-r--r--arch/c6x/include/asm/Kbuild1
-rw-r--r--arch/cris/Kconfig32
-rw-r--r--arch/cris/arch-v10/kernel/kgdb.c870
-rw-r--r--arch/cris/arch-v32/drivers/Kconfig7
-rw-r--r--arch/cris/include/asm/Kbuild4
-rw-r--r--arch/cris/include/asm/io.h3
-rw-r--r--arch/cris/include/asm/linkage.h6
-rw-r--r--arch/frv/kernel/head.S5
-rw-r--r--arch/h8300/Kconfig118
-rw-r--r--arch/h8300/Kconfig.cpu4
-rw-r--r--arch/h8300/boot/compressed/Makefile2
-rw-r--r--arch/h8300/include/asm/Kbuild2
-rw-r--r--arch/h8300/include/asm/barrier.h2
-rw-r--r--arch/h8300/include/asm/linkage.h6
-rw-r--r--arch/h8300/include/asm/tlb.h15
-rw-r--r--arch/h8300/kernel/entry.S118
-rw-r--r--arch/h8300/kernel/syscalls.S648
-rw-r--r--arch/h8300/lib/abs.S4
-rw-r--r--arch/h8300/lib/memcpy.S4
-rw-r--r--arch/h8300/lib/memset.S4
-rw-r--r--arch/h8300/platform/h8300h/aki3068net/crt0_ram.S16
-rw-r--r--arch/h8300/platform/h8300h/generic/crt0_ram.S14
-rw-r--r--arch/h8300/platform/h8300h/generic/crt0_rom.S14
-rw-r--r--arch/h8300/platform/h8300h/h8max/crt0_ram.S16
-rw-r--r--arch/h8300/platform/h8s/edosk2674/crt0_ram.S16
-rw-r--r--arch/h8300/platform/h8s/edosk2674/crt0_rom.S14
-rw-r--r--arch/h8300/platform/h8s/generic/crt0_ram.S16
-rw-r--r--arch/h8300/platform/h8s/generic/crt0_rom.S12
-rw-r--r--arch/m68k/kernel/asm-offsets.c2
-rw-r--r--arch/openrisc/include/asm/Kbuild1
-rw-r--r--arch/score/include/asm/Kbuild1
-rw-r--r--arch/score/include/asm/dma-mapping.h6
-rw-r--r--arch/unicore32/boot/compressed/Makefile2
-rw-r--r--drivers/input/keyboard/cros_ec_keyb.c54
-rw-r--r--drivers/media/platform/Kconfig2
-rw-r--r--drivers/parport/Kconfig4
-rw-r--r--drivers/staging/media/solo6x10/Kconfig3
-rw-r--r--drivers/usb/misc/sisusbvga/Kconfig1
-rw-r--r--drivers/video/console/Kconfig116
-rw-r--r--drivers/video/console/Makefile32
-rw-r--r--lib/Kconfig2
-rw-r--r--lib/Makefile2
-rw-r--r--lib/fonts/Kconfig117
-rw-r--r--lib/fonts/Makefile18
-rw-r--r--lib/fonts/font_10x18.c (renamed from drivers/video/console/font_10x18.c)0
-rw-r--r--lib/fonts/font_6x11.c (renamed from drivers/video/console/font_6x11.c)0
-rw-r--r--lib/fonts/font_7x14.c (renamed from drivers/video/console/font_7x14.c)0
-rw-r--r--lib/fonts/font_8x16.c (renamed from drivers/video/console/font_8x16.c)0
-rw-r--r--lib/fonts/font_8x8.c (renamed from drivers/video/console/font_8x8.c)0
-rw-r--r--lib/fonts/font_acorn_8x8.c (renamed from drivers/video/console/font_acorn_8x8.c)0
-rw-r--r--lib/fonts/font_mini_4x6.c (renamed from drivers/video/console/font_mini_4x6.c)0
-rw-r--r--lib/fonts/font_pearl_8x8.c (renamed from drivers/video/console/font_pearl_8x8.c)0
-rw-r--r--lib/fonts/font_sun12x22.c (renamed from drivers/video/console/font_sun12x22.c)0
-rw-r--r--lib/fonts/font_sun8x16.c (renamed from drivers/video/console/font_sun8x16.c)0
-rw-r--r--lib/fonts/fonts.c (renamed from drivers/video/console/fonts.c)2
58 files changed, 927 insertions, 1419 deletions
diff --git a/Documentation/DocBook/device-drivers.tmpl b/Documentation/DocBook/device-drivers.tmpl
index c36892c072da..fca34192cf80 100644
--- a/Documentation/DocBook/device-drivers.tmpl
+++ b/Documentation/DocBook/device-drivers.tmpl
@@ -297,10 +297,10 @@ KAO -->
297 </sect1> 297 </sect1>
298 <sect1><title>Frame Buffer Fonts</title> 298 <sect1><title>Frame Buffer Fonts</title>
299 <para> 299 <para>
300 Refer to the file drivers/video/console/fonts.c for more information. 300 Refer to the file lib/fonts/fonts.c for more information.
301 </para> 301 </para>
302<!-- FIXME: Removed for now since no structured comments in source 302<!-- FIXME: Removed for now since no structured comments in source
303X!Idrivers/video/console/fonts.c 303X!Ilib/fonts/fonts.c
304--> 304-->
305 </sect1> 305 </sect1>
306 </chapter> 306 </chapter>
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 120b83bfde20..48d0a44270bd 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -27,7 +27,7 @@ OBJS += misc.o decompress.o
27ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y) 27ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y)
28OBJS += debug.o 28OBJS += debug.o
29endif 29endif
30FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c 30FONTC = $(srctree)/lib/fonts/font_acorn_8x8.c
31 31
32# string library code (-Os is enforced to keep it much smaller) 32# string library code (-Os is enforced to keep it much smaller)
33OBJS += string.o 33OBJS += string.o
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
index 7c2f6685bf43..7f8759a8a92a 100644
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -1060,7 +1060,9 @@ struct platform_device *__init at32_add_device_usart(unsigned int id)
1060 1060
1061void __init at32_setup_serial_console(unsigned int usart_id) 1061void __init at32_setup_serial_console(unsigned int usart_id)
1062{ 1062{
1063#ifdef CONFIG_SERIAL_ATMEL
1063 atmel_default_console_device = at32_usarts[usart_id]; 1064 atmel_default_console_device = at32_usarts[usart_id];
1065#endif
1064} 1066}
1065 1067
1066/* -------------------------------------------------------------------- 1068/* --------------------------------------------------------------------
diff --git a/arch/c6x/include/asm/Kbuild b/arch/c6x/include/asm/Kbuild
index 4258b088aa93..e49f918531ad 100644
--- a/arch/c6x/include/asm/Kbuild
+++ b/arch/c6x/include/asm/Kbuild
@@ -55,3 +55,4 @@ generic-y += types.h
55generic-y += ucontext.h 55generic-y += ucontext.h
56generic-y += user.h 56generic-y += user.h
57generic-y += vga.h 57generic-y += vga.h
58generic-y += xor.h
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 8769a9045a54..9f3c54360e78 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -637,40 +637,10 @@ endchoice
637 637
638endmenu 638endmenu
639 639
640source "drivers/base/Kconfig" 640source "drivers/Kconfig"
641
642# standard linux drivers
643source "drivers/mtd/Kconfig"
644
645source "drivers/parport/Kconfig"
646
647source "drivers/pnp/Kconfig"
648
649source "drivers/block/Kconfig"
650
651source "drivers/ide/Kconfig"
652
653source "drivers/net/Kconfig"
654
655source "drivers/i2c/Kconfig"
656
657source "drivers/rtc/Kconfig"
658
659#
660# input before char - char/joystick depends on it. As does USB.
661#
662source "drivers/input/Kconfig"
663
664source "drivers/char/Kconfig"
665 641
666source "fs/Kconfig" 642source "fs/Kconfig"
667 643
668source "drivers/usb/Kconfig"
669
670source "drivers/uwb/Kconfig"
671
672source "drivers/staging/Kconfig"
673
674source "arch/cris/Kconfig.debug" 644source "arch/cris/Kconfig.debug"
675 645
676source "security/Kconfig" 646source "security/Kconfig"
diff --git a/arch/cris/arch-v10/kernel/kgdb.c b/arch/cris/arch-v10/kernel/kgdb.c
index 37e6d2c50b76..22d846bfc570 100644
--- a/arch/cris/arch-v10/kernel/kgdb.c
+++ b/arch/cris/arch-v10/kernel/kgdb.c
@@ -230,46 +230,6 @@ struct register_image
230 unsigned int usp; /* 0x66 User mode stack pointer */ 230 unsigned int usp; /* 0x66 User mode stack pointer */
231} registers; 231} registers;
232 232
233/************** Prototypes for local library functions ***********************/
234
235/* Copy of strcpy from libc. */
236static char *gdb_cris_strcpy (char *s1, const char *s2);
237
238/* Copy of strlen from libc. */
239static int gdb_cris_strlen (const char *s);
240
241/* Copy of memchr from libc. */
242static void *gdb_cris_memchr (const void *s, int c, int n);
243
244/* Copy of strtol from libc. Does only support base 16. */
245static int gdb_cris_strtol (const char *s, char **endptr, int base);
246
247/********************** Prototypes for local functions. **********************/
248/* Copy the content of a register image into another. The size n is
249 the size of the register image. Due to struct assignment generation of
250 memcpy in libc. */
251static void copy_registers (registers *dptr, registers *sptr, int n);
252
253/* Copy the stored registers from the stack. Put the register contents
254 of thread thread_id in the struct reg. */
255static void copy_registers_from_stack (int thread_id, registers *reg);
256
257/* Copy the registers to the stack. Put the register contents of thread
258 thread_id from struct reg to the stack. */
259static void copy_registers_to_stack (int thread_id, registers *reg);
260
261/* Write a value to a specified register regno in the register image
262 of the current thread. */
263static int write_register (int regno, char *val);
264
265/* Write a value to a specified register in the stack of a thread other
266 than the current thread. */
267static int write_stack_register(int thread_id, int regno, char *valptr);
268
269/* Read a value from a specified register in the register image. Returns the
270 status of the read operation. The register value is returned in valptr. */
271static int read_register (char regno, unsigned int *valptr);
272
273/* Serial port, reads one character. ETRAX 100 specific. from debugport.c */ 233/* Serial port, reads one character. ETRAX 100 specific. from debugport.c */
274int getDebugChar (void); 234int getDebugChar (void);
275 235
@@ -278,42 +238,6 @@ void putDebugChar (int val);
278 238
279void enableDebugIRQ (void); 239void enableDebugIRQ (void);
280 240
281/* Returns the integer equivalent of a hexadecimal character. */
282static int hex (char ch);
283
284/* Convert the memory, pointed to by mem into hexadecimal representation.
285 Put the result in buf, and return a pointer to the last character
286 in buf (null). */
287static char *mem2hex (char *buf, unsigned char *mem, int count);
288
289/* Convert the array, in hexadecimal representation, pointed to by buf into
290 binary representation. Put the result in mem, and return a pointer to
291 the character after the last byte written. */
292static unsigned char *hex2mem (unsigned char *mem, char *buf, int count);
293
294/* Put the content of the array, in binary representation, pointed to by buf
295 into memory pointed to by mem, and return a pointer to
296 the character after the last byte written. */
297static unsigned char *bin2mem (unsigned char *mem, unsigned char *buf, int count);
298
299/* Await the sequence $<data>#<checksum> and store <data> in the array buffer
300 returned. */
301static void getpacket (char *buffer);
302
303/* Send $<data>#<checksum> from the <data> in the array buffer. */
304static void putpacket (char *buffer);
305
306/* Build and send a response packet in order to inform the host the
307 stub is stopped. */
308static void stub_is_stopped (int sigval);
309
310/* All expected commands are sent from remote.c. Send a response according
311 to the description in remote.c. */
312static void handle_exception (int sigval);
313
314/* Performs a complete re-start from scratch. ETRAX specific. */
315static void kill_restart (void);
316
317/******************** Prototypes for global functions. ***********************/ 241/******************** Prototypes for global functions. ***********************/
318 242
319/* The string str is prepended with the GDB printout token and sent. */ 243/* The string str is prepended with the GDB printout token and sent. */
@@ -336,10 +260,6 @@ extern unsigned char executing_task;
336/* The number of characters used for a 64 bit thread identifier. */ 260/* The number of characters used for a 64 bit thread identifier. */
337#define HEXCHARS_IN_THREAD_ID 16 261#define HEXCHARS_IN_THREAD_ID 16
338 262
339/* Avoid warning as the internal_stack is not used in the C-code. */
340#define USEDVAR(name) { if (name) { ; } }
341#define USEDFUN(name) { void (*pf)(void) = (void *)name; USEDVAR(pf) }
342
343/********************************** Packet I/O ******************************/ 263/********************************** Packet I/O ******************************/
344/* BUFMAX defines the maximum number of characters in 264/* BUFMAX defines the maximum number of characters in
345 inbound/outbound buffers */ 265 inbound/outbound buffers */
@@ -405,7 +325,7 @@ static int register_size[] =
405 325
406/* Contains the register image of the executing thread in the assembler 326/* Contains the register image of the executing thread in the assembler
407 part of the code in order to avoid horrible addressing modes. */ 327 part of the code in order to avoid horrible addressing modes. */
408static registers reg; 328registers cris_reg;
409 329
410/* FIXME: Should this be used? Delete otherwise. */ 330/* FIXME: Should this be used? Delete otherwise. */
411/* Contains the assumed consistency state of the register image. Uses the 331/* Contains the assumed consistency state of the register image. Uses the
@@ -413,7 +333,7 @@ static registers reg;
413static int consistency_status = SUCCESS; 333static int consistency_status = SUCCESS;
414 334
415/********************************** Handle exceptions ************************/ 335/********************************** Handle exceptions ************************/
416/* The variable reg contains the register image associated with the 336/* The variable cris_reg contains the register image associated with the
417 current_thread_c variable. It is a complete register image created at 337 current_thread_c variable. It is a complete register image created at
418 entry. The reg_g contains a register image of a task where the general 338 entry. The reg_g contains a register image of a task where the general
419 registers are taken from the stack and all special registers are taken 339 registers are taken from the stack and all special registers are taken
@@ -421,18 +341,10 @@ static int consistency_status = SUCCESS;
421 in order to provide access mainly for 'g', 'G' and 'P'. 341 in order to provide access mainly for 'g', 'G' and 'P'.
422*/ 342*/
423 343
424/* Need two task id pointers in order to handle Hct and Hgt commands. */
425static int current_thread_c = 0;
426static int current_thread_g = 0;
427
428/* Need two register images in order to handle Hct and Hgt commands. The
429 variable reg_g is in addition to reg above. */
430static registers reg_g;
431
432/********************************** Breakpoint *******************************/ 344/********************************** Breakpoint *******************************/
433/* Use an internal stack in the breakpoint and interrupt response routines */ 345/* Use an internal stack in the breakpoint and interrupt response routines */
434#define INTERNAL_STACK_SIZE 1024 346#define INTERNAL_STACK_SIZE 1024
435static char internal_stack[INTERNAL_STACK_SIZE]; 347char internal_stack[INTERNAL_STACK_SIZE];
436 348
437/* Due to the breakpoint return pointer, a state variable is needed to keep 349/* Due to the breakpoint return pointer, a state variable is needed to keep
438 track of whether it is a static (compiled) or dynamic (gdb-invoked) 350 track of whether it is a static (compiled) or dynamic (gdb-invoked)
@@ -500,164 +412,6 @@ gdb_cris_strtol (const char *s, char **endptr, int base)
500 return x; 412 return x;
501} 413}
502 414
503/********************************* Register image ****************************/
504/* Copy the content of a register image into another. The size n is
505 the size of the register image. Due to struct assignment generation of
506 memcpy in libc. */
507static void
508copy_registers (registers *dptr, registers *sptr, int n)
509{
510 unsigned char *dreg;
511 unsigned char *sreg;
512
513 for (dreg = (unsigned char*)dptr, sreg = (unsigned char*)sptr; n > 0; n--)
514 *dreg++ = *sreg++;
515}
516
517#ifdef PROCESS_SUPPORT
518/* Copy the stored registers from the stack. Put the register contents
519 of thread thread_id in the struct reg. */
520static void
521copy_registers_from_stack (int thread_id, registers *regptr)
522{
523 int j;
524 stack_registers *s = (stack_registers *)stack_list[thread_id];
525 unsigned int *d = (unsigned int *)regptr;
526
527 for (j = 13; j >= 0; j--)
528 *d++ = s->r[j];
529 regptr->sp = (unsigned int)stack_list[thread_id];
530 regptr->pc = s->pc;
531 regptr->dccr = s->dccr;
532 regptr->srp = s->srp;
533}
534
535/* Copy the registers to the stack. Put the register contents of thread
536 thread_id from struct reg to the stack. */
537static void
538copy_registers_to_stack (int thread_id, registers *regptr)
539{
540 int i;
541 stack_registers *d = (stack_registers *)stack_list[thread_id];
542 unsigned int *s = (unsigned int *)regptr;
543
544 for (i = 0; i < 14; i++) {
545 d->r[i] = *s++;
546 }
547 d->pc = regptr->pc;
548 d->dccr = regptr->dccr;
549 d->srp = regptr->srp;
550}
551#endif
552
553/* Write a value to a specified register in the register image of the current
554 thread. Returns status code SUCCESS, E02 or E05. */
555static int
556write_register (int regno, char *val)
557{
558 int status = SUCCESS;
559 registers *current_reg = &reg;
560
561 if (regno >= R0 && regno <= PC) {
562 /* 32-bit register with simple offset. */
563 hex2mem ((unsigned char *)current_reg + regno * sizeof(unsigned int),
564 val, sizeof(unsigned int));
565 }
566 else if (regno == P0 || regno == VR || regno == P4 || regno == P8) {
567 /* Do not support read-only registers. */
568 status = E02;
569 }
570 else if (regno == CCR) {
571 /* 16 bit register with complex offset. (P4 is read-only, P6 is not implemented,
572 and P7 (MOF) is 32 bits in ETRAX 100LX. */
573 hex2mem ((unsigned char *)&(current_reg->ccr) + (regno-CCR) * sizeof(unsigned short),
574 val, sizeof(unsigned short));
575 }
576 else if (regno >= MOF && regno <= USP) {
577 /* 32 bit register with complex offset. (P8 has been taken care of.) */
578 hex2mem ((unsigned char *)&(current_reg->ibr) + (regno-IBR) * sizeof(unsigned int),
579 val, sizeof(unsigned int));
580 }
581 else {
582 /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */
583 status = E05;
584 }
585 return status;
586}
587
588#ifdef PROCESS_SUPPORT
589/* Write a value to a specified register in the stack of a thread other
590 than the current thread. Returns status code SUCCESS or E07. */
591static int
592write_stack_register (int thread_id, int regno, char *valptr)
593{
594 int status = SUCCESS;
595 stack_registers *d = (stack_registers *)stack_list[thread_id];
596 unsigned int val;
597
598 hex2mem ((unsigned char *)&val, valptr, sizeof(unsigned int));
599 if (regno >= R0 && regno < SP) {
600 d->r[regno] = val;
601 }
602 else if (regno == SP) {
603 stack_list[thread_id] = val;
604 }
605 else if (regno == PC) {
606 d->pc = val;
607 }
608 else if (regno == SRP) {
609 d->srp = val;
610 }
611 else if (regno == DCCR) {
612 d->dccr = val;
613 }
614 else {
615 /* Do not support registers in the current thread. */
616 status = E07;
617 }
618 return status;
619}
620#endif
621
622/* Read a value from a specified register in the register image. Returns the
623 value in the register or -1 for non-implemented registers.
624 Should check consistency_status after a call which may be E05 after changes
625 in the implementation. */
626static int
627read_register (char regno, unsigned int *valptr)
628{
629 registers *current_reg = &reg;
630
631 if (regno >= R0 && regno <= PC) {
632 /* 32-bit register with simple offset. */
633 *valptr = *(unsigned int *)((char *)current_reg + regno * sizeof(unsigned int));
634 return SUCCESS;
635 }
636 else if (regno == P0 || regno == VR) {
637 /* 8 bit register with complex offset. */
638 *valptr = (unsigned int)(*(unsigned char *)
639 ((char *)&(current_reg->p0) + (regno-P0) * sizeof(char)));
640 return SUCCESS;
641 }
642 else if (regno == P4 || regno == CCR) {
643 /* 16 bit register with complex offset. */
644 *valptr = (unsigned int)(*(unsigned short *)
645 ((char *)&(current_reg->p4) + (regno-P4) * sizeof(unsigned short)));
646 return SUCCESS;
647 }
648 else if (regno >= MOF && regno <= USP) {
649 /* 32 bit register with complex offset. */
650 *valptr = *(unsigned int *)((char *)&(current_reg->p8)
651 + (regno-P8) * sizeof(unsigned int));
652 return SUCCESS;
653 }
654 else {
655 /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */
656 consistency_status = E05;
657 return E05;
658 }
659}
660
661/********************************** Packet I/O ******************************/ 415/********************************** Packet I/O ******************************/
662/* Returns the integer equivalent of a hexadecimal character. */ 416/* Returns the integer equivalent of a hexadecimal character. */
663static int 417static int
@@ -676,8 +430,6 @@ hex (char ch)
676 Put the result in buf, and return a pointer to the last character 430 Put the result in buf, and return a pointer to the last character
677 in buf (null). */ 431 in buf (null). */
678 432
679static int do_printk = 0;
680
681static char * 433static char *
682mem2hex(char *buf, unsigned char *mem, int count) 434mem2hex(char *buf, unsigned char *mem, int count)
683{ 435{
@@ -761,7 +513,7 @@ getpacket (char *buffer)
761 xmitcsum = -1; 513 xmitcsum = -1;
762 count = 0; 514 count = 0;
763 /* Read until a # or the end of the buffer is reached */ 515 /* Read until a # or the end of the buffer is reached */
764 while (count < BUFMAX) { 516 while (count < BUFMAX - 1) {
765 ch = getDebugChar (); 517 ch = getDebugChar ();
766 if (ch == '#') 518 if (ch == '#')
767 break; 519 break;
@@ -845,6 +597,81 @@ putDebugString (const unsigned char *str, int length)
845 putpacket(remcomOutBuffer); 597 putpacket(remcomOutBuffer);
846} 598}
847 599
600/********************************* Register image ****************************/
601/* Write a value to a specified register in the register image of the current
602 thread. Returns status code SUCCESS, E02 or E05. */
603static int
604write_register (int regno, char *val)
605{
606 int status = SUCCESS;
607 registers *current_reg = &cris_reg;
608
609 if (regno >= R0 && regno <= PC) {
610 /* 32-bit register with simple offset. */
611 hex2mem ((unsigned char *)current_reg + regno * sizeof(unsigned int),
612 val, sizeof(unsigned int));
613 }
614 else if (regno == P0 || regno == VR || regno == P4 || regno == P8) {
615 /* Do not support read-only registers. */
616 status = E02;
617 }
618 else if (regno == CCR) {
619 /* 16 bit register with complex offset. (P4 is read-only, P6 is not implemented,
620 and P7 (MOF) is 32 bits in ETRAX 100LX. */
621 hex2mem ((unsigned char *)&(current_reg->ccr) + (regno-CCR) * sizeof(unsigned short),
622 val, sizeof(unsigned short));
623 }
624 else if (regno >= MOF && regno <= USP) {
625 /* 32 bit register with complex offset. (P8 has been taken care of.) */
626 hex2mem ((unsigned char *)&(current_reg->ibr) + (regno-IBR) * sizeof(unsigned int),
627 val, sizeof(unsigned int));
628 }
629 else {
630 /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */
631 status = E05;
632 }
633 return status;
634}
635
636/* Read a value from a specified register in the register image. Returns the
637 value in the register or -1 for non-implemented registers.
638 Should check consistency_status after a call which may be E05 after changes
639 in the implementation. */
640static int
641read_register (char regno, unsigned int *valptr)
642{
643 registers *current_reg = &cris_reg;
644
645 if (regno >= R0 && regno <= PC) {
646 /* 32-bit register with simple offset. */
647 *valptr = *(unsigned int *)((char *)current_reg + regno * sizeof(unsigned int));
648 return SUCCESS;
649 }
650 else if (regno == P0 || regno == VR) {
651 /* 8 bit register with complex offset. */
652 *valptr = (unsigned int)(*(unsigned char *)
653 ((char *)&(current_reg->p0) + (regno-P0) * sizeof(char)));
654 return SUCCESS;
655 }
656 else if (regno == P4 || regno == CCR) {
657 /* 16 bit register with complex offset. */
658 *valptr = (unsigned int)(*(unsigned short *)
659 ((char *)&(current_reg->p4) + (regno-P4) * sizeof(unsigned short)));
660 return SUCCESS;
661 }
662 else if (regno >= MOF && regno <= USP) {
663 /* 32 bit register with complex offset. */
664 *valptr = *(unsigned int *)((char *)&(current_reg->p8)
665 + (regno-P8) * sizeof(unsigned int));
666 return SUCCESS;
667 }
668 else {
669 /* Do not support nonexisting or unimplemented registers (P2, P3, and P6). */
670 consistency_status = E05;
671 return E05;
672 }
673}
674
848/********************************** Handle exceptions ************************/ 675/********************************** Handle exceptions ************************/
849/* Build and send a response packet in order to inform the host the 676/* Build and send a response packet in order to inform the host the
850 stub is stopped. TAAn...:r...;n...:r...;n...:r...; 677 stub is stopped. TAAn...:r...;n...:r...;n...:r...;
@@ -891,26 +718,6 @@ stub_is_stopped(int sigval)
891 718
892 } 719 }
893 720
894#ifdef PROCESS_SUPPORT
895 /* Store the registers of the executing thread. Assume that both step,
896 continue, and register content requests are with respect to this
897 thread. The executing task is from the operating system scheduler. */
898
899 current_thread_c = executing_task;
900 current_thread_g = executing_task;
901
902 /* A struct assignment translates into a libc memcpy call. Avoid
903 all libc functions in order to prevent recursive break points. */
904 copy_registers (&reg_g, &reg, sizeof(registers));
905
906 /* Store thread:r...; with the executing task TID. */
907 gdb_cris_strcpy (&remcomOutBuffer[pos], "thread:");
908 pos += gdb_cris_strlen ("thread:");
909 remcomOutBuffer[pos++] = hex_asc_hi(executing_task);
910 remcomOutBuffer[pos++] = hex_asc_lo(executing_task);
911 gdb_cris_strcpy (&remcomOutBuffer[pos], ";");
912#endif
913
914 /* null-terminate and send it off */ 721 /* null-terminate and send it off */
915 722
916 *ptr = 0; 723 *ptr = 0;
@@ -918,16 +725,18 @@ stub_is_stopped(int sigval)
918 putpacket (remcomOutBuffer); 725 putpacket (remcomOutBuffer);
919} 726}
920 727
728/* Performs a complete re-start from scratch. */
729static void
730kill_restart (void)
731{
732 machine_restart("");
733}
734
921/* All expected commands are sent from remote.c. Send a response according 735/* All expected commands are sent from remote.c. Send a response according
922 to the description in remote.c. */ 736 to the description in remote.c. */
923static void 737void
924handle_exception (int sigval) 738handle_exception (int sigval)
925{ 739{
926 /* Avoid warning of not used. */
927
928 USEDFUN(handle_exception);
929 USEDVAR(internal_stack[0]);
930
931 /* Send response. */ 740 /* Send response. */
932 741
933 stub_is_stopped (sigval); 742 stub_is_stopped (sigval);
@@ -943,19 +752,7 @@ handle_exception (int sigval)
943 in a register are in the same order the machine uses. 752 in a register are in the same order the machine uses.
944 Failure: void. */ 753 Failure: void. */
945 754
946 { 755 mem2hex(remcomOutBuffer, (char *)&cris_reg, sizeof(registers));
947#ifdef PROCESS_SUPPORT
948 /* Use the special register content in the executing thread. */
949 copy_registers (&reg_g, &reg, sizeof(registers));
950 /* Replace the content available on the stack. */
951 if (current_thread_g != executing_task) {
952 copy_registers_from_stack (current_thread_g, &reg_g);
953 }
954 mem2hex ((unsigned char *)remcomOutBuffer, (unsigned char *)&reg_g, sizeof(registers));
955#else
956 mem2hex(remcomOutBuffer, (char *)&reg, sizeof(registers));
957#endif
958 }
959 break; 756 break;
960 757
961 case 'G': 758 case 'G':
@@ -963,17 +760,7 @@ handle_exception (int sigval)
963 Each byte of register data is described by two hex digits. 760 Each byte of register data is described by two hex digits.
964 Success: OK 761 Success: OK
965 Failure: void. */ 762 Failure: void. */
966#ifdef PROCESS_SUPPORT 763 hex2mem((char *)&cris_reg, &remcomInBuffer[1], sizeof(registers));
967 hex2mem ((unsigned char *)&reg_g, &remcomInBuffer[1], sizeof(registers));
968 if (current_thread_g == executing_task) {
969 copy_registers (&reg, &reg_g, sizeof(registers));
970 }
971 else {
972 copy_registers_to_stack(current_thread_g, &reg_g);
973 }
974#else
975 hex2mem((char *)&reg, &remcomInBuffer[1], sizeof(registers));
976#endif
977 gdb_cris_strcpy (remcomOutBuffer, "OK"); 764 gdb_cris_strcpy (remcomOutBuffer, "OK");
978 break; 765 break;
979 766
@@ -989,12 +776,7 @@ handle_exception (int sigval)
989 char *suffix; 776 char *suffix;
990 int regno = gdb_cris_strtol (&remcomInBuffer[1], &suffix, 16); 777 int regno = gdb_cris_strtol (&remcomInBuffer[1], &suffix, 16);
991 int status; 778 int status;
992#ifdef PROCESS_SUPPORT 779 status = write_register (regno, suffix+1);
993 if (current_thread_g != executing_task)
994 status = write_stack_register (current_thread_g, regno, suffix+1);
995 else
996#endif
997 status = write_register (regno, suffix+1);
998 780
999 switch (status) { 781 switch (status) {
1000 case E02: 782 case E02:
@@ -1073,7 +855,7 @@ handle_exception (int sigval)
1073 Success: return to the executing thread. 855 Success: return to the executing thread.
1074 Failure: will never know. */ 856 Failure: will never know. */
1075 if (remcomInBuffer[1] != '\0') { 857 if (remcomInBuffer[1] != '\0') {
1076 reg.pc = gdb_cris_strtol (&remcomInBuffer[1], 0, 16); 858 cris_reg.pc = gdb_cris_strtol (&remcomInBuffer[1], 0, 16);
1077 } 859 }
1078 enableDebugIRQ(); 860 enableDebugIRQ();
1079 return; 861 return;
@@ -1129,119 +911,6 @@ handle_exception (int sigval)
1129 Not supported: E04 */ 911 Not supported: E04 */
1130 gdb_cris_strcpy (remcomOutBuffer, error_message[E04]); 912 gdb_cris_strcpy (remcomOutBuffer, error_message[E04]);
1131 break; 913 break;
1132#ifdef PROCESS_SUPPORT
1133
1134 case 'T':
1135 /* Thread alive. TXX
1136 Is thread XX alive?
1137 Success: OK, thread XX is alive.
1138 Failure: E03, thread XX is dead. */
1139 {
1140 int thread_id = (int)gdb_cris_strtol (&remcomInBuffer[1], 0, 16);
1141 /* Cannot tell whether it is alive or not. */
1142 if (thread_id >= 0 && thread_id < number_of_tasks)
1143 gdb_cris_strcpy (remcomOutBuffer, "OK");
1144 }
1145 break;
1146
1147 case 'H':
1148 /* Set thread for subsequent operations: Hct
1149 c = 'c' for thread used in step and continue;
1150 t can be -1 for all threads.
1151 c = 'g' for thread used in other operations.
1152 t = 0 means pick any thread.
1153 Success: OK
1154 Failure: E01 */
1155 {
1156 int thread_id = gdb_cris_strtol (&remcomInBuffer[2], 0, 16);
1157 if (remcomInBuffer[1] == 'c') {
1158 /* c = 'c' for thread used in step and continue */
1159 /* Do not change current_thread_c here. It would create a mess in
1160 the scheduler. */
1161 gdb_cris_strcpy (remcomOutBuffer, "OK");
1162 }
1163 else if (remcomInBuffer[1] == 'g') {
1164 /* c = 'g' for thread used in other operations.
1165 t = 0 means pick any thread. Impossible since the scheduler does
1166 not allow that. */
1167 if (thread_id >= 0 && thread_id < number_of_tasks) {
1168 current_thread_g = thread_id;
1169 gdb_cris_strcpy (remcomOutBuffer, "OK");
1170 }
1171 else {
1172 /* Not expected - send an error message. */
1173 gdb_cris_strcpy (remcomOutBuffer, error_message[E01]);
1174 }
1175 }
1176 else {
1177 /* Not expected - send an error message. */
1178 gdb_cris_strcpy (remcomOutBuffer, error_message[E01]);
1179 }
1180 }
1181 break;
1182
1183 case 'q':
1184 case 'Q':
1185 /* Query of general interest. qXXXX
1186 Set general value XXXX. QXXXX=yyyy */
1187 {
1188 int pos;
1189 int nextpos;
1190 int thread_id;
1191
1192 switch (remcomInBuffer[1]) {
1193 case 'C':
1194 /* Identify the remote current thread. */
1195 gdb_cris_strcpy (&remcomOutBuffer[0], "QC");
1196 remcomOutBuffer[2] = hex_asc_hi(current_thread_c);
1197 remcomOutBuffer[3] = hex_asc_lo(current_thread_c);
1198 remcomOutBuffer[4] = '\0';
1199 break;
1200 case 'L':
1201 gdb_cris_strcpy (&remcomOutBuffer[0], "QM");
1202 /* Reply with number of threads. */
1203 if (os_is_started()) {
1204 remcomOutBuffer[2] = hex_asc_hi(number_of_tasks);
1205 remcomOutBuffer[3] = hex_asc_lo(number_of_tasks);
1206 }
1207 else {
1208 remcomOutBuffer[2] = hex_asc_hi(0);
1209 remcomOutBuffer[3] = hex_asc_lo(1);
1210 }
1211 /* Done with the reply. */
1212 remcomOutBuffer[4] = hex_asc_lo(1);
1213 pos = 5;
1214 /* Expects the argument thread id. */
1215 for (; pos < (5 + HEXCHARS_IN_THREAD_ID); pos++)
1216 remcomOutBuffer[pos] = remcomInBuffer[pos];
1217 /* Reply with the thread identifiers. */
1218 if (os_is_started()) {
1219 /* Store the thread identifiers of all tasks. */
1220 for (thread_id = 0; thread_id < number_of_tasks; thread_id++) {
1221 nextpos = pos + HEXCHARS_IN_THREAD_ID - 1;
1222 for (; pos < nextpos; pos ++)
1223 remcomOutBuffer[pos] = hex_asc_lo(0);
1224 remcomOutBuffer[pos++] = hex_asc_lo(thread_id);
1225 }
1226 }
1227 else {
1228 /* Store the thread identifier of the boot task. */
1229 nextpos = pos + HEXCHARS_IN_THREAD_ID - 1;
1230 for (; pos < nextpos; pos ++)
1231 remcomOutBuffer[pos] = hex_asc_lo(0);
1232 remcomOutBuffer[pos++] = hex_asc_lo(current_thread_c);
1233 }
1234 remcomOutBuffer[pos] = '\0';
1235 break;
1236 default:
1237 /* Not supported: "" */
1238 /* Request information about section offsets: qOffsets. */
1239 remcomOutBuffer[0] = 0;
1240 break;
1241 }
1242 }
1243 break;
1244#endif /* PROCESS_SUPPORT */
1245 914
1246 default: 915 default:
1247 /* The stub should ignore other request and send an empty 916 /* The stub should ignore other request and send an empty
@@ -1254,13 +923,6 @@ handle_exception (int sigval)
1254 } 923 }
1255} 924}
1256 925
1257/* Performs a complete re-start from scratch. */
1258static void
1259kill_restart ()
1260{
1261 machine_restart("");
1262}
1263
1264/********************************** Breakpoint *******************************/ 926/********************************** Breakpoint *******************************/
1265/* The hook for both a static (compiled) and a dynamic breakpoint set by GDB. 927/* The hook for both a static (compiled) and a dynamic breakpoint set by GDB.
1266 An internal stack is used by the stub. The register image of the caller is 928 An internal stack is used by the stub. The register image of the caller is
@@ -1270,93 +932,93 @@ kill_restart ()
1270 932
1271void kgdb_handle_breakpoint(void); 933void kgdb_handle_breakpoint(void);
1272 934
1273asm (" 935asm ("\n"
1274 .global kgdb_handle_breakpoint 936" .global kgdb_handle_breakpoint\n"
1275kgdb_handle_breakpoint: 937"kgdb_handle_breakpoint:\n"
1276;; 938";;\n"
1277;; Response to the break-instruction 939";; Response to the break-instruction\n"
1278;; 940";;\n"
1279;; Create a register image of the caller 941";; Create a register image of the caller\n"
1280;; 942";;\n"
1281 move $dccr,[reg+0x5E] ; Save the flags in DCCR before disable interrupts 943" move $dccr,[cris_reg+0x5E] ; Save the flags in DCCR before disable interrupts\n"
1282 di ; Disable interrupts 944" di ; Disable interrupts\n"
1283 move.d $r0,[reg] ; Save R0 945" move.d $r0,[cris_reg] ; Save R0\n"
1284 move.d $r1,[reg+0x04] ; Save R1 946" move.d $r1,[cris_reg+0x04] ; Save R1\n"
1285 move.d $r2,[reg+0x08] ; Save R2 947" move.d $r2,[cris_reg+0x08] ; Save R2\n"
1286 move.d $r3,[reg+0x0C] ; Save R3 948" move.d $r3,[cris_reg+0x0C] ; Save R3\n"
1287 move.d $r4,[reg+0x10] ; Save R4 949" move.d $r4,[cris_reg+0x10] ; Save R4\n"
1288 move.d $r5,[reg+0x14] ; Save R5 950" move.d $r5,[cris_reg+0x14] ; Save R5\n"
1289 move.d $r6,[reg+0x18] ; Save R6 951" move.d $r6,[cris_reg+0x18] ; Save R6\n"
1290 move.d $r7,[reg+0x1C] ; Save R7 952" move.d $r7,[cris_reg+0x1C] ; Save R7\n"
1291 move.d $r8,[reg+0x20] ; Save R8 953" move.d $r8,[cris_reg+0x20] ; Save R8\n"
1292 move.d $r9,[reg+0x24] ; Save R9 954" move.d $r9,[cris_reg+0x24] ; Save R9\n"
1293 move.d $r10,[reg+0x28] ; Save R10 955" move.d $r10,[cris_reg+0x28] ; Save R10\n"
1294 move.d $r11,[reg+0x2C] ; Save R11 956" move.d $r11,[cris_reg+0x2C] ; Save R11\n"
1295 move.d $r12,[reg+0x30] ; Save R12 957" move.d $r12,[cris_reg+0x30] ; Save R12\n"
1296 move.d $r13,[reg+0x34] ; Save R13 958" move.d $r13,[cris_reg+0x34] ; Save R13\n"
1297 move.d $sp,[reg+0x38] ; Save SP (R14) 959" move.d $sp,[cris_reg+0x38] ; Save SP (R14)\n"
1298;; Due to the old assembler-versions BRP might not be recognized 960";; Due to the old assembler-versions BRP might not be recognized\n"
1299 .word 0xE670 ; move brp,$r0 961" .word 0xE670 ; move brp,$r0\n"
1300 subq 2,$r0 ; Set to address of previous instruction. 962" subq 2,$r0 ; Set to address of previous instruction.\n"
1301 move.d $r0,[reg+0x3c] ; Save the address in PC (R15) 963" move.d $r0,[cris_reg+0x3c] ; Save the address in PC (R15)\n"
1302 clear.b [reg+0x40] ; Clear P0 964" clear.b [cris_reg+0x40] ; Clear P0\n"
1303 move $vr,[reg+0x41] ; Save special register P1 965" move $vr,[cris_reg+0x41] ; Save special register P1\n"
1304 clear.w [reg+0x42] ; Clear P4 966" clear.w [cris_reg+0x42] ; Clear P4\n"
1305 move $ccr,[reg+0x44] ; Save special register CCR 967" move $ccr,[cris_reg+0x44] ; Save special register CCR\n"
1306 move $mof,[reg+0x46] ; P7 968" move $mof,[cris_reg+0x46] ; P7\n"
1307 clear.d [reg+0x4A] ; Clear P8 969" clear.d [cris_reg+0x4A] ; Clear P8\n"
1308 move $ibr,[reg+0x4E] ; P9, 970" move $ibr,[cris_reg+0x4E] ; P9,\n"
1309 move $irp,[reg+0x52] ; P10, 971" move $irp,[cris_reg+0x52] ; P10,\n"
1310 move $srp,[reg+0x56] ; P11, 972" move $srp,[cris_reg+0x56] ; P11,\n"
1311 move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR 973" move $dtp0,[cris_reg+0x5A] ; P12, register BAR, assembler might not know BAR\n"
1312 ; P13, register DCCR already saved 974" ; P13, register DCCR already saved\n"
1313;; Due to the old assembler-versions BRP might not be recognized 975";; Due to the old assembler-versions BRP might not be recognized\n"
1314 .word 0xE670 ; move brp,r0 976" .word 0xE670 ; move brp,r0\n"
1315;; Static (compiled) breakpoints must return to the next instruction in order 977";; Static (compiled) breakpoints must return to the next instruction in order\n"
1316;; to avoid infinite loops. Dynamic (gdb-invoked) must restore the instruction 978";; to avoid infinite loops. Dynamic (gdb-invoked) must restore the instruction\n"
1317;; in order to execute it when execution is continued. 979";; in order to execute it when execution is continued.\n"
1318 test.b [is_dyn_brkp] ; Is this a dynamic breakpoint? 980" test.b [is_dyn_brkp] ; Is this a dynamic breakpoint?\n"
1319 beq is_static ; No, a static breakpoint 981" beq is_static ; No, a static breakpoint\n"
1320 nop 982" nop\n"
1321 subq 2,$r0 ; rerun the instruction the break replaced 983" subq 2,$r0 ; rerun the instruction the break replaced\n"
1322is_static: 984"is_static:\n"
1323 moveq 1,$r1 985" moveq 1,$r1\n"
1324 move.b $r1,[is_dyn_brkp] ; Set the state variable to dynamic breakpoint 986" move.b $r1,[is_dyn_brkp] ; Set the state variable to dynamic breakpoint\n"
1325 move.d $r0,[reg+0x62] ; Save the return address in BRP 987" move.d $r0,[cris_reg+0x62] ; Save the return address in BRP\n"
1326 move $usp,[reg+0x66] ; USP 988" move $usp,[cris_reg+0x66] ; USP\n"
1327;; 989";;\n"
1328;; Handle the communication 990";; Handle the communication\n"
1329;; 991";;\n"
1330 move.d internal_stack+1020,$sp ; Use the internal stack which grows upward 992" move.d internal_stack+1020,$sp ; Use the internal stack which grows upward\n"
1331 moveq 5,$r10 ; SIGTRAP 993" moveq 5,$r10 ; SIGTRAP\n"
1332 jsr handle_exception ; Interactive routine 994" jsr handle_exception ; Interactive routine\n"
1333;; 995";;\n"
1334;; Return to the caller 996";; Return to the caller\n"
1335;; 997";;\n"
1336 move.d [reg],$r0 ; Restore R0 998" move.d [cris_reg],$r0 ; Restore R0\n"
1337 move.d [reg+0x04],$r1 ; Restore R1 999" move.d [cris_reg+0x04],$r1 ; Restore R1\n"
1338 move.d [reg+0x08],$r2 ; Restore R2 1000" move.d [cris_reg+0x08],$r2 ; Restore R2\n"
1339 move.d [reg+0x0C],$r3 ; Restore R3 1001" move.d [cris_reg+0x0C],$r3 ; Restore R3\n"
1340 move.d [reg+0x10],$r4 ; Restore R4 1002" move.d [cris_reg+0x10],$r4 ; Restore R4\n"
1341 move.d [reg+0x14],$r5 ; Restore R5 1003" move.d [cris_reg+0x14],$r5 ; Restore R5\n"
1342 move.d [reg+0x18],$r6 ; Restore R6 1004" move.d [cris_reg+0x18],$r6 ; Restore R6\n"
1343 move.d [reg+0x1C],$r7 ; Restore R7 1005" move.d [cris_reg+0x1C],$r7 ; Restore R7\n"
1344 move.d [reg+0x20],$r8 ; Restore R8 1006" move.d [cris_reg+0x20],$r8 ; Restore R8\n"
1345 move.d [reg+0x24],$r9 ; Restore R9 1007" move.d [cris_reg+0x24],$r9 ; Restore R9\n"
1346 move.d [reg+0x28],$r10 ; Restore R10 1008" move.d [cris_reg+0x28],$r10 ; Restore R10\n"
1347 move.d [reg+0x2C],$r11 ; Restore R11 1009" move.d [cris_reg+0x2C],$r11 ; Restore R11\n"
1348 move.d [reg+0x30],$r12 ; Restore R12 1010" move.d [cris_reg+0x30],$r12 ; Restore R12\n"
1349 move.d [reg+0x34],$r13 ; Restore R13 1011" move.d [cris_reg+0x34],$r13 ; Restore R13\n"
1350;; 1012";;\n"
1351;; FIXME: Which registers should be restored? 1013";; FIXME: Which registers should be restored?\n"
1352;; 1014";;\n"
1353 move.d [reg+0x38],$sp ; Restore SP (R14) 1015" move.d [cris_reg+0x38],$sp ; Restore SP (R14)\n"
1354 move [reg+0x56],$srp ; Restore the subroutine return pointer. 1016" move [cris_reg+0x56],$srp ; Restore the subroutine return pointer.\n"
1355 move [reg+0x5E],$dccr ; Restore DCCR 1017" move [cris_reg+0x5E],$dccr ; Restore DCCR\n"
1356 move [reg+0x66],$usp ; Restore USP 1018" move [cris_reg+0x66],$usp ; Restore USP\n"
1357 jump [reg+0x62] ; A jump to the content in register BRP works. 1019" jump [cris_reg+0x62] ; A jump to the content in register BRP works.\n"
1358 nop ; 1020" nop ;\n"
1359"); 1021"\n");
1360 1022
1361/* The hook for an interrupt generated by GDB. An internal stack is used 1023/* The hook for an interrupt generated by GDB. An internal stack is used
1362 by the stub. The register image of the caller is stored in the structure 1024 by the stub. The register image of the caller is stored in the structure
@@ -1367,94 +1029,94 @@ is_static:
1367 1029
1368void kgdb_handle_serial(void); 1030void kgdb_handle_serial(void);
1369 1031
1370asm (" 1032asm ("\n"
1371 .global kgdb_handle_serial 1033" .global kgdb_handle_serial\n"
1372kgdb_handle_serial: 1034"kgdb_handle_serial:\n"
1373;; 1035";;\n"
1374;; Response to a serial interrupt 1036";; Response to a serial interrupt\n"
1375;; 1037";;\n"
1376 1038"\n"
1377 move $dccr,[reg+0x5E] ; Save the flags in DCCR 1039" move $dccr,[cris_reg+0x5E] ; Save the flags in DCCR\n"
1378 di ; Disable interrupts 1040" di ; Disable interrupts\n"
1379 move.d $r0,[reg] ; Save R0 1041" move.d $r0,[cris_reg] ; Save R0\n"
1380 move.d $r1,[reg+0x04] ; Save R1 1042" move.d $r1,[cris_reg+0x04] ; Save R1\n"
1381 move.d $r2,[reg+0x08] ; Save R2 1043" move.d $r2,[cris_reg+0x08] ; Save R2\n"
1382 move.d $r3,[reg+0x0C] ; Save R3 1044" move.d $r3,[cris_reg+0x0C] ; Save R3\n"
1383 move.d $r4,[reg+0x10] ; Save R4 1045" move.d $r4,[cris_reg+0x10] ; Save R4\n"
1384 move.d $r5,[reg+0x14] ; Save R5 1046" move.d $r5,[cris_reg+0x14] ; Save R5\n"
1385 move.d $r6,[reg+0x18] ; Save R6 1047" move.d $r6,[cris_reg+0x18] ; Save R6\n"
1386 move.d $r7,[reg+0x1C] ; Save R7 1048" move.d $r7,[cris_reg+0x1C] ; Save R7\n"
1387 move.d $r8,[reg+0x20] ; Save R8 1049" move.d $r8,[cris_reg+0x20] ; Save R8\n"
1388 move.d $r9,[reg+0x24] ; Save R9 1050" move.d $r9,[cris_reg+0x24] ; Save R9\n"
1389 move.d $r10,[reg+0x28] ; Save R10 1051" move.d $r10,[cris_reg+0x28] ; Save R10\n"
1390 move.d $r11,[reg+0x2C] ; Save R11 1052" move.d $r11,[cris_reg+0x2C] ; Save R11\n"
1391 move.d $r12,[reg+0x30] ; Save R12 1053" move.d $r12,[cris_reg+0x30] ; Save R12\n"
1392 move.d $r13,[reg+0x34] ; Save R13 1054" move.d $r13,[cris_reg+0x34] ; Save R13\n"
1393 move.d $sp,[reg+0x38] ; Save SP (R14) 1055" move.d $sp,[cris_reg+0x38] ; Save SP (R14)\n"
1394 move $irp,[reg+0x3c] ; Save the address in PC (R15) 1056" move $irp,[cris_reg+0x3c] ; Save the address in PC (R15)\n"
1395 clear.b [reg+0x40] ; Clear P0 1057" clear.b [cris_reg+0x40] ; Clear P0\n"
1396 move $vr,[reg+0x41] ; Save special register P1, 1058" move $vr,[cris_reg+0x41] ; Save special register P1,\n"
1397 clear.w [reg+0x42] ; Clear P4 1059" clear.w [cris_reg+0x42] ; Clear P4\n"
1398 move $ccr,[reg+0x44] ; Save special register CCR 1060" move $ccr,[cris_reg+0x44] ; Save special register CCR\n"
1399 move $mof,[reg+0x46] ; P7 1061" move $mof,[cris_reg+0x46] ; P7\n"
1400 clear.d [reg+0x4A] ; Clear P8 1062" clear.d [cris_reg+0x4A] ; Clear P8\n"
1401 move $ibr,[reg+0x4E] ; P9, 1063" move $ibr,[cris_reg+0x4E] ; P9,\n"
1402 move $irp,[reg+0x52] ; P10, 1064" move $irp,[cris_reg+0x52] ; P10,\n"
1403 move $srp,[reg+0x56] ; P11, 1065" move $srp,[cris_reg+0x56] ; P11,\n"
1404 move $dtp0,[reg+0x5A] ; P12, register BAR, assembler might not know BAR 1066" move $dtp0,[cris_reg+0x5A] ; P12, register BAR, assembler might not know BAR\n"
1405 ; P13, register DCCR already saved 1067" ; P13, register DCCR already saved\n"
1406;; Due to the old assembler-versions BRP might not be recognized 1068";; Due to the old assembler-versions BRP might not be recognized\n"
1407 .word 0xE670 ; move brp,r0 1069" .word 0xE670 ; move brp,r0\n"
1408 move.d $r0,[reg+0x62] ; Save the return address in BRP 1070" move.d $r0,[cris_reg+0x62] ; Save the return address in BRP\n"
1409 move $usp,[reg+0x66] ; USP 1071" move $usp,[cris_reg+0x66] ; USP\n"
1410 1072"\n"
1411;; get the serial character (from debugport.c) and check if it is a ctrl-c 1073";; get the serial character (from debugport.c) and check if it is a ctrl-c\n"
1412 1074"\n"
1413 jsr getDebugChar 1075" jsr getDebugChar\n"
1414 cmp.b 3, $r10 1076" cmp.b 3, $r10\n"
1415 bne goback 1077" bne goback\n"
1416 nop 1078" nop\n"
1417 1079"\n"
1418 move.d [reg+0x5E], $r10 ; Get DCCR 1080" move.d [cris_reg+0x5E], $r10 ; Get DCCR\n"
1419 btstq 8, $r10 ; Test the U-flag. 1081" btstq 8, $r10 ; Test the U-flag.\n"
1420 bmi goback 1082" bmi goback\n"
1421 nop 1083" nop\n"
1422 1084"\n"
1423;; 1085";;\n"
1424;; Handle the communication 1086";; Handle the communication\n"
1425;; 1087";;\n"
1426 move.d internal_stack+1020,$sp ; Use the internal stack 1088" move.d internal_stack+1020,$sp ; Use the internal stack\n"
1427 moveq 2,$r10 ; SIGINT 1089" moveq 2,$r10 ; SIGINT\n"
1428 jsr handle_exception ; Interactive routine 1090" jsr handle_exception ; Interactive routine\n"
1429 1091"\n"
1430goback: 1092"goback:\n"
1431;; 1093";;\n"
1432;; Return to the caller 1094";; Return to the caller\n"
1433;; 1095";;\n"
1434 move.d [reg],$r0 ; Restore R0 1096" move.d [cris_reg],$r0 ; Restore R0\n"
1435 move.d [reg+0x04],$r1 ; Restore R1 1097" move.d [cris_reg+0x04],$r1 ; Restore R1\n"
1436 move.d [reg+0x08],$r2 ; Restore R2 1098" move.d [cris_reg+0x08],$r2 ; Restore R2\n"
1437 move.d [reg+0x0C],$r3 ; Restore R3 1099" move.d [cris_reg+0x0C],$r3 ; Restore R3\n"
1438 move.d [reg+0x10],$r4 ; Restore R4 1100" move.d [cris_reg+0x10],$r4 ; Restore R4\n"
1439 move.d [reg+0x14],$r5 ; Restore R5 1101" move.d [cris_reg+0x14],$r5 ; Restore R5\n"
1440 move.d [reg+0x18],$r6 ; Restore R6 1102" move.d [cris_reg+0x18],$r6 ; Restore R6\n"
1441 move.d [reg+0x1C],$r7 ; Restore R7 1103" move.d [cris_reg+0x1C],$r7 ; Restore R7\n"
1442 move.d [reg+0x20],$r8 ; Restore R8 1104" move.d [cris_reg+0x20],$r8 ; Restore R8\n"
1443 move.d [reg+0x24],$r9 ; Restore R9 1105" move.d [cris_reg+0x24],$r9 ; Restore R9\n"
1444 move.d [reg+0x28],$r10 ; Restore R10 1106" move.d [cris_reg+0x28],$r10 ; Restore R10\n"
1445 move.d [reg+0x2C],$r11 ; Restore R11 1107" move.d [cris_reg+0x2C],$r11 ; Restore R11\n"
1446 move.d [reg+0x30],$r12 ; Restore R12 1108" move.d [cris_reg+0x30],$r12 ; Restore R12\n"
1447 move.d [reg+0x34],$r13 ; Restore R13 1109" move.d [cris_reg+0x34],$r13 ; Restore R13\n"
1448;; 1110";;\n"
1449;; FIXME: Which registers should be restored? 1111";; FIXME: Which registers should be restored?\n"
1450;; 1112";;\n"
1451 move.d [reg+0x38],$sp ; Restore SP (R14) 1113" move.d [cris_reg+0x38],$sp ; Restore SP (R14)\n"
1452 move [reg+0x56],$srp ; Restore the subroutine return pointer. 1114" move [cris_reg+0x56],$srp ; Restore the subroutine return pointer.\n"
1453 move [reg+0x5E],$dccr ; Restore DCCR 1115" move [cris_reg+0x5E],$dccr ; Restore DCCR\n"
1454 move [reg+0x66],$usp ; Restore USP 1116" move [cris_reg+0x66],$usp ; Restore USP\n"
1455 reti ; Return from the interrupt routine 1117" reti ; Return from the interrupt routine\n"
1456 nop 1118" nop\n"
1457"); 1119"\n");
1458 1120
1459/* Use this static breakpoint in the start-up only. */ 1121/* Use this static breakpoint in the start-up only. */
1460 1122
diff --git a/arch/cris/arch-v32/drivers/Kconfig b/arch/cris/arch-v32/drivers/Kconfig
index ab725edbc680..acff3df8c43f 100644
--- a/arch/cris/arch-v32/drivers/Kconfig
+++ b/arch/cris/arch-v32/drivers/Kconfig
@@ -640,8 +640,6 @@ config ETRAX_STREAMCOPROC
640 This option enables a driver for the stream co-processor 640 This option enables a driver for the stream co-processor
641 for cryptographic operations. 641 for cryptographic operations.
642 642
643source drivers/mmc/Kconfig
644
645config ETRAX_MMC_IOP 643config ETRAX_MMC_IOP
646 tristate "MMC/SD host driver using IO-processor" 644 tristate "MMC/SD host driver using IO-processor"
647 depends on ETRAX_ARCH_V32 && MMC 645 depends on ETRAX_ARCH_V32 && MMC
@@ -833,9 +831,4 @@ config ETRAX_SPI_MMC_WP_GPIO_PIN
833 The pin to use for the SD/MMC write-protect signal for a memory 831 The pin to use for the SD/MMC write-protect signal for a memory
834 card. If defined as " " (space), the card is considered writable. 832 card. If defined as " " (space), the card is considered writable.
835 833
836# Avoid choices causing non-working configs by conditionalizing the inclusion.
837if ETRAX_SPI_MMC
838source drivers/spi/Kconfig
839endif
840
841endif 834endif
diff --git a/arch/cris/include/asm/Kbuild b/arch/cris/include/asm/Kbuild
index f1e79edc9dd2..c8325455520e 100644
--- a/arch/cris/include/asm/Kbuild
+++ b/arch/cris/include/asm/Kbuild
@@ -5,5 +5,9 @@ header-y += arch-v32/
5 5
6generic-y += clkdev.h 6generic-y += clkdev.h
7generic-y += exec.h 7generic-y += exec.h
8generic-y += kvm_para.h
9generic-y += linkage.h
8generic-y += module.h 10generic-y += module.h
9generic-y += trace_clock.h 11generic-y += trace_clock.h
12generic-y += vga.h
13generic-y += xor.h
diff --git a/arch/cris/include/asm/io.h b/arch/cris/include/asm/io.h
index ac12ae2b9286..5d3047e5563b 100644
--- a/arch/cris/include/asm/io.h
+++ b/arch/cris/include/asm/io.h
@@ -167,6 +167,9 @@ static inline void outsl(unsigned int port, const void *addr,
167 cris_iops->write_io(port, (void *)addr, 4, count); 167 cris_iops->write_io(port, (void *)addr, 4, count);
168} 168}
169 169
170#define inb_p(port) inb(port)
171#define outb_p(val, port) outb((val), (port))
172
170/* 173/*
171 * Convert a physical pointer to a virtual kernel pointer for /dev/mem 174 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
172 * access 175 * access
diff --git a/arch/cris/include/asm/linkage.h b/arch/cris/include/asm/linkage.h
deleted file mode 100644
index 291c2d01c44f..000000000000
--- a/arch/cris/include/asm/linkage.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef __ASM_LINKAGE_H
2#define __ASM_LINKAGE_H
3
4/* Nothing to see here... */
5
6#endif
diff --git a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S
index e9a8cc63ac94..a7d0bea9c036 100644
--- a/arch/frv/kernel/head.S
+++ b/arch/frv/kernel/head.S
@@ -479,11 +479,6 @@ __head_mmu_enabled:
479 479
480 LEDS 0x000c 480 LEDS 0x000c
481 481
482 # initialise the processor and the peripherals
483 #call SYMBOL_NAME(processor_init)
484 #call SYMBOL_NAME(unit_init)
485 #LEDS 0x0aff
486
487 sethi.p #0xe5e5,gr3 482 sethi.p #0xe5e5,gr3
488 setlo #0xe5e5,gr3 483 setlo #0xe5e5,gr3
489 or.p gr3,gr0,gr4 484 or.p gr3,gr0,gr4
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 303e4f9a79d1..3d6759ee382f 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -94,126 +94,10 @@ endmenu
94 94
95source "net/Kconfig" 95source "net/Kconfig"
96 96
97source "drivers/base/Kconfig" 97source "drivers/Kconfig"
98
99source "drivers/mtd/Kconfig"
100
101source "drivers/block/Kconfig"
102
103source "drivers/ide/Kconfig"
104 98
105source "arch/h8300/Kconfig.ide" 99source "arch/h8300/Kconfig.ide"
106 100
107source "drivers/net/Kconfig"
108
109#
110# input - input/joystick depends on it. As does USB.
111#
112source "drivers/input/Kconfig"
113
114menu "Character devices"
115
116config VT
117 bool "Virtual terminal"
118 ---help---
119 If you say Y here, you will get support for terminal devices with
120 display and keyboard devices. These are called "virtual" because you
121 can run several virtual terminals (also called virtual consoles) on
122 one physical terminal. This is rather useful, for example one
123 virtual terminal can collect system messages and warnings, another
124 one can be used for a text-mode user session, and a third could run
125 an X session, all in parallel. Switching between virtual terminals
126 is done with certain key combinations, usually Alt-<function key>.
127
128 The setterm command ("man setterm") can be used to change the
129 properties (such as colors or beeping) of a virtual terminal. The
130 man page console_codes(4) ("man console_codes") contains the special
131 character sequences that can be used to change those properties
132 directly. The fonts used on virtual terminals can be changed with
133 the setfont ("man setfont") command and the key bindings are defined
134 with the loadkeys ("man loadkeys") command.
135
136 You need at least one virtual terminal device in order to make use
137 of your keyboard and monitor. Therefore, only people configuring an
138 embedded system would want to say N here in order to save some
139 memory; the only way to log into such a system is then via a serial
140 or network connection.
141
142 If unsure, say Y, or else you won't be able to do much with your new
143 shiny Linux system :-)
144
145config VT_CONSOLE
146 bool "Support for console on virtual terminal"
147 depends on VT
148 ---help---
149 The system console is the device which receives all kernel messages
150 and warnings and which allows logins in single user mode. If you
151 answer Y here, a virtual terminal (the device used to interact with
152 a physical terminal) can be used as system console. This is the most
153 common mode of operations, so you should say Y here unless you want
154 the kernel messages be output only to a serial port (in which case
155 you should say Y to "Console on serial port", below).
156
157 If you do say Y here, by default the currently visible virtual
158 terminal (/dev/tty0) will be used as system console. You can change
159 that with a kernel command line option such as "console=tty3" which
160 would use the third virtual terminal as system console. (Try "man
161 bootparam" or see the documentation of your boot loader (lilo or
162 loadlin) about how to pass options to the kernel at boot time.)
163
164 If unsure, say Y.
165
166config HW_CONSOLE
167 bool
168 depends on VT
169 default y
170
171comment "Unix98 PTY support"
172
173config UNIX98_PTYS
174 bool "Unix98 PTY support"
175 ---help---
176 A pseudo terminal (PTY) is a software device consisting of two
177 halves: a master and a slave. The slave device behaves identical to
178 a physical terminal; the master device is used by a process to
179 read data from and write data to the slave, thereby emulating a
180 terminal. Typical programs for the master side are telnet servers
181 and xterms.
182
183 Linux has traditionally used the BSD-like names /dev/ptyxx for
184 masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
185 has a number of problems. The GNU C library glibc 2.1 and later,
186 however, supports the Unix98 naming standard: in order to acquire a
187 pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
188 terminal is then made available to the process and the pseudo
189 terminal slave can be accessed as /dev/pts/<number>. What was
190 traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
191
192 The entries in /dev/pts/ are created on the fly by a virtual
193 file system; therefore, if you say Y here you should say Y to
194 "/dev/pts file system for Unix98 PTYs" as well.
195
196 If you want to say Y here, you need to have the C library glibc 2.1
197 or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*").
198 Read the instructions in <file:Documentation/Changes> pertaining to
199 pseudo terminals. It's safe to say N.
200
201source "drivers/char/pcmcia/Kconfig"
202
203source "drivers/tty/serial/Kconfig"
204
205source "drivers/i2c/Kconfig"
206
207source "drivers/hwmon/Kconfig"
208
209source "drivers/usb/Kconfig"
210
211source "drivers/uwb/Kconfig"
212
213endmenu
214
215source "drivers/staging/Kconfig"
216
217source "fs/Kconfig" 101source "fs/Kconfig"
218 102
219source "arch/h8300/Kconfig.debug" 103source "arch/h8300/Kconfig.debug"
diff --git a/arch/h8300/Kconfig.cpu b/arch/h8300/Kconfig.cpu
index 321f3922728b..cdee771460ed 100644
--- a/arch/h8300/Kconfig.cpu
+++ b/arch/h8300/Kconfig.cpu
@@ -64,6 +64,7 @@ choice
64 64
65config H83002 65config H83002
66 bool "H8/3001,3002,3003" 66 bool "H8/3001,3002,3003"
67 depends on BROKEN
67 select CPU_H8300H 68 select CPU_H8300H
68 69
69config H83007 70config H83007
@@ -72,6 +73,7 @@ config H83007
72 73
73config H83048 74config H83048
74 bool "H8/3044,3045,3046,3047,3048,3052" 75 bool "H8/3044,3045,3046,3047,3048,3052"
76 depends on BROKEN
75 select CPU_H8300H 77 select CPU_H8300H
76 78
77config H83068 79config H83068
@@ -155,10 +157,12 @@ config H8300_TIMER16_CH
155config H8300_ITU_CH 157config H8300_ITU_CH
156 int "ITU channel" 158 int "ITU channel"
157 depends on H8300_ITU 159 depends on H8300_ITU
160 range 0 4
158 161
159config H8300_TPU_CH 162config H8300_TPU_CH
160 int "TPU channel" 163 int "TPU channel"
161 depends on H8300_TPU 164 depends on H8300_TPU
165 range 0 4
162 166
163source "kernel/Kconfig.preempt" 167source "kernel/Kconfig.preempt"
164 168
diff --git a/arch/h8300/boot/compressed/Makefile b/arch/h8300/boot/compressed/Makefile
index 6745cb1ffb4f..a6c98fe3bbc3 100644
--- a/arch/h8300/boot/compressed/Makefile
+++ b/arch/h8300/boot/compressed/Makefile
@@ -16,7 +16,7 @@ OBJECTS = $(obj)/head.o $(obj)/misc.o
16# 16#
17CONFIG_MEMORY_START ?= 0x00400000 17CONFIG_MEMORY_START ?= 0x00400000
18CONFIG_BOOT_LINK_OFFSET ?= 0x00140000 18CONFIG_BOOT_LINK_OFFSET ?= 0x00140000
19IMAGE_OFFSET := $(shell printf "0x%08x" $$[$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)]) 19IMAGE_OFFSET := $(shell printf "0x%08x" $$(($(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET))))
20 20
21LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -estartup $(obj)/vmlinux.lds 21LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -estartup $(obj)/vmlinux.lds
22 22
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild
index 995eb47e01bb..8ada3cf0c98d 100644
--- a/arch/h8300/include/asm/Kbuild
+++ b/arch/h8300/include/asm/Kbuild
@@ -1,6 +1,8 @@
1 1
2generic-y += clkdev.h 2generic-y += clkdev.h
3generic-y += exec.h 3generic-y += exec.h
4generic-y += linkage.h
4generic-y += mmu.h 5generic-y += mmu.h
5generic-y += module.h 6generic-y += module.h
6generic-y += trace_clock.h 7generic-y += trace_clock.h
8generic-y += xor.h
diff --git a/arch/h8300/include/asm/barrier.h b/arch/h8300/include/asm/barrier.h
index c7283c343c55..9e0aa9fc195d 100644
--- a/arch/h8300/include/asm/barrier.h
+++ b/arch/h8300/include/asm/barrier.h
@@ -12,6 +12,8 @@
12#define wmb() asm volatile ("" : : :"memory") 12#define wmb() asm volatile ("" : : :"memory")
13#define set_mb(var, value) do { xchg(&var, value); } while (0) 13#define set_mb(var, value) do { xchg(&var, value); } while (0)
14 14
15#define read_barrier_depends() do { } while (0)
16
15#ifdef CONFIG_SMP 17#ifdef CONFIG_SMP
16#define smp_mb() mb() 18#define smp_mb() mb()
17#define smp_rmb() rmb() 19#define smp_rmb() rmb()
diff --git a/arch/h8300/include/asm/linkage.h b/arch/h8300/include/asm/linkage.h
deleted file mode 100644
index 1d81604fb0ad..000000000000
--- a/arch/h8300/include/asm/linkage.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef _H8300_LINKAGE_H
2#define _H8300_LINKAGE_H
3
4#undef SYMBOL_NAME_LABEL
5#define SYMBOL_NAME_LABEL(_name_) _##_name_##:
6#endif
diff --git a/arch/h8300/include/asm/tlb.h b/arch/h8300/include/asm/tlb.h
index 3dea80ad9e6f..7f0743051ad5 100644
--- a/arch/h8300/include/asm/tlb.h
+++ b/arch/h8300/include/asm/tlb.h
@@ -1,16 +1,3 @@
1/*
2 include/asm-h8300/tlb.h
3*/
4
5#ifndef __H8300_TLB_H__
6#define __H8300_TLB_H__
7
8#define tlb_flush(tlb) do { } while(0)
9
10/*
11 include/asm-h8300/tlb.h
12*/
13
14#ifndef __H8300_TLB_H__ 1#ifndef __H8300_TLB_H__
15#define __H8300_TLB_H__ 2#define __H8300_TLB_H__
16 3
@@ -19,5 +6,3 @@
19#include <asm-generic/tlb.h> 6#include <asm-generic/tlb.h>
20 7
21#endif 8#endif
22
23#endif
diff --git a/arch/h8300/kernel/entry.S b/arch/h8300/kernel/entry.S
index 617a6878787f..94bd30f11df6 100644
--- a/arch/h8300/kernel/entry.S
+++ b/arch/h8300/kernel/entry.S
@@ -87,13 +87,13 @@ INTERRUPTS = 128
87 bne 5f 87 bne 5f
88 88
89 /* user mode */ 89 /* user mode */
90 mov.l sp,@SYMBOL_NAME(sw_usp) 90 mov.l sp,@_sw_usp
91 mov.l @sp,er0 /* restore saved er0 */ 91 mov.l @sp,er0 /* restore saved er0 */
92 orc #0x10,ccr /* switch kernel stack */ 92 orc #0x10,ccr /* switch kernel stack */
93 mov.l @SYMBOL_NAME(sw_ksp),sp 93 mov.l @_sw_ksp,sp
94 sub.l #(LRET-LORIG),sp /* allocate LORIG - LRET */ 94 sub.l #(LRET-LORIG),sp /* allocate LORIG - LRET */
95 SAVEREGS 95 SAVEREGS
96 mov.l @SYMBOL_NAME(sw_usp),er0 96 mov.l @_sw_usp,er0
97 mov.l @(USERRET:16,er0),er1 /* copy the RET addr */ 97 mov.l @(USERRET:16,er0),er1 /* copy the RET addr */
98 mov.l er1,@(LRET-LER3:16,sp) 98 mov.l er1,@(LRET-LER3:16,sp)
99 SAVEEXR 99 SAVEEXR
@@ -128,7 +128,7 @@ INTERRUPTS = 128
128 bne 7f 128 bne 7f
129 129
130 orc #0x80,ccr 130 orc #0x80,ccr
131 mov.l @SYMBOL_NAME(sw_usp),er0 131 mov.l @_sw_usp,er0
132 mov.l @(LER0-LER1:16,sp),er1 /* restore ER0 */ 132 mov.l @(LER0-LER1:16,sp),er1 /* restore ER0 */
133 mov.l er1,@er0 133 mov.l er1,@er0
134 RESTOREEXR 134 RESTOREEXR
@@ -141,7 +141,7 @@ INTERRUPTS = 128
141 141
142 mov.l @sp+,er1 142 mov.l @sp+,er1
143 add.l #(LRET-LER1),sp /* remove LORIG - LRET */ 143 add.l #(LRET-LER1),sp /* remove LORIG - LRET */
144 mov.l sp,@SYMBOL_NAME(sw_ksp) 144 mov.l sp,@_sw_ksp
145 andc #0xef,ccr /* switch to user mode */ 145 andc #0xef,ccr /* switch to user mode */
146 mov.l er0,sp 146 mov.l er0,sp
147 bra 8f 147 bra 8f
@@ -155,20 +155,20 @@ INTERRUPTS = 128
155 rte 155 rte
156 .endm 156 .endm
157 157
158.globl SYMBOL_NAME(system_call) 158.globl _system_call
159.globl SYMBOL_NAME(ret_from_exception) 159.globl _ret_from_exception
160.globl SYMBOL_NAME(ret_from_fork) 160.globl _ret_from_fork
161.globl SYMBOL_NAME(ret_from_kernel_thread) 161.globl _ret_from_kernel_thread
162.globl SYMBOL_NAME(ret_from_interrupt) 162.globl _ret_from_interrupt
163.globl SYMBOL_NAME(interrupt_redirect_table) 163.globl _interrupt_redirect_table
164.globl SYMBOL_NAME(sw_ksp),SYMBOL_NAME(sw_usp) 164.globl _sw_ksp,_sw_usp
165.globl SYMBOL_NAME(resume) 165.globl _resume
166.globl SYMBOL_NAME(interrupt_entry) 166.globl _interrupt_entry
167.globl SYMBOL_NAME(trace_break) 167.globl _trace_break
168 168
169#if defined(CONFIG_ROMKERNEL) 169#if defined(CONFIG_ROMKERNEL)
170 .section .int_redirect,"ax" 170 .section .int_redirect,"ax"
171SYMBOL_NAME_LABEL(interrupt_redirect_table) 171_interrupt_redirect_table:
172#if defined(CONFIG_CPU_H8300H) 172#if defined(CONFIG_CPU_H8300H)
173 .rept 7 173 .rept 7
174 .long 0 174 .long 0
@@ -178,54 +178,54 @@ SYMBOL_NAME_LABEL(interrupt_redirect_table)
178 .rept 5 178 .rept 5
179 .long 0 179 .long 0
180 .endr 180 .endr
181 jmp @SYMBOL_NAME(trace_break) 181 jmp @_trace_break
182 .long 0 182 .long 0
183#endif 183#endif
184 184
185 jsr @SYMBOL_NAME(interrupt_entry) /* NMI */ 185 jsr @_interrupt_entry /* NMI */
186 jmp @SYMBOL_NAME(system_call) /* TRAPA #0 (System call) */ 186 jmp @_system_call /* TRAPA #0 (System call) */
187 .long 0 187 .long 0
188 .long 0 188 .long 0
189 jmp @SYMBOL_NAME(trace_break) /* TRAPA #3 (breakpoint) */ 189 jmp @_trace_break /* TRAPA #3 (breakpoint) */
190 .rept INTERRUPTS-12 190 .rept INTERRUPTS-12
191 jsr @SYMBOL_NAME(interrupt_entry) 191 jsr @_interrupt_entry
192 .endr 192 .endr
193#endif 193#endif
194#if defined(CONFIG_RAMKERNEL) 194#if defined(CONFIG_RAMKERNEL)
195.globl SYMBOL_NAME(interrupt_redirect_table) 195.globl _interrupt_redirect_table
196 .section .bss 196 .section .bss
197SYMBOL_NAME_LABEL(interrupt_redirect_table) 197_interrupt_redirect_table:
198 .space 4 198 .space 4
199#endif 199#endif
200 200
201 .section .text 201 .section .text
202 .align 2 202 .align 2
203SYMBOL_NAME_LABEL(interrupt_entry) 203_interrupt_entry:
204 SAVE_ALL 204 SAVE_ALL
205 mov.l sp,er0 205 mov.l sp,er0
206 add.l #LVEC,er0 206 add.l #LVEC,er0
207 btst #4,r1l 207 btst #4,r1l
208 bne 1f 208 bne 1f
209 /* user LVEC */ 209 /* user LVEC */
210 mov.l @SYMBOL_NAME(sw_usp),er0 210 mov.l @_sw_usp,er0
211 adds #4,er0 211 adds #4,er0
2121: 2121:
213 mov.l @er0,er0 /* LVEC address */ 213 mov.l @er0,er0 /* LVEC address */
214#if defined(CONFIG_ROMKERNEL) 214#if defined(CONFIG_ROMKERNEL)
215 sub.l #SYMBOL_NAME(interrupt_redirect_table),er0 215 sub.l #_interrupt_redirect_table,er0
216#endif 216#endif
217#if defined(CONFIG_RAMKERNEL) 217#if defined(CONFIG_RAMKERNEL)
218 mov.l @SYMBOL_NAME(interrupt_redirect_table),er1 218 mov.l @_interrupt_redirect_table,er1
219 sub.l er1,er0 219 sub.l er1,er0
220#endif 220#endif
221 SHLR2 er0 221 SHLR2 er0
222 dec.l #1,er0 222 dec.l #1,er0
223 mov.l sp,er1 223 mov.l sp,er1
224 subs #4,er1 /* adjust ret_pc */ 224 subs #4,er1 /* adjust ret_pc */
225 jsr @SYMBOL_NAME(do_IRQ) 225 jsr @_do_IRQ
226 jmp @SYMBOL_NAME(ret_from_interrupt) 226 jmp @_ret_from_interrupt
227 227
228SYMBOL_NAME_LABEL(system_call) 228_system_call:
229 subs #4,sp /* dummy LVEC */ 229 subs #4,sp /* dummy LVEC */
230 SAVE_ALL 230 SAVE_ALL
231 andc #0x7f,ccr 231 andc #0x7f,ccr
@@ -233,21 +233,21 @@ SYMBOL_NAME_LABEL(system_call)
233 233
234 /* save top of frame */ 234 /* save top of frame */
235 mov.l sp,er0 235 mov.l sp,er0
236 jsr @SYMBOL_NAME(set_esp0) 236 jsr @_set_esp0
237 mov.l sp,er2 237 mov.l sp,er2
238 and.w #0xe000,r2 238 and.w #0xe000,r2
239 mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l 239 mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l
240 btst #(TIF_SYSCALL_TRACE & 7),r2l 240 btst #(TIF_SYSCALL_TRACE & 7),r2l
241 beq 1f 241 beq 1f
242 jsr @SYMBOL_NAME(do_syscall_trace) 242 jsr @_do_syscall_trace
2431: 2431:
244 cmp.l #NR_syscalls,er4 244 cmp.l #NR_syscalls,er4
245 bcc badsys 245 bcc badsys
246 SHLL2 er4 246 SHLL2 er4
247 mov.l #SYMBOL_NAME(sys_call_table),er0 247 mov.l #_sys_call_table,er0
248 add.l er4,er0 248 add.l er4,er0
249 mov.l @er0,er4 249 mov.l @er0,er4
250 beq SYMBOL_NAME(ret_from_exception):16 250 beq _ret_from_exception:16
251 mov.l @(LER1:16,sp),er0 251 mov.l @(LER1:16,sp),er0
252 mov.l @(LER2:16,sp),er1 252 mov.l @(LER2:16,sp),er1
253 mov.l @(LER3:16,sp),er2 253 mov.l @(LER3:16,sp),er2
@@ -258,10 +258,10 @@ SYMBOL_NAME_LABEL(system_call)
258 mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l 258 mov.b @((TI_FLAGS+3-(TIF_SYSCALL_TRACE >> 3)):16,er2),r2l
259 btst #(TIF_SYSCALL_TRACE & 7),r2l 259 btst #(TIF_SYSCALL_TRACE & 7),r2l
260 beq 2f 260 beq 2f
261 jsr @SYMBOL_NAME(do_syscall_trace) 261 jsr @_do_syscall_trace
2622: 2622:
263#if defined(CONFIG_SYSCALL_PRINT) 263#if defined(CONFIG_SYSCALL_PRINT)
264 jsr @SYMBOL_NAME(syscall_print) 264 jsr @_syscall_print
265#endif 265#endif
266 orc #0x80,ccr 266 orc #0x80,ccr
267 bra resume_userspace 267 bra resume_userspace
@@ -275,11 +275,11 @@ badsys:
275#define resume_kernel restore_all 275#define resume_kernel restore_all
276#endif 276#endif
277 277
278SYMBOL_NAME_LABEL(ret_from_exception) 278_ret_from_exception:
279#if defined(CONFIG_PREEMPT) 279#if defined(CONFIG_PREEMPT)
280 orc #0x80,ccr 280 orc #0x80,ccr
281#endif 281#endif
282SYMBOL_NAME_LABEL(ret_from_interrupt) 282_ret_from_interrupt:
283 mov.b @(LCCR+1:16,sp),r0l 283 mov.b @(LCCR+1:16,sp),r0l
284 btst #4,r0l 284 btst #4,r0l
285 bne resume_kernel:8 /* return from kernel */ 285 bne resume_kernel:8 /* return from kernel */
@@ -296,12 +296,12 @@ work_pending:
296 /* work notifysig */ 296 /* work notifysig */
297 mov.l sp,er0 297 mov.l sp,er0
298 subs #4,er0 /* er0: pt_regs */ 298 subs #4,er0 /* er0: pt_regs */
299 jsr @SYMBOL_NAME(do_notify_resume) 299 jsr @_do_notify_resume
300 bra restore_all:8 300 bra restore_all:8
301work_resched: 301work_resched:
302 mov.l sp,er0 302 mov.l sp,er0
303 jsr @SYMBOL_NAME(set_esp0) 303 jsr @_set_esp0
304 jsr @SYMBOL_NAME(schedule) 304 jsr @_schedule
305 bra resume_userspace:8 305 bra resume_userspace:8
306restore_all: 306restore_all:
307 RESTORE_ALL /* Does RTE */ 307 RESTORE_ALL /* Does RTE */
@@ -320,26 +320,26 @@ need_resched:
320 mov.l er0,@(TI_PRE_COUNT:16,er4) 320 mov.l er0,@(TI_PRE_COUNT:16,er4)
321 andc #0x7f,ccr 321 andc #0x7f,ccr
322 mov.l sp,er0 322 mov.l sp,er0
323 jsr @SYMBOL_NAME(set_esp0) 323 jsr @_set_esp0
324 jsr @SYMBOL_NAME(schedule) 324 jsr @_schedule
325 orc #0x80,ccr 325 orc #0x80,ccr
326 bra need_resched:8 326 bra need_resched:8
327#endif 327#endif
328 328
329SYMBOL_NAME_LABEL(ret_from_fork) 329_ret_from_fork:
330 mov.l er2,er0 330 mov.l er2,er0
331 jsr @SYMBOL_NAME(schedule_tail) 331 jsr @_schedule_tail
332 jmp @SYMBOL_NAME(ret_from_exception) 332 jmp @_ret_from_exception
333 333
334SYMBOL_NAME_LABEL(ret_from_kernel_thread) 334_ret_from_kernel_thread:
335 mov.l er2,er0 335 mov.l er2,er0
336 jsr @SYMBOL_NAME(schedule_tail) 336 jsr @_schedule_tail
337 mov.l @(LER4:16,sp),er0 337 mov.l @(LER4:16,sp),er0
338 mov.l @(LER5:16,sp),er1 338 mov.l @(LER5:16,sp),er1
339 jsr @er1 339 jsr @er1
340 jmp @SYMBOL_NAME(ret_from_exception) 340 jmp @_ret_from_exception
341 341
342SYMBOL_NAME_LABEL(resume) 342_resume:
343 /* 343 /*
344 * Beware - when entering resume, offset of tss is in d1, 344 * Beware - when entering resume, offset of tss is in d1,
345 * prev (the current task) is in a0, next (the new task) 345 * prev (the current task) is in a0, next (the new task)
@@ -355,7 +355,7 @@ SYMBOL_NAME_LABEL(resume)
355 355
356 /* disable interrupts */ 356 /* disable interrupts */
357 orc #0x80,ccr 357 orc #0x80,ccr
358 mov.l @SYMBOL_NAME(sw_usp),er3 358 mov.l @_sw_usp,er3
359 mov.l er3,@(THREAD_USP:16,er0) 359 mov.l er3,@(THREAD_USP:16,er0)
360 mov.l sp,@(THREAD_KSP:16,er0) 360 mov.l sp,@(THREAD_KSP:16,er0)
361 361
@@ -363,7 +363,7 @@ SYMBOL_NAME_LABEL(resume)
363 /* FIXME: what did we hack out of here, this does nothing! */ 363 /* FIXME: what did we hack out of here, this does nothing! */
364 364
365 mov.l @(THREAD_USP:16,er1),er0 365 mov.l @(THREAD_USP:16,er1),er0
366 mov.l er0,@SYMBOL_NAME(sw_usp) 366 mov.l er0,@_sw_usp
367 mov.l @(THREAD_KSP:16,er1),sp 367 mov.l @(THREAD_KSP:16,er1),sp
368 368
369 /* restore status register */ 369 /* restore status register */
@@ -372,15 +372,15 @@ SYMBOL_NAME_LABEL(resume)
372 ldc r3l,ccr 372 ldc r3l,ccr
373 rts 373 rts
374 374
375SYMBOL_NAME_LABEL(trace_break) 375_trace_break:
376 subs #4,sp 376 subs #4,sp
377 SAVE_ALL 377 SAVE_ALL
378 sub.l er1,er1 378 sub.l er1,er1
379 dec.l #1,er1 379 dec.l #1,er1
380 mov.l er1,@(LORIG,sp) 380 mov.l er1,@(LORIG,sp)
381 mov.l sp,er0 381 mov.l sp,er0
382 jsr @SYMBOL_NAME(set_esp0) 382 jsr @_set_esp0
383 mov.l @SYMBOL_NAME(sw_usp),er0 383 mov.l @_sw_usp,er0
384 mov.l @er0,er1 384 mov.l @er0,er1
385 mov.w @(-2:16,er1),r2 385 mov.w @(-2:16,er1),r2
386 cmp.w #0x5730,r2 386 cmp.w #0x5730,r2
@@ -390,13 +390,13 @@ SYMBOL_NAME_LABEL(trace_break)
3901: 3901:
391 and.w #0xff,e1 391 and.w #0xff,e1
392 mov.l er1,er0 392 mov.l er1,er0
393 jsr @SYMBOL_NAME(trace_trap) 393 jsr @_trace_trap
394 jmp @SYMBOL_NAME(ret_from_exception) 394 jmp @_ret_from_exception
395 395
396 .section .bss 396 .section .bss
397SYMBOL_NAME_LABEL(sw_ksp) 397_sw_ksp:
398 .space 4 398 .space 4
399SYMBOL_NAME_LABEL(sw_usp) 399_sw_usp:
400 .space 4 400 .space 4
401 401
402 .end 402 .end
diff --git a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S
index 5c2168fb9b9e..c55e0ed270d5 100644
--- a/arch/h8300/kernel/syscalls.S
+++ b/arch/h8300/kernel/syscalls.S
@@ -2,8 +2,10 @@
2#include <linux/sys.h> 2#include <linux/sys.h>
3#include <asm/linkage.h> 3#include <asm/linkage.h>
4#include <asm/unistd.h> 4#include <asm/unistd.h>
5 5
6.globl SYMBOL_NAME(sys_call_table) 6#define CALL(x) .long _ ## x
7
8.globl _sys_call_table
7 9
8#if defined(CONFIG_CPU_H8300H) 10#if defined(CONFIG_CPU_H8300H)
9 .h8300h 11 .h8300h
@@ -13,324 +15,324 @@
13#endif 15#endif
14 .section .text 16 .section .text
15 .align 2 17 .align 2
16SYMBOL_NAME_LABEL(sys_call_table) 18_sys_call_table:
17 .long SYMBOL_NAME(sys_ni_syscall) /* 0 - old "setup()" system call*/ 19 CALL(sys_ni_syscall) /* 0 - old "setup()" system call*/
18 .long SYMBOL_NAME(sys_exit) 20 CALL(sys_exit)
19 .long SYMBOL_NAME(sys_fork) 21 CALL(sys_fork)
20 .long SYMBOL_NAME(sys_read) 22 CALL(sys_read)
21 .long SYMBOL_NAME(sys_write) 23 CALL(sys_write)
22 .long SYMBOL_NAME(sys_open) /* 5 */ 24 CALL(sys_open) /* 5 */
23 .long SYMBOL_NAME(sys_close) 25 CALL(sys_close)
24 .long SYMBOL_NAME(sys_waitpid) 26 CALL(sys_waitpid)
25 .long SYMBOL_NAME(sys_creat) 27 CALL(sys_creat)
26 .long SYMBOL_NAME(sys_link) 28 CALL(sys_link)
27 .long SYMBOL_NAME(sys_unlink) /* 10 */ 29 CALL(sys_unlink) /* 10 */
28 .long SYMBOL_NAME(sys_execve) 30 CALL(sys_execve)
29 .long SYMBOL_NAME(sys_chdir) 31 CALL(sys_chdir)
30 .long SYMBOL_NAME(sys_time) 32 CALL(sys_time)
31 .long SYMBOL_NAME(sys_mknod) 33 CALL(sys_mknod)
32 .long SYMBOL_NAME(sys_chmod) /* 15 */ 34 CALL(sys_chmod) /* 15 */
33 .long SYMBOL_NAME(sys_chown16) 35 CALL(sys_chown16)
34 .long SYMBOL_NAME(sys_ni_syscall) /* old break syscall holder */ 36 CALL(sys_ni_syscall) /* old break syscall holder */
35 .long SYMBOL_NAME(sys_stat) 37 CALL(sys_stat)
36 .long SYMBOL_NAME(sys_lseek) 38 CALL(sys_lseek)
37 .long SYMBOL_NAME(sys_getpid) /* 20 */ 39 CALL(sys_getpid) /* 20 */
38 .long SYMBOL_NAME(sys_mount) 40 CALL(sys_mount)
39 .long SYMBOL_NAME(sys_oldumount) 41 CALL(sys_oldumount)
40 .long SYMBOL_NAME(sys_setuid16) 42 CALL(sys_setuid16)
41 .long SYMBOL_NAME(sys_getuid16) 43 CALL(sys_getuid16)
42 .long SYMBOL_NAME(sys_stime) /* 25 */ 44 CALL(sys_stime) /* 25 */
43 .long SYMBOL_NAME(sys_ptrace) 45 CALL(sys_ptrace)
44 .long SYMBOL_NAME(sys_alarm) 46 CALL(sys_alarm)
45 .long SYMBOL_NAME(sys_fstat) 47 CALL(sys_fstat)
46 .long SYMBOL_NAME(sys_pause) 48 CALL(sys_pause)
47 .long SYMBOL_NAME(sys_utime) /* 30 */ 49 CALL(sys_utime) /* 30 */
48 .long SYMBOL_NAME(sys_ni_syscall) /* old stty syscall holder */ 50 CALL(sys_ni_syscall) /* old stty syscall holder */
49 .long SYMBOL_NAME(sys_ni_syscall) /* old gtty syscall holder */ 51 CALL(sys_ni_syscall) /* old gtty syscall holder */
50 .long SYMBOL_NAME(sys_access) 52 CALL(sys_access)
51 .long SYMBOL_NAME(sys_nice) 53 CALL(sys_nice)
52 .long SYMBOL_NAME(sys_ni_syscall) /* 35 old ftime syscall holder */ 54 CALL(sys_ni_syscall) /* 35 old ftime syscall holder */
53 .long SYMBOL_NAME(sys_sync) 55 CALL(sys_sync)
54 .long SYMBOL_NAME(sys_kill) 56 CALL(sys_kill)
55 .long SYMBOL_NAME(sys_rename) 57 CALL(sys_rename)
56 .long SYMBOL_NAME(sys_mkdir) 58 CALL(sys_mkdir)
57 .long SYMBOL_NAME(sys_rmdir) /* 40 */ 59 CALL(sys_rmdir) /* 40 */
58 .long SYMBOL_NAME(sys_dup) 60 CALL(sys_dup)
59 .long SYMBOL_NAME(sys_pipe) 61 CALL(sys_pipe)
60 .long SYMBOL_NAME(sys_times) 62 CALL(sys_times)
61 .long SYMBOL_NAME(sys_ni_syscall) /* old prof syscall holder */ 63 CALL(sys_ni_syscall) /* old prof syscall holder */
62 .long SYMBOL_NAME(sys_brk) /* 45 */ 64 CALL(sys_brk) /* 45 */
63 .long SYMBOL_NAME(sys_setgid16) 65 CALL(sys_setgid16)
64 .long SYMBOL_NAME(sys_getgid16) 66 CALL(sys_getgid16)
65 .long SYMBOL_NAME(sys_signal) 67 CALL(sys_signal)
66 .long SYMBOL_NAME(sys_geteuid16) 68 CALL(sys_geteuid16)
67 .long SYMBOL_NAME(sys_getegid16) /* 50 */ 69 CALL(sys_getegid16) /* 50 */
68 .long SYMBOL_NAME(sys_acct) 70 CALL(sys_acct)
69 .long SYMBOL_NAME(sys_umount) /* recycled never used phys() */ 71 CALL(sys_umount) /* recycled never used phys() */
70 .long SYMBOL_NAME(sys_ni_syscall) /* old lock syscall holder */ 72 CALL(sys_ni_syscall) /* old lock syscall holder */
71 .long SYMBOL_NAME(sys_ioctl) 73 CALL(sys_ioctl)
72 .long SYMBOL_NAME(sys_fcntl) /* 55 */ 74 CALL(sys_fcntl) /* 55 */
73 .long SYMBOL_NAME(sys_ni_syscall) /* old mpx syscall holder */ 75 CALL(sys_ni_syscall) /* old mpx syscall holder */
74 .long SYMBOL_NAME(sys_setpgid) 76 CALL(sys_setpgid)
75 .long SYMBOL_NAME(sys_ni_syscall) /* old ulimit syscall holder */ 77 CALL(sys_ni_syscall) /* old ulimit syscall holder */
76 .long SYMBOL_NAME(sys_ni_syscall) 78 CALL(sys_ni_syscall)
77 .long SYMBOL_NAME(sys_umask) /* 60 */ 79 CALL(sys_umask) /* 60 */
78 .long SYMBOL_NAME(sys_chroot) 80 CALL(sys_chroot)
79 .long SYMBOL_NAME(sys_ustat) 81 CALL(sys_ustat)
80 .long SYMBOL_NAME(sys_dup2) 82 CALL(sys_dup2)
81 .long SYMBOL_NAME(sys_getppid) 83 CALL(sys_getppid)
82 .long SYMBOL_NAME(sys_getpgrp) /* 65 */ 84 CALL(sys_getpgrp) /* 65 */
83 .long SYMBOL_NAME(sys_setsid) 85 CALL(sys_setsid)
84 .long SYMBOL_NAME(sys_sigaction) 86 CALL(sys_sigaction)
85 .long SYMBOL_NAME(sys_sgetmask) 87 CALL(sys_sgetmask)
86 .long SYMBOL_NAME(sys_ssetmask) 88 CALL(sys_ssetmask)
87 .long SYMBOL_NAME(sys_setreuid16) /* 70 */ 89 CALL(sys_setreuid16) /* 70 */
88 .long SYMBOL_NAME(sys_setregid16) 90 CALL(sys_setregid16)
89 .long SYMBOL_NAME(sys_sigsuspend) 91 CALL(sys_sigsuspend)
90 .long SYMBOL_NAME(sys_sigpending) 92 CALL(sys_sigpending)
91 .long SYMBOL_NAME(sys_sethostname) 93 CALL(sys_sethostname)
92 .long SYMBOL_NAME(sys_setrlimit) /* 75 */ 94 CALL(sys_setrlimit) /* 75 */
93 .long SYMBOL_NAME(sys_old_getrlimit) 95 CALL(sys_old_getrlimit)
94 .long SYMBOL_NAME(sys_getrusage) 96 CALL(sys_getrusage)
95 .long SYMBOL_NAME(sys_gettimeofday) 97 CALL(sys_gettimeofday)
96 .long SYMBOL_NAME(sys_settimeofday) 98 CALL(sys_settimeofday)
97 .long SYMBOL_NAME(sys_getgroups16) /* 80 */ 99 CALL(sys_getgroups16) /* 80 */
98 .long SYMBOL_NAME(sys_setgroups16) 100 CALL(sys_setgroups16)
99 .long SYMBOL_NAME(sys_old_select) 101 CALL(sys_old_select)
100 .long SYMBOL_NAME(sys_symlink) 102 CALL(sys_symlink)
101 .long SYMBOL_NAME(sys_lstat) 103 CALL(sys_lstat)
102 .long SYMBOL_NAME(sys_readlink) /* 85 */ 104 CALL(sys_readlink) /* 85 */
103 .long SYMBOL_NAME(sys_uselib) 105 CALL(sys_uselib)
104 .long SYMBOL_NAME(sys_swapon) 106 CALL(sys_swapon)
105 .long SYMBOL_NAME(sys_reboot) 107 CALL(sys_reboot)
106 .long SYMBOL_NAME(sys_old_readdir) 108 CALL(sys_old_readdir)
107 .long SYMBOL_NAME(sys_old_mmap) /* 90 */ 109 CALL(sys_old_mmap) /* 90 */
108 .long SYMBOL_NAME(sys_munmap) 110 CALL(sys_munmap)
109 .long SYMBOL_NAME(sys_truncate) 111 CALL(sys_truncate)
110 .long SYMBOL_NAME(sys_ftruncate) 112 CALL(sys_ftruncate)
111 .long SYMBOL_NAME(sys_fchmod) 113 CALL(sys_fchmod)
112 .long SYMBOL_NAME(sys_fchown16) /* 95 */ 114 CALL(sys_fchown16) /* 95 */
113 .long SYMBOL_NAME(sys_getpriority) 115 CALL(sys_getpriority)
114 .long SYMBOL_NAME(sys_setpriority) 116 CALL(sys_setpriority)
115 .long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */ 117 CALL(sys_ni_syscall) /* old profil syscall holder */
116 .long SYMBOL_NAME(sys_statfs) 118 CALL(sys_statfs)
117 .long SYMBOL_NAME(sys_fstatfs) /* 100 */ 119 CALL(sys_fstatfs) /* 100 */
118 .long SYMBOL_NAME(sys_ni_syscall) /* ioperm for i386 */ 120 CALL(sys_ni_syscall) /* ioperm for i386 */
119 .long SYMBOL_NAME(sys_socketcall) 121 CALL(sys_socketcall)
120 .long SYMBOL_NAME(sys_syslog) 122 CALL(sys_syslog)
121 .long SYMBOL_NAME(sys_setitimer) 123 CALL(sys_setitimer)
122 .long SYMBOL_NAME(sys_getitimer) /* 105 */ 124 CALL(sys_getitimer) /* 105 */
123 .long SYMBOL_NAME(sys_newstat) 125 CALL(sys_newstat)
124 .long SYMBOL_NAME(sys_newlstat) 126 CALL(sys_newlstat)
125 .long SYMBOL_NAME(sys_newfstat) 127 CALL(sys_newfstat)
126 .long SYMBOL_NAME(sys_ni_syscall) 128 CALL(sys_ni_syscall)
127 .long SYMBOL_NAME(sys_ni_syscall) /* iopl for i386 */ /* 110 */ 129 CALL(sys_ni_syscall) /* iopl for i386 */ /* 110 */
128 .long SYMBOL_NAME(sys_vhangup) 130 CALL(sys_vhangup)
129 .long SYMBOL_NAME(sys_ni_syscall) /* obsolete idle() syscall */ 131 CALL(sys_ni_syscall) /* obsolete idle() syscall */
130 .long SYMBOL_NAME(sys_ni_syscall) /* vm86old for i386 */ 132 CALL(sys_ni_syscall) /* vm86old for i386 */
131 .long SYMBOL_NAME(sys_wait4) 133 CALL(sys_wait4)
132 .long SYMBOL_NAME(sys_swapoff) /* 115 */ 134 CALL(sys_swapoff) /* 115 */
133 .long SYMBOL_NAME(sys_sysinfo) 135 CALL(sys_sysinfo)
134 .long SYMBOL_NAME(sys_ipc) 136 CALL(sys_ipc)
135 .long SYMBOL_NAME(sys_fsync) 137 CALL(sys_fsync)
136 .long SYMBOL_NAME(sys_sigreturn) 138 CALL(sys_sigreturn)
137 .long SYMBOL_NAME(sys_clone) /* 120 */ 139 CALL(sys_clone) /* 120 */
138 .long SYMBOL_NAME(sys_setdomainname) 140 CALL(sys_setdomainname)
139 .long SYMBOL_NAME(sys_newuname) 141 CALL(sys_newuname)
140 .long SYMBOL_NAME(sys_cacheflush) /* modify_ldt for i386 */ 142 CALL(sys_cacheflush) /* modify_ldt for i386 */
141 .long SYMBOL_NAME(sys_adjtimex) 143 CALL(sys_adjtimex)
142 .long SYMBOL_NAME(sys_ni_syscall) /* 125 sys_mprotect */ 144 CALL(sys_ni_syscall) /* 125 sys_mprotect */
143 .long SYMBOL_NAME(sys_sigprocmask) 145 CALL(sys_sigprocmask)
144 .long SYMBOL_NAME(sys_ni_syscall) /* sys_create_module */ 146 CALL(sys_ni_syscall) /* sys_create_module */
145 .long SYMBOL_NAME(sys_init_module) 147 CALL(sys_init_module)
146 .long SYMBOL_NAME(sys_delete_module) 148 CALL(sys_delete_module)
147 .long SYMBOL_NAME(sys_ni_syscall) /* 130 sys_get_kernel_syms */ 149 CALL(sys_ni_syscall) /* 130 sys_get_kernel_syms */
148 .long SYMBOL_NAME(sys_quotactl) 150 CALL(sys_quotactl)
149 .long SYMBOL_NAME(sys_getpgid) 151 CALL(sys_getpgid)
150 .long SYMBOL_NAME(sys_fchdir) 152 CALL(sys_fchdir)
151 .long SYMBOL_NAME(sys_bdflush) 153 CALL(sys_bdflush)
152 .long SYMBOL_NAME(sys_sysfs) /* 135 */ 154 CALL(sys_sysfs) /* 135 */
153 .long SYMBOL_NAME(sys_personality) 155 CALL(sys_personality)
154 .long SYMBOL_NAME(sys_ni_syscall) /* for afs_syscall */ 156 CALL(sys_ni_syscall) /* for afs_syscall */
155 .long SYMBOL_NAME(sys_setfsuid16) 157 CALL(sys_setfsuid16)
156 .long SYMBOL_NAME(sys_setfsgid16) 158 CALL(sys_setfsgid16)
157 .long SYMBOL_NAME(sys_llseek) /* 140 */ 159 CALL(sys_llseek) /* 140 */
158 .long SYMBOL_NAME(sys_getdents) 160 CALL(sys_getdents)
159 .long SYMBOL_NAME(sys_select) 161 CALL(sys_select)
160 .long SYMBOL_NAME(sys_flock) 162 CALL(sys_flock)
161 .long SYMBOL_NAME(sys_ni_syscall) /* sys_msync */ 163 CALL(sys_ni_syscall) /* sys_msync */
162 .long SYMBOL_NAME(sys_readv) /* 145 */ 164 CALL(sys_readv) /* 145 */
163 .long SYMBOL_NAME(sys_writev) 165 CALL(sys_writev)
164 .long SYMBOL_NAME(sys_getsid) 166 CALL(sys_getsid)
165 .long SYMBOL_NAME(sys_fdatasync) 167 CALL(sys_fdatasync)
166 .long SYMBOL_NAME(sys_sysctl) 168 CALL(sys_sysctl)
167 .long SYMBOL_NAME(sys_ni_syscall) /* 150 sys_mlock */ 169 CALL(sys_ni_syscall) /* 150 sys_mlock */
168 .long SYMBOL_NAME(sys_ni_syscall) /* sys_munlock */ 170 CALL(sys_ni_syscall) /* sys_munlock */
169 .long SYMBOL_NAME(sys_ni_syscall) /* sys_mlockall */ 171 CALL(sys_ni_syscall) /* sys_mlockall */
170 .long SYMBOL_NAME(sys_ni_syscall) /* sys_munlockall */ 172 CALL(sys_ni_syscall) /* sys_munlockall */
171 .long SYMBOL_NAME(sys_sched_setparam) 173 CALL(sys_sched_setparam)
172 .long SYMBOL_NAME(sys_sched_getparam) /* 155 */ 174 CALL(sys_sched_getparam) /* 155 */
173 .long SYMBOL_NAME(sys_sched_setscheduler) 175 CALL(sys_sched_setscheduler)
174 .long SYMBOL_NAME(sys_sched_getscheduler) 176 CALL(sys_sched_getscheduler)
175 .long SYMBOL_NAME(sys_sched_yield) 177 CALL(sys_sched_yield)
176 .long SYMBOL_NAME(sys_sched_get_priority_max) 178 CALL(sys_sched_get_priority_max)
177 .long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */ 179 CALL(sys_sched_get_priority_min) /* 160 */
178 .long SYMBOL_NAME(sys_sched_rr_get_interval) 180 CALL(sys_sched_rr_get_interval)
179 .long SYMBOL_NAME(sys_nanosleep) 181 CALL(sys_nanosleep)
180 .long SYMBOL_NAME(sys_ni_syscall) /* sys_mremap */ 182 CALL(sys_ni_syscall) /* sys_mremap */
181 .long SYMBOL_NAME(sys_setresuid16) 183 CALL(sys_setresuid16)
182 .long SYMBOL_NAME(sys_getresuid16) /* 165 */ 184 CALL(sys_getresuid16) /* 165 */
183 .long SYMBOL_NAME(sys_ni_syscall) /* for vm86 */ 185 CALL(sys_ni_syscall) /* for vm86 */
184 .long SYMBOL_NAME(sys_ni_syscall) /* sys_query_module */ 186 CALL(sys_ni_syscall) /* sys_query_module */
185 .long SYMBOL_NAME(sys_poll) 187 CALL(sys_poll)
186 .long SYMBOL_NAME(sys_ni_syscall) /* old nfsservctl */ 188 CALL(sys_ni_syscall) /* old nfsservctl */
187 .long SYMBOL_NAME(sys_setresgid16) /* 170 */ 189 CALL(sys_setresgid16) /* 170 */
188 .long SYMBOL_NAME(sys_getresgid16) 190 CALL(sys_getresgid16)
189 .long SYMBOL_NAME(sys_prctl) 191 CALL(sys_prctl)
190 .long SYMBOL_NAME(sys_rt_sigreturn) 192 CALL(sys_rt_sigreturn)
191 .long SYMBOL_NAME(sys_rt_sigaction) 193 CALL(sys_rt_sigaction)
192 .long SYMBOL_NAME(sys_rt_sigprocmask) /* 175 */ 194 CALL(sys_rt_sigprocmask) /* 175 */
193 .long SYMBOL_NAME(sys_rt_sigpending) 195 CALL(sys_rt_sigpending)
194 .long SYMBOL_NAME(sys_rt_sigtimedwait) 196 CALL(sys_rt_sigtimedwait)
195 .long SYMBOL_NAME(sys_rt_sigqueueinfo) 197 CALL(sys_rt_sigqueueinfo)
196 .long SYMBOL_NAME(sys_rt_sigsuspend) 198 CALL(sys_rt_sigsuspend)
197 .long SYMBOL_NAME(sys_pread64) /* 180 */ 199 CALL(sys_pread64) /* 180 */
198 .long SYMBOL_NAME(sys_pwrite64) 200 CALL(sys_pwrite64)
199 .long SYMBOL_NAME(sys_lchown16); 201 CALL(sys_lchown16);
200 .long SYMBOL_NAME(sys_getcwd) 202 CALL(sys_getcwd)
201 .long SYMBOL_NAME(sys_capget) 203 CALL(sys_capget)
202 .long SYMBOL_NAME(sys_capset) /* 185 */ 204 CALL(sys_capset) /* 185 */
203 .long SYMBOL_NAME(sys_sigaltstack) 205 CALL(sys_sigaltstack)
204 .long SYMBOL_NAME(sys_sendfile) 206 CALL(sys_sendfile)
205 .long SYMBOL_NAME(sys_ni_syscall) /* streams1 */ 207 CALL(sys_ni_syscall) /* streams1 */
206 .long SYMBOL_NAME(sys_ni_syscall) /* streams2 */ 208 CALL(sys_ni_syscall) /* streams2 */
207 .long SYMBOL_NAME(sys_vfork) /* 190 */ 209 CALL(sys_vfork) /* 190 */
208 .long SYMBOL_NAME(sys_getrlimit) 210 CALL(sys_getrlimit)
209 .long SYMBOL_NAME(sys_mmap_pgoff) 211 CALL(sys_mmap_pgoff)
210 .long SYMBOL_NAME(sys_truncate64) 212 CALL(sys_truncate64)
211 .long SYMBOL_NAME(sys_ftruncate64) 213 CALL(sys_ftruncate64)
212 .long SYMBOL_NAME(sys_stat64) /* 195 */ 214 CALL(sys_stat64) /* 195 */
213 .long SYMBOL_NAME(sys_lstat64) 215 CALL(sys_lstat64)
214 .long SYMBOL_NAME(sys_fstat64) 216 CALL(sys_fstat64)
215 .long SYMBOL_NAME(sys_chown) 217 CALL(sys_chown)
216 .long SYMBOL_NAME(sys_getuid) 218 CALL(sys_getuid)
217 .long SYMBOL_NAME(sys_getgid) /* 200 */ 219 CALL(sys_getgid) /* 200 */
218 .long SYMBOL_NAME(sys_geteuid) 220 CALL(sys_geteuid)
219 .long SYMBOL_NAME(sys_getegid) 221 CALL(sys_getegid)
220 .long SYMBOL_NAME(sys_setreuid) 222 CALL(sys_setreuid)
221 .long SYMBOL_NAME(sys_setregid) 223 CALL(sys_setregid)
222 .long SYMBOL_NAME(sys_getgroups) /* 205 */ 224 CALL(sys_getgroups) /* 205 */
223 .long SYMBOL_NAME(sys_setgroups) 225 CALL(sys_setgroups)
224 .long SYMBOL_NAME(sys_fchown) 226 CALL(sys_fchown)
225 .long SYMBOL_NAME(sys_setresuid) 227 CALL(sys_setresuid)
226 .long SYMBOL_NAME(sys_getresuid) 228 CALL(sys_getresuid)
227 .long SYMBOL_NAME(sys_setresgid) /* 210 */ 229 CALL(sys_setresgid) /* 210 */
228 .long SYMBOL_NAME(sys_getresgid) 230 CALL(sys_getresgid)
229 .long SYMBOL_NAME(sys_lchown) 231 CALL(sys_lchown)
230 .long SYMBOL_NAME(sys_setuid) 232 CALL(sys_setuid)
231 .long SYMBOL_NAME(sys_setgid) 233 CALL(sys_setgid)
232 .long SYMBOL_NAME(sys_setfsuid) /* 215 */ 234 CALL(sys_setfsuid) /* 215 */
233 .long SYMBOL_NAME(sys_setfsgid) 235 CALL(sys_setfsgid)
234 .long SYMBOL_NAME(sys_pivot_root) 236 CALL(sys_pivot_root)
235 .long SYMBOL_NAME(sys_ni_syscall) 237 CALL(sys_ni_syscall)
236 .long SYMBOL_NAME(sys_ni_syscall) 238 CALL(sys_ni_syscall)
237 .long SYMBOL_NAME(sys_getdents64) /* 220 */ 239 CALL(sys_getdents64) /* 220 */
238 .long SYMBOL_NAME(sys_fcntl64) 240 CALL(sys_fcntl64)
239 .long SYMBOL_NAME(sys_ni_syscall) /* reserved TUX */ 241 CALL(sys_ni_syscall) /* reserved TUX */
240 .long SYMBOL_NAME(sys_ni_syscall) /* reserved Security */ 242 CALL(sys_ni_syscall) /* reserved Security */
241 .long SYMBOL_NAME(sys_gettid) 243 CALL(sys_gettid)
242 .long SYMBOL_NAME(sys_readahead) /* 225 */ 244 CALL(sys_readahead) /* 225 */
243 .long SYMBOL_NAME(sys_setxattr) 245 CALL(sys_setxattr)
244 .long SYMBOL_NAME(sys_lsetxattr) 246 CALL(sys_lsetxattr)
245 .long SYMBOL_NAME(sys_fsetxattr) 247 CALL(sys_fsetxattr)
246 .long SYMBOL_NAME(sys_getxattr) 248 CALL(sys_getxattr)
247 .long SYMBOL_NAME(sys_lgetxattr) /* 230 */ 249 CALL(sys_lgetxattr) /* 230 */
248 .long SYMBOL_NAME(sys_fgetxattr) 250 CALL(sys_fgetxattr)
249 .long SYMBOL_NAME(sys_listxattr) 251 CALL(sys_listxattr)
250 .long SYMBOL_NAME(sys_llistxattr) 252 CALL(sys_llistxattr)
251 .long SYMBOL_NAME(sys_flistxattr) 253 CALL(sys_flistxattr)
252 .long SYMBOL_NAME(sys_removexattr) /* 235 */ 254 CALL(sys_removexattr) /* 235 */
253 .long SYMBOL_NAME(sys_lremovexattr) 255 CALL(sys_lremovexattr)
254 .long SYMBOL_NAME(sys_fremovexattr) 256 CALL(sys_fremovexattr)
255 .long SYMBOL_NAME(sys_tkill) 257 CALL(sys_tkill)
256 .long SYMBOL_NAME(sys_sendfile64) 258 CALL(sys_sendfile64)
257 .long SYMBOL_NAME(sys_futex) /* 240 */ 259 CALL(sys_futex) /* 240 */
258 .long SYMBOL_NAME(sys_sched_setaffinity) 260 CALL(sys_sched_setaffinity)
259 .long SYMBOL_NAME(sys_sched_getaffinity) 261 CALL(sys_sched_getaffinity)
260 .long SYMBOL_NAME(sys_ni_syscall) 262 CALL(sys_ni_syscall)
261 .long SYMBOL_NAME(sys_ni_syscall) 263 CALL(sys_ni_syscall)
262 .long SYMBOL_NAME(sys_io_setup) /* 245 */ 264 CALL(sys_io_setup) /* 245 */
263 .long SYMBOL_NAME(sys_io_destroy) 265 CALL(sys_io_destroy)
264 .long SYMBOL_NAME(sys_io_getevents) 266 CALL(sys_io_getevents)
265 .long SYMBOL_NAME(sys_io_submit) 267 CALL(sys_io_submit)
266 .long SYMBOL_NAME(sys_io_cancel) 268 CALL(sys_io_cancel)
267 .long SYMBOL_NAME(sys_fadvise64) /* 250 */ 269 CALL(sys_fadvise64) /* 250 */
268 .long SYMBOL_NAME(sys_ni_syscall) 270 CALL(sys_ni_syscall)
269 .long SYMBOL_NAME(sys_exit_group) 271 CALL(sys_exit_group)
270 .long SYMBOL_NAME(sys_lookup_dcookie) 272 CALL(sys_lookup_dcookie)
271 .long SYMBOL_NAME(sys_epoll_create) 273 CALL(sys_epoll_create)
272 .long SYMBOL_NAME(sys_epoll_ctl) /* 255 */ 274 CALL(sys_epoll_ctl) /* 255 */
273 .long SYMBOL_NAME(sys_epoll_wait) 275 CALL(sys_epoll_wait)
274 .long SYMBOL_NAME(sys_ni_syscall) /* sys_remap_file_pages */ 276 CALL(sys_ni_syscall) /* sys_remap_file_pages */
275 .long SYMBOL_NAME(sys_set_tid_address) 277 CALL(sys_set_tid_address)
276 .long SYMBOL_NAME(sys_timer_create) 278 CALL(sys_timer_create)
277 .long SYMBOL_NAME(sys_timer_settime) /* 260 */ 279 CALL(sys_timer_settime) /* 260 */
278 .long SYMBOL_NAME(sys_timer_gettime) 280 CALL(sys_timer_gettime)
279 .long SYMBOL_NAME(sys_timer_getoverrun) 281 CALL(sys_timer_getoverrun)
280 .long SYMBOL_NAME(sys_timer_delete) 282 CALL(sys_timer_delete)
281 .long SYMBOL_NAME(sys_clock_settime) 283 CALL(sys_clock_settime)
282 .long SYMBOL_NAME(sys_clock_gettime) /* 265 */ 284 CALL(sys_clock_gettime) /* 265 */
283 .long SYMBOL_NAME(sys_clock_getres) 285 CALL(sys_clock_getres)
284 .long SYMBOL_NAME(sys_clock_nanosleep) 286 CALL(sys_clock_nanosleep)
285 .long SYMBOL_NAME(sys_statfs64) 287 CALL(sys_statfs64)
286 .long SYMBOL_NAME(sys_fstatfs64) 288 CALL(sys_fstatfs64)
287 .long SYMBOL_NAME(sys_tgkill) /* 270 */ 289 CALL(sys_tgkill) /* 270 */
288 .long SYMBOL_NAME(sys_utimes) 290 CALL(sys_utimes)
289 .long SYMBOL_NAME(sys_fadvise64_64) 291 CALL(sys_fadvise64_64)
290 .long SYMBOL_NAME(sys_ni_syscall) /* sys_vserver */ 292 CALL(sys_ni_syscall) /* sys_vserver */
291 .long SYMBOL_NAME(sys_ni_syscall) 293 CALL(sys_ni_syscall)
292 .long SYMBOL_NAME(sys_get_mempolicy) /* 275 */ 294 CALL(sys_get_mempolicy) /* 275 */
293 .long SYMBOL_NAME(sys_set_mempolicy) 295 CALL(sys_set_mempolicy)
294 .long SYMBOL_NAME(sys_mq_open) 296 CALL(sys_mq_open)
295 .long SYMBOL_NAME(sys_mq_unlink) 297 CALL(sys_mq_unlink)
296 .long SYMBOL_NAME(sys_mq_timedsend) 298 CALL(sys_mq_timedsend)
297 .long SYMBOL_NAME(sys_mq_timedreceive) /* 280 */ 299 CALL(sys_mq_timedreceive) /* 280 */
298 .long SYMBOL_NAME(sys_mq_notify) 300 CALL(sys_mq_notify)
299 .long SYMBOL_NAME(sys_mq_getsetattr) 301 CALL(sys_mq_getsetattr)
300 .long SYMBOL_NAME(sys_waitid) 302 CALL(sys_waitid)
301 .long SYMBOL_NAME(sys_ni_syscall) /* sys_kexec_load */ 303 CALL(sys_ni_syscall) /* sys_kexec_load */
302 .long SYMBOL_NAME(sys_add_key) /* 285 */ 304 CALL(sys_add_key) /* 285 */
303 .long SYMBOL_NAME(sys_request_key) 305 CALL(sys_request_key)
304 .long SYMBOL_NAME(sys_keyctl) 306 CALL(sys_keyctl)
305 .long SYMBOL_NAME(sys_ioprio_set) 307 CALL(sys_ioprio_set)
306 .long SYMBOL_NAME(sys_ioprio_get) /* 290 */ 308 CALL(sys_ioprio_get) /* 290 */
307 .long SYMBOL_NAME(sys_inotify_init) 309 CALL(sys_inotify_init)
308 .long SYMBOL_NAME(sys_inotify_add_watch) 310 CALL(sys_inotify_add_watch)
309 .long SYMBOL_NAME(sys_inotify_rm_watch) 311 CALL(sys_inotify_rm_watch)
310 .long SYMBOL_NAME(sys_migrate_pages) 312 CALL(sys_migrate_pages)
311 .long SYMBOL_NAME(sys_openat) /* 295 */ 313 CALL(sys_openat) /* 295 */
312 .long SYMBOL_NAME(sys_mkdirat) 314 CALL(sys_mkdirat)
313 .long SYMBOL_NAME(sys_mknodat) 315 CALL(sys_mknodat)
314 .long SYMBOL_NAME(sys_fchownat) 316 CALL(sys_fchownat)
315 .long SYMBOL_NAME(sys_futimesat) 317 CALL(sys_futimesat)
316 .long SYMBOL_NAME(sys_fstatat64) /* 300 */ 318 CALL(sys_fstatat64) /* 300 */
317 .long SYMBOL_NAME(sys_unlinkat) 319 CALL(sys_unlinkat)
318 .long SYMBOL_NAME(sys_renameat) 320 CALL(sys_renameat)
319 .long SYMBOL_NAME(sys_linkat) 321 CALL(sys_linkat)
320 .long SYMBOL_NAME(sys_symlinkat) 322 CALL(sys_symlinkat)
321 .long SYMBOL_NAME(sys_readlinkat) /* 305 */ 323 CALL(sys_readlinkat) /* 305 */
322 .long SYMBOL_NAME(sys_fchmodat) 324 CALL(sys_fchmodat)
323 .long SYMBOL_NAME(sys_faccessat) 325 CALL(sys_faccessat)
324 .long SYMBOL_NAME(sys_ni_syscall) /* sys_pselect6 */ 326 CALL(sys_ni_syscall) /* sys_pselect6 */
325 .long SYMBOL_NAME(sys_ni_syscall) /* sys_ppoll */ 327 CALL(sys_ni_syscall) /* sys_ppoll */
326 .long SYMBOL_NAME(sys_unshare) /* 310 */ 328 CALL(sys_unshare) /* 310 */
327 .long SYMBOL_NAME(sys_set_robust_list) 329 CALL(sys_set_robust_list)
328 .long SYMBOL_NAME(sys_get_robust_list) 330 CALL(sys_get_robust_list)
329 .long SYMBOL_NAME(sys_splice) 331 CALL(sys_splice)
330 .long SYMBOL_NAME(sys_sync_file_range) 332 CALL(sys_sync_file_range)
331 .long SYMBOL_NAME(sys_tee) /* 315 */ 333 CALL(sys_tee) /* 315 */
332 .long SYMBOL_NAME(sys_vmsplice) 334 CALL(sys_vmsplice)
333 .long SYMBOL_NAME(sys_ni_syscall) /* sys_move_pages */ 335 CALL(sys_ni_syscall) /* sys_move_pages */
334 .long SYMBOL_NAME(sys_getcpu) 336 CALL(sys_getcpu)
335 .long SYMBOL_NAME(sys_ni_syscall) /* sys_epoll_pwait */ 337 CALL(sys_ni_syscall) /* sys_epoll_pwait */
336 .long SYMBOL_NAME(sys_setns) /* 320 */ 338 CALL(sys_setns) /* 320 */
diff --git a/arch/h8300/lib/abs.S b/arch/h8300/lib/abs.S
index cabdd46b41db..ddd1fb3d01ad 100644
--- a/arch/h8300/lib/abs.S
+++ b/arch/h8300/lib/abs.S
@@ -9,10 +9,10 @@
9 .h8300s 9 .h8300s
10#endif 10#endif
11 .text 11 .text
12.global SYMBOL_NAME(abs) 12.global _abs
13 13
14;;; int abs(int n) 14;;; int abs(int n)
15SYMBOL_NAME_LABEL(abs) 15_abs:
16 mov.l er0,er0 16 mov.l er0,er0
17 bpl 1f 17 bpl 1f
18 neg.l er0 18 neg.l er0
diff --git a/arch/h8300/lib/memcpy.S b/arch/h8300/lib/memcpy.S
index fdcbc1ee673c..cad325e2c0e8 100644
--- a/arch/h8300/lib/memcpy.S
+++ b/arch/h8300/lib/memcpy.S
@@ -10,10 +10,10 @@
10#endif 10#endif
11 11
12 .text 12 .text
13.global SYMBOL_NAME(memcpy) 13.global _memcpy
14 14
15;;; void *memcpy(void *to, void *from, size_t n) 15;;; void *memcpy(void *to, void *from, size_t n)
16SYMBOL_NAME_LABEL(memcpy) 16_memcpy:
17 mov.l er2,er2 17 mov.l er2,er2
18 bne 1f 18 bne 1f
19 rts 19 rts
diff --git a/arch/h8300/lib/memset.S b/arch/h8300/lib/memset.S
index 59abdf9485a5..4549a64c5b79 100644
--- a/arch/h8300/lib/memset.S
+++ b/arch/h8300/lib/memset.S
@@ -10,13 +10,13 @@
10#endif 10#endif
11 .text 11 .text
12 12
13.global SYMBOL_NAME(memset) 13.global _memset
14 14
15;;void *memset(*ptr, int c, size_t count) 15;;void *memset(*ptr, int c, size_t count)
16;; ptr = er0 16;; ptr = er0
17;; c = er1(r1l) 17;; c = er1(r1l)
18;; count = er2 18;; count = er2
19SYMBOL_NAME_LABEL(memset) 19_memset:
20 btst #0,r0l 20 btst #0,r0l
21 beq 2f 21 beq 2f
22 22
diff --git a/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S b/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S
index ecaeb31ae9a4..b2ad0f2d0417 100644
--- a/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S
+++ b/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S
@@ -22,10 +22,10 @@
22#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS 22#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS
23#endif 23#endif
24 24
25 .global SYMBOL_NAME(_start) 25 .global __start
26 .global SYMBOL_NAME(command_line) 26 .global _command_line
27 .global SYMBOL_NAME(_platform_gpio_table) 27 .global __platform_gpio_table
28 .global SYMBOL_NAME(_target_name) 28 .global __target_name
29 29
30 .h8300h 30 .h8300h
31 31
@@ -33,7 +33,7 @@
33 .file "crt0_ram.S" 33 .file "crt0_ram.S"
34 34
35 /* CPU Reset entry */ 35 /* CPU Reset entry */
36SYMBOL_NAME_LABEL(_start) 36__start:
37 mov.l #RAMEND,sp 37 mov.l #RAMEND,sp
38 ldc #0x80,ccr 38 ldc #0x80,ccr
39 39
@@ -59,13 +59,13 @@ SYMBOL_NAME_LABEL(_start)
59 59
60 /* copy kernel commandline */ 60 /* copy kernel commandline */
61 mov.l #COMMAND_START,er5 61 mov.l #COMMAND_START,er5
62 mov.l #SYMBOL_NAME(command_line),er6 62 mov.l #_command_line,er6
63 mov.w #512,r4 63 mov.w #512,r4
64 eepmov.w 64 eepmov.w
65 65
66 /* uClinux kernel start */ 66 /* uClinux kernel start */
67 ldc #0x90,ccr /* running kernel */ 67 ldc #0x90,ccr /* running kernel */
68 mov.l #SYMBOL_NAME(init_thread_union),sp 68 mov.l #_init_thread_union,sp
69 add.l #0x2000,sp 69 add.l #0x2000,sp
70 jsr @_start_kernel 70 jsr @_start_kernel
71_exit: 71_exit:
@@ -107,4 +107,4 @@ __target_name:
107 .asciz "AE-3068" 107 .asciz "AE-3068"
108 108
109 .section .bootvec,"ax" 109 .section .bootvec,"ax"
110 jmp @SYMBOL_NAME(_start) 110 jmp @__start
diff --git a/arch/h8300/platform/h8300h/generic/crt0_ram.S b/arch/h8300/platform/h8300h/generic/crt0_ram.S
index 80d0e16a4499..5ab7d9c12910 100644
--- a/arch/h8300/platform/h8300h/generic/crt0_ram.S
+++ b/arch/h8300/platform/h8300h/generic/crt0_ram.S
@@ -22,10 +22,10 @@
22#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS 22#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS
23#endif 23#endif
24 24
25 .global SYMBOL_NAME(_start) 25 .global __start
26 .global SYMBOL_NAME(command_line) 26 .global _command_line
27 .global SYMBOL_NAME(_platform_gpio_table) 27 .global __platform_gpio_table
28 .global SYMBOL_NAME(_target_name) 28 .global __target_name
29 29
30 .h8300h 30 .h8300h
31 31
@@ -33,7 +33,7 @@
33 .file "crt0_ram.S" 33 .file "crt0_ram.S"
34 34
35 /* CPU Reset entry */ 35 /* CPU Reset entry */
36SYMBOL_NAME_LABEL(_start) 36__start:
37 mov.l #RAMEND,sp 37 mov.l #RAMEND,sp
38 ldc #0x80,ccr 38 ldc #0x80,ccr
39 39
@@ -59,13 +59,13 @@ SYMBOL_NAME_LABEL(_start)
59 59
60 /* copy kernel commandline */ 60 /* copy kernel commandline */
61 mov.l #COMMAND_START,er5 61 mov.l #COMMAND_START,er5
62 mov.l #SYMBOL_NAME(command_line),er6 62 mov.l #_command_line,er6
63 mov.w #512,r4 63 mov.w #512,r4
64 eepmov.w 64 eepmov.w
65 65
66 /* uClinux kernel start */ 66 /* uClinux kernel start */
67 ldc #0x90,ccr /* running kernel */ 67 ldc #0x90,ccr /* running kernel */
68 mov.l #SYMBOL_NAME(init_thread_union),sp 68 mov.l #_init_thread_union,sp
69 add.l #0x2000,sp 69 add.l #0x2000,sp
70 jsr @_start_kernel 70 jsr @_start_kernel
71_exit: 71_exit:
diff --git a/arch/h8300/platform/h8300h/generic/crt0_rom.S b/arch/h8300/platform/h8300h/generic/crt0_rom.S
index 120add7ca832..dda1dfa15a5e 100644
--- a/arch/h8300/platform/h8300h/generic/crt0_rom.S
+++ b/arch/h8300/platform/h8300h/generic/crt0_rom.S
@@ -12,17 +12,17 @@
12 12
13#include <asm/linkage.h> 13#include <asm/linkage.h>
14 14
15 .global SYMBOL_NAME(_start) 15 .global __start
16 .global SYMBOL_NAME(_command_line) 16 .global __command_line
17 .global SYMBOL_NAME(_platform_gpio_table) 17 .global __platform_gpio_table
18 .global SYMBOL_NAME(_target_name) 18 .global __target_name
19 19
20 .h8300h 20 .h8300h
21 .section .text 21 .section .text
22 .file "crt0_rom.S" 22 .file "crt0_rom.S"
23 23
24 /* CPU Reset entry */ 24 /* CPU Reset entry */
25SYMBOL_NAME_LABEL(_start) 25__start:
26 mov.l #__ramend,sp 26 mov.l #__ramend,sp
27 ldc #0x80,ccr 27 ldc #0x80,ccr
28 28
@@ -60,13 +60,13 @@ SYMBOL_NAME_LABEL(_start)
60 60
61 /* copy kernel commandline */ 61 /* copy kernel commandline */
62 mov.l #COMMAND_START,er5 62 mov.l #COMMAND_START,er5
63 mov.l #SYMBOL_NAME(_command_line),er6 63 mov.l #__command_line,er6
64 mov.w #512,r4 64 mov.w #512,r4
65 eepmov.w 65 eepmov.w
66 66
67 /* linux kernel start */ 67 /* linux kernel start */
68 ldc #0x90,ccr /* running kernel */ 68 ldc #0x90,ccr /* running kernel */
69 mov.l #SYMBOL_NAME(init_thread_union),sp 69 mov.l #_init_thread_union,sp
70 add.l #0x2000,sp 70 add.l #0x2000,sp
71 jsr @_start_kernel 71 jsr @_start_kernel
72_exit: 72_exit:
diff --git a/arch/h8300/platform/h8300h/h8max/crt0_ram.S b/arch/h8300/platform/h8300h/h8max/crt0_ram.S
index efcbefb91b67..6a0d4e2d9ec6 100644
--- a/arch/h8300/platform/h8300h/h8max/crt0_ram.S
+++ b/arch/h8300/platform/h8300h/h8max/crt0_ram.S
@@ -22,10 +22,10 @@
22#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS 22#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS
23#endif 23#endif
24 24
25 .global SYMBOL_NAME(_start) 25 .global __start
26 .global SYMBOL_NAME(command_line) 26 .global _command_line
27 .global SYMBOL_NAME(_platform_gpio_table) 27 .global __platform_gpio_table
28 .global SYMBOL_NAME(_target_name) 28 .global __target_name
29 29
30 .h8300h 30 .h8300h
31 31
@@ -33,7 +33,7 @@
33 .file "crt0_ram.S" 33 .file "crt0_ram.S"
34 34
35 /* CPU Reset entry */ 35 /* CPU Reset entry */
36SYMBOL_NAME_LABEL(_start) 36__start:
37 mov.l #RAMEND,sp 37 mov.l #RAMEND,sp
38 ldc #0x80,ccr 38 ldc #0x80,ccr
39 39
@@ -59,13 +59,13 @@ SYMBOL_NAME_LABEL(_start)
59 59
60 /* copy kernel commandline */ 60 /* copy kernel commandline */
61 mov.l #COMMAND_START,er5 61 mov.l #COMMAND_START,er5
62 mov.l #SYMBOL_NAME(command_line),er6 62 mov.l #_command_line,er6
63 mov.w #512,r4 63 mov.w #512,r4
64 eepmov.w 64 eepmov.w
65 65
66 /* uClinux kernel start */ 66 /* uClinux kernel start */
67 ldc #0x90,ccr /* running kernel */ 67 ldc #0x90,ccr /* running kernel */
68 mov.l #SYMBOL_NAME(init_thread_union),sp 68 mov.l #_init_thread_union,sp
69 add.l #0x2000,sp 69 add.l #0x2000,sp
70 jsr @_start_kernel 70 jsr @_start_kernel
71_exit: 71_exit:
@@ -107,4 +107,4 @@ __target_name:
107 .asciz "H8MAX" 107 .asciz "H8MAX"
108 108
109 .section .bootvec,"ax" 109 .section .bootvec,"ax"
110 jmp @SYMBOL_NAME(_start) 110 jmp @__start
diff --git a/arch/h8300/platform/h8s/edosk2674/crt0_ram.S b/arch/h8300/platform/h8s/edosk2674/crt0_ram.S
index d12b0debe478..5ed191b37cde 100644
--- a/arch/h8300/platform/h8s/edosk2674/crt0_ram.S
+++ b/arch/h8300/platform/h8s/edosk2674/crt0_ram.S
@@ -23,10 +23,10 @@
23#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS 23#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS
24#endif 24#endif
25 25
26 .global SYMBOL_NAME(_start) 26 .global __start
27 .global SYMBOL_NAME(_command_line) 27 .global __command_line
28 .global SYMBOL_NAME(_platform_gpio_table) 28 .global __platform_gpio_table
29 .global SYMBOL_NAME(_target_name) 29 .global __target_name
30 30
31 .h8300s 31 .h8300s
32 32
@@ -34,7 +34,7 @@
34 .file "crt0_ram.S" 34 .file "crt0_ram.S"
35 35
36 /* CPU Reset entry */ 36 /* CPU Reset entry */
37SYMBOL_NAME_LABEL(_start) 37__start:
38 mov.l #RAMEND,sp 38 mov.l #RAMEND,sp
39 ldc #0x80,ccr 39 ldc #0x80,ccr
40 ldc #0x00,exr 40 ldc #0x00,exr
@@ -66,13 +66,13 @@ SYMBOL_NAME_LABEL(_start)
66 66
67 /* copy kernel commandline */ 67 /* copy kernel commandline */
68 mov.l #COMMAND_START,er5 68 mov.l #COMMAND_START,er5
69 mov.l #SYMBOL_NAME(command_line),er6 69 mov.l #_command_line,er6
70 mov.w #512,r4 70 mov.w #512,r4
71 eepmov.w 71 eepmov.w
72 72
73 /* uClinux kernel start */ 73 /* uClinux kernel start */
74 ldc #0x90,ccr /* running kernel */ 74 ldc #0x90,ccr /* running kernel */
75 mov.l #SYMBOL_NAME(init_thread_union),sp 75 mov.l #_init_thread_union,sp
76 add.l #0x2000,sp 76 add.l #0x2000,sp
77 jsr @_start_kernel 77 jsr @_start_kernel
78_exit: 78_exit:
@@ -127,4 +127,4 @@ __target_name:
127 .asciz "EDOSK-2674" 127 .asciz "EDOSK-2674"
128 128
129 .section .bootvec,"ax" 129 .section .bootvec,"ax"
130 jmp @SYMBOL_NAME(_start) 130 jmp @__start
diff --git a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S
index c03d23c6fe12..06d1d7f324ca 100644
--- a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S
+++ b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S
@@ -13,17 +13,17 @@
13#include <asm/linkage.h> 13#include <asm/linkage.h>
14#include <asm/regs267x.h> 14#include <asm/regs267x.h>
15 15
16 .global SYMBOL_NAME(_start) 16 .global __start
17 .global SYMBOL_NAME(_command_line) 17 .global __command_line
18 .global SYMBOL_NAME(_platform_gpio_table) 18 .global __platform_gpio_table
19 .global SYMBOL_NAME(_target_name) 19 .global __target_name
20 20
21 .h8300s 21 .h8300s
22 .section .text 22 .section .text
23 .file "crt0_rom.S" 23 .file "crt0_rom.S"
24 24
25 /* CPU Reset entry */ 25 /* CPU Reset entry */
26SYMBOL_NAME_LABEL(_start) 26__start:
27 mov.l #__ramend,sp 27 mov.l #__ramend,sp
28 ldc #0x80,ccr 28 ldc #0x80,ccr
29 ldc #0,exr 29 ldc #0,exr
@@ -82,13 +82,13 @@ SYMBOL_NAME_LABEL(_start)
82 82
83 /* copy kernel commandline */ 83 /* copy kernel commandline */
84 mov.l #COMMAND_START,er5 84 mov.l #COMMAND_START,er5
85 mov.l #SYMBOL_NAME(_command_line),er6 85 mov.l #__command_line,er6
86 mov.w #512,r4 86 mov.w #512,r4
87 eepmov.w 87 eepmov.w
88 88
89 /* linux kernel start */ 89 /* linux kernel start */
90 ldc #0x90,ccr /* running kernel */ 90 ldc #0x90,ccr /* running kernel */
91 mov.l #SYMBOL_NAME(init_thread_union),sp 91 mov.l #_init_thread_union,sp
92 add.l #0x2000,sp 92 add.l #0x2000,sp
93 jsr @_start_kernel 93 jsr @_start_kernel
94_exit: 94_exit:
diff --git a/arch/h8300/platform/h8s/generic/crt0_ram.S b/arch/h8300/platform/h8s/generic/crt0_ram.S
index b04541069976..7018915de74f 100644
--- a/arch/h8300/platform/h8s/generic/crt0_ram.S
+++ b/arch/h8300/platform/h8s/generic/crt0_ram.S
@@ -23,10 +23,10 @@
23#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS 23#define RAMEND CONFIG_BLKDEV_RESERVE_ADDRESS
24#endif 24#endif
25 25
26 .global SYMBOL_NAME(_start) 26 .global __start
27 .global SYMBOL_NAME(_command_line) 27 .global __command_line
28 .global SYMBOL_NAME(_platform_gpio_table) 28 .global __platform_gpio_table
29 .global SYMBOL_NAME(_target_name) 29 .global __target_name
30 30
31 .h8300s 31 .h8300s
32 32
@@ -34,7 +34,7 @@
34 .file "crt0_ram.S" 34 .file "crt0_ram.S"
35 35
36 /* CPU Reset entry */ 36 /* CPU Reset entry */
37SYMBOL_NAME_LABEL(_start) 37__start:
38 mov.l #RAMEND,sp 38 mov.l #RAMEND,sp
39 ldc #0x80,ccr 39 ldc #0x80,ccr
40 ldc #0x00,exr 40 ldc #0x00,exr
@@ -63,13 +63,13 @@ SYMBOL_NAME_LABEL(_start)
63 63
64 /* copy kernel commandline */ 64 /* copy kernel commandline */
65 mov.l #COMMAND_START,er5 65 mov.l #COMMAND_START,er5
66 mov.l #SYMBOL_NAME(command_line),er6 66 mov.l #_command_line,er6
67 mov.w #512,r4 67 mov.w #512,r4
68 eepmov.w 68 eepmov.w
69 69
70 /* uClinux kernel start */ 70 /* uClinux kernel start */
71 ldc #0x90,ccr /* running kernel */ 71 ldc #0x90,ccr /* running kernel */
72 mov.l #SYMBOL_NAME(init_thread_union),sp 72 mov.l #_init_thread_union,sp
73 add.l #0x2000,sp 73 add.l #0x2000,sp
74 jsr @_start_kernel 74 jsr @_start_kernel
75_exit: 75_exit:
@@ -124,4 +124,4 @@ __target_name:
124 .asciz "generic" 124 .asciz "generic"
125 125
126 .section .bootvec,"ax" 126 .section .bootvec,"ax"
127 jmp @SYMBOL_NAME(_start) 127 jmp @__start
diff --git a/arch/h8300/platform/h8s/generic/crt0_rom.S b/arch/h8300/platform/h8s/generic/crt0_rom.S
index 95b6f2898f52..623ba7828193 100644
--- a/arch/h8300/platform/h8s/generic/crt0_rom.S
+++ b/arch/h8300/platform/h8s/generic/crt0_rom.S
@@ -13,17 +13,17 @@
13#include <asm/linkage.h> 13#include <asm/linkage.h>
14#include <asm/regs267x.h> 14#include <asm/regs267x.h>
15 15
16 .global SYMBOL_NAME(_start) 16 .global __start
17 .global SYMBOL_NAME(_command_line) 17 .global __command_line
18 .global SYMBOL_NAME(_platform_gpio_table) 18 .global __platform_gpio_table
19 .global SYMBOL_NAME(_target_name) 19 .global __target_name
20 20
21 .h8300s 21 .h8300s
22 .section .text 22 .section .text
23 .file "crt0_rom.S" 23 .file "crt0_rom.S"
24 24
25 /* CPU Reset entry */ 25 /* CPU Reset entry */
26SYMBOL_NAME_LABEL(_start) 26__start:
27 mov.l #__ramend,sp 27 mov.l #__ramend,sp
28 ldc #0x80,ccr 28 ldc #0x80,ccr
29 ldc #0,exr 29 ldc #0,exr
@@ -61,7 +61,7 @@ SYMBOL_NAME_LABEL(_start)
61 61
62 /* linux kernel start */ 62 /* linux kernel start */
63 ldc #0x90,ccr /* running kernel */ 63 ldc #0x90,ccr /* running kernel */
64 mov.l #SYMBOL_NAME(init_thread_union),sp 64 mov.l #_init_thread_union,sp
65 add.l #0x2000,sp 65 add.l #0x2000,sp
66 jsr @_start_kernel 66 jsr @_start_kernel
67_exit: 67_exit:
diff --git a/arch/m68k/kernel/asm-offsets.c b/arch/m68k/kernel/asm-offsets.c
index a972b00cd77d..8b7b22846366 100644
--- a/arch/m68k/kernel/asm-offsets.c
+++ b/arch/m68k/kernel/asm-offsets.c
@@ -77,7 +77,7 @@ int main(void)
77 DEFINE(BIR_SIZE, offsetof(struct bi_record, size)); 77 DEFINE(BIR_SIZE, offsetof(struct bi_record, size));
78 DEFINE(BIR_DATA, offsetof(struct bi_record, data)); 78 DEFINE(BIR_DATA, offsetof(struct bi_record, data));
79 79
80 /* offsets into font_desc (drivers/video/console/font.h) */ 80 /* offsets into the font_desc struct */
81 DEFINE(FONT_DESC_IDX, offsetof(struct font_desc, idx)); 81 DEFINE(FONT_DESC_IDX, offsetof(struct font_desc, idx));
82 DEFINE(FONT_DESC_NAME, offsetof(struct font_desc, name)); 82 DEFINE(FONT_DESC_NAME, offsetof(struct font_desc, name));
83 DEFINE(FONT_DESC_WIDTH, offsetof(struct font_desc, width)); 83 DEFINE(FONT_DESC_WIDTH, offsetof(struct font_desc, width));
diff --git a/arch/openrisc/include/asm/Kbuild b/arch/openrisc/include/asm/Kbuild
index f20d01d9aaf9..195653e851da 100644
--- a/arch/openrisc/include/asm/Kbuild
+++ b/arch/openrisc/include/asm/Kbuild
@@ -66,3 +66,4 @@ generic-y += types.h
66generic-y += ucontext.h 66generic-y += ucontext.h
67generic-y += user.h 67generic-y += user.h
68generic-y += word-at-a-time.h 68generic-y += word-at-a-time.h
69generic-y += xor.h
diff --git a/arch/score/include/asm/Kbuild b/arch/score/include/asm/Kbuild
index cebaff8069a1..e1c7bb999b06 100644
--- a/arch/score/include/asm/Kbuild
+++ b/arch/score/include/asm/Kbuild
@@ -3,3 +3,4 @@ header-y +=
3 3
4generic-y += clkdev.h 4generic-y += clkdev.h
5generic-y += trace_clock.h 5generic-y += trace_clock.h
6generic-y += xor.h
diff --git a/arch/score/include/asm/dma-mapping.h b/arch/score/include/asm/dma-mapping.h
deleted file mode 100644
index f9c0193c7a53..000000000000
--- a/arch/score/include/asm/dma-mapping.h
+++ /dev/null
@@ -1,6 +0,0 @@
1#ifndef _ASM_SCORE_DMA_MAPPING_H
2#define _ASM_SCORE_DMA_MAPPING_H
3
4#include <asm-generic/dma-mapping-broken.h>
5
6#endif /* _ASM_SCORE_DMA_MAPPING_H */
diff --git a/arch/unicore32/boot/compressed/Makefile b/arch/unicore32/boot/compressed/Makefile
index 950a9afa38f8..96494fb646f7 100644
--- a/arch/unicore32/boot/compressed/Makefile
+++ b/arch/unicore32/boot/compressed/Makefile
@@ -17,7 +17,7 @@ OBJS := misc.o
17 17
18# font.c and font.o 18# font.c and font.o
19CFLAGS_font.o := -Dstatic= 19CFLAGS_font.o := -Dstatic=
20$(obj)/font.c: $(srctree)/drivers/video/console/font_8x8.c 20$(obj)/font.c: $(srctree)/lib/fonts/font_8x8.c
21 $(call cmd,shipped) 21 $(call cmd,shipped)
22 22
23# piggy.S and piggy.o 23# piggy.S and piggy.o
diff --git a/drivers/input/keyboard/cros_ec_keyb.c b/drivers/input/keyboard/cros_ec_keyb.c
index 49557f27bfa6..7e8b0a52af25 100644
--- a/drivers/input/keyboard/cros_ec_keyb.c
+++ b/drivers/input/keyboard/cros_ec_keyb.c
@@ -206,33 +206,6 @@ static int cros_ec_keyb_work(struct notifier_block *nb,
206 return NOTIFY_DONE; 206 return NOTIFY_DONE;
207} 207}
208 208
209/* Clear any keys in the buffer */
210static void cros_ec_keyb_clear_keyboard(struct cros_ec_keyb *ckdev)
211{
212 uint8_t old_state[ckdev->cols];
213 uint8_t new_state[ckdev->cols];
214 unsigned long duration;
215 int i, ret;
216
217 /*
218 * Keep reading until we see that the scan state does not change.
219 * That indicates that we are done.
220 *
221 * Assume that the EC keyscan buffer is at most 32 deep.
222 */
223 duration = jiffies;
224 ret = cros_ec_keyb_get_state(ckdev, new_state);
225 for (i = 1; !ret && i < 32; i++) {
226 memcpy(old_state, new_state, sizeof(old_state));
227 ret = cros_ec_keyb_get_state(ckdev, new_state);
228 if (0 == memcmp(old_state, new_state, sizeof(old_state)))
229 break;
230 }
231 duration = jiffies - duration;
232 dev_info(ckdev->dev, "Discarded %d keyscan(s) in %dus\n", i,
233 jiffies_to_usecs(duration));
234}
235
236static int cros_ec_keyb_probe(struct platform_device *pdev) 209static int cros_ec_keyb_probe(struct platform_device *pdev)
237{ 210{
238 struct cros_ec_device *ec = dev_get_drvdata(pdev->dev.parent); 211 struct cros_ec_device *ec = dev_get_drvdata(pdev->dev.parent);
@@ -299,6 +272,33 @@ static int cros_ec_keyb_probe(struct platform_device *pdev)
299} 272}
300 273
301#ifdef CONFIG_PM_SLEEP 274#ifdef CONFIG_PM_SLEEP
275/* Clear any keys in the buffer */
276static void cros_ec_keyb_clear_keyboard(struct cros_ec_keyb *ckdev)
277{
278 uint8_t old_state[ckdev->cols];
279 uint8_t new_state[ckdev->cols];
280 unsigned long duration;
281 int i, ret;
282
283 /*
284 * Keep reading until we see that the scan state does not change.
285 * That indicates that we are done.
286 *
287 * Assume that the EC keyscan buffer is at most 32 deep.
288 */
289 duration = jiffies;
290 ret = cros_ec_keyb_get_state(ckdev, new_state);
291 for (i = 1; !ret && i < 32; i++) {
292 memcpy(old_state, new_state, sizeof(old_state));
293 ret = cros_ec_keyb_get_state(ckdev, new_state);
294 if (0 == memcmp(old_state, new_state, sizeof(old_state)))
295 break;
296 }
297 duration = jiffies - duration;
298 dev_info(ckdev->dev, "Discarded %d keyscan(s) in %dus\n", i,
299 jiffies_to_usecs(duration));
300}
301
302static int cros_ec_keyb_resume(struct device *dev) 302static int cros_ec_keyb_resume(struct device *dev)
303{ 303{
304 struct cros_ec_keyb *ckdev = dev_get_drvdata(dev); 304 struct cros_ec_keyb *ckdev = dev_get_drvdata(dev);
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index bce695d42f10..25eaf61b98b4 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -220,7 +220,7 @@ if V4L_TEST_DRIVERS
220config VIDEO_VIVI 220config VIDEO_VIVI
221 tristate "Virtual Video Driver" 221 tristate "Virtual Video Driver"
222 depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64 222 depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64
223 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE 223 select FONT_SUPPORT
224 select FONT_8x16 224 select FONT_8x16
225 select VIDEOBUF2_VMALLOC 225 select VIDEOBUF2_VMALLOC
226 default n 226 default n
diff --git a/drivers/parport/Kconfig b/drivers/parport/Kconfig
index a50576081b34..dc82ef096f3b 100644
--- a/drivers/parport/Kconfig
+++ b/drivers/parport/Kconfig
@@ -36,7 +36,9 @@ if PARPORT
36config PARPORT_PC 36config PARPORT_PC
37 tristate "PC-style hardware" 37 tristate "PC-style hardware"
38 depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && !S390 && \ 38 depends on (!SPARC64 || PCI) && !SPARC32 && !M32R && !FRV && !S390 && \
39 (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN && !XTENSA 39 (!M68K || ISA) && !MN10300 && !AVR32 && !BLACKFIN && \
40 !XTENSA && !CRIS
41
40 ---help--- 42 ---help---
41 You should say Y here if you have a PC-style parallel port. All 43 You should say Y here if you have a PC-style parallel port. All
42 IBM PC compatible computers and some Alphas have PC-style 44 IBM PC compatible computers and some Alphas have PC-style
diff --git a/drivers/staging/media/solo6x10/Kconfig b/drivers/staging/media/solo6x10/Kconfig
index 34f3b6d02d2a..9a4296c2e3ab 100644
--- a/drivers/staging/media/solo6x10/Kconfig
+++ b/drivers/staging/media/solo6x10/Kconfig
@@ -1,7 +1,8 @@
1config SOLO6X10 1config SOLO6X10
2 tristate "Softlogic 6x10 MPEG codec cards" 2 tristate "Softlogic 6x10 MPEG codec cards"
3 depends on PCI && VIDEO_DEV && SND && I2C 3 depends on PCI && VIDEO_DEV && SND && I2C
4 depends on FONTS 4 select FONT_SUPPORT
5 select FONT_8x16
5 select VIDEOBUF2_DMA_SG 6 select VIDEOBUF2_DMA_SG
6 select VIDEOBUF2_DMA_CONTIG 7 select VIDEOBUF2_DMA_CONTIG
7 select SND_PCM 8 select SND_PCM
diff --git a/drivers/usb/misc/sisusbvga/Kconfig b/drivers/usb/misc/sisusbvga/Kconfig
index 0d03a5200482..36bc28c884ad 100644
--- a/drivers/usb/misc/sisusbvga/Kconfig
+++ b/drivers/usb/misc/sisusbvga/Kconfig
@@ -2,6 +2,7 @@
2config USB_SISUSBVGA 2config USB_SISUSBVGA
3 tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)" 3 tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)"
4 depends on (USB_MUSB_HDRC || USB_EHCI_HCD) 4 depends on (USB_MUSB_HDRC || USB_EHCI_HCD)
5 select FONT_SUPPORT if USB_SISUSBVGA_CON
5 ---help--- 6 ---help---
6 Say Y here if you intend to attach a USB2VGA dongle based on a 7 Say Y here if you intend to attach a USB2VGA dongle based on a
7 Net2280 and a SiS315 chip. 8 Net2280 and a SiS315 chip.
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index bc922c47d046..8c30603e0a86 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -6,7 +6,9 @@ menu "Console display driver support"
6 6
7config VGA_CONSOLE 7config VGA_CONSOLE
8 bool "VGA text console" if EXPERT || !X86 8 bool "VGA text console" if EXPERT || !X86
9 depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) 9 depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && \
10 !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \
11 (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER)
10 default y 12 default y
11 help 13 help
12 Saying Y here will allow you to use Linux in text mode through a 14 Saying Y here will allow you to use Linux in text mode through a
@@ -62,6 +64,7 @@ config MDA_CONSOLE
62config SGI_NEWPORT_CONSOLE 64config SGI_NEWPORT_CONSOLE
63 tristate "SGI Newport Console support" 65 tristate "SGI Newport Console support"
64 depends on SGI_IP22 66 depends on SGI_IP22
67 select FONT_SUPPORT
65 help 68 help
66 Say Y here if you want the console on the Newport aka XL graphics 69 Say Y here if you want the console on the Newport aka XL graphics
67 card of your Indy. Most people say Y here. 70 card of your Indy. Most people say Y here.
@@ -91,6 +94,7 @@ config FRAMEBUFFER_CONSOLE
91 tristate "Framebuffer Console support" 94 tristate "Framebuffer Console support"
92 depends on FB 95 depends on FB
93 select CRC32 96 select CRC32
97 select FONT_SUPPORT
94 help 98 help
95 Low-level framebuffer-based console driver. 99 Low-level framebuffer-based console driver.
96 100
@@ -123,120 +127,12 @@ config FRAMEBUFFER_CONSOLE_ROTATION
123config STI_CONSOLE 127config STI_CONSOLE
124 bool "STI text console" 128 bool "STI text console"
125 depends on PARISC 129 depends on PARISC
130 select FONT_SUPPORT
126 default y 131 default y
127 help 132 help
128 The STI console is the builtin display/keyboard on HP-PARISC 133 The STI console is the builtin display/keyboard on HP-PARISC
129 machines. Say Y here to build support for it into your kernel. 134 machines. Say Y here to build support for it into your kernel.
130 The alternative is to use your primary serial port as a console. 135 The alternative is to use your primary serial port as a console.
131 136
132config FONTS
133 bool "Select compiled-in fonts"
134 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
135 help
136 Say Y here if you would like to use fonts other than the default
137 your frame buffer console usually use.
138
139 Note that the answer to this question won't directly affect the
140 kernel: saying N will just cause the configurator to skip all
141 the questions about foreign fonts.
142
143 If unsure, say N (the default choices are safe).
144
145config FONT_8x8
146 bool "VGA 8x8 font" if FONTS
147 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
148 default y if !SPARC && !FONTS
149 help
150 This is the "high resolution" font for the VGA frame buffer (the one
151 provided by the text console 80x50 (and higher) modes).
152
153 Note that this is a poor quality font. The VGA 8x16 font is quite a
154 lot more readable.
155
156 Given the resolution provided by the frame buffer device, answer N
157 here is safe.
158
159config FONT_8x16
160 bool "VGA 8x16 font" if FONTS
161 depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON
162 default y if !SPARC && !FONTS
163 help
164 This is the "high resolution" font for the VGA frame buffer (the one
165 provided by the VGA text console 80x25 mode.
166
167 If unsure, say Y.
168
169config FONT_6x11
170 bool "Mac console 6x11 font (not supported by all drivers)" if FONTS
171 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
172 default y if !SPARC && !FONTS && MAC
173 help
174 Small console font with Macintosh-style high-half glyphs. Some Mac
175 framebuffer drivers don't support this one at all.
176
177config FONT_7x14
178 bool "console 7x14 font (not supported by all drivers)" if FONTS
179 depends on FRAMEBUFFER_CONSOLE
180 help
181 Console font with characters just a bit smaller than the default.
182 If the standard 8x16 font is a little too big for you, say Y.
183 Otherwise, say N.
184
185config FONT_PEARL_8x8
186 bool "Pearl (old m68k) console 8x8 font" if FONTS
187 depends on FRAMEBUFFER_CONSOLE
188 default y if !SPARC && !FONTS && AMIGA
189 help
190 Small console font with PC-style control-character and high-half
191 glyphs.
192
193config FONT_ACORN_8x8
194 bool "Acorn console 8x8 font" if FONTS
195 depends on FRAMEBUFFER_CONSOLE
196 default y if !SPARC && !FONTS && ARM && ARCH_ACORN
197 help
198 Small console font with PC-style control characters and high-half
199 glyphs.
200
201config FONT_MINI_4x6
202 bool "Mini 4x6 font"
203 depends on !SPARC && FONTS
204
205config FONT_SUN8x16
206 bool "Sparc console 8x16 font"
207 depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
208 help
209 This is the high resolution console font for Sun machines. Say Y.
210
211config FONT_SUN12x22
212 bool "Sparc console 12x22 font (not supported by all drivers)"
213 depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
214 help
215 This is the high resolution console font for Sun machines with very
216 big letters (like the letters used in the SPARC PROM). If the
217 standard font is unreadable for you, say Y, otherwise say N.
218
219config FONT_10x18
220 bool "console 10x18 font (not supported by all drivers)" if FONTS
221 depends on FRAMEBUFFER_CONSOLE
222 help
223 This is a high resolution console font for machines with very
224 big letters. It fits between the sun 12x22 and the normal 8x16 font.
225 If other fonts are too big or too small for you, say Y, otherwise say N.
226
227config FONT_AUTOSELECT
228 def_bool y
229 depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON
230 depends on !FONT_8x8
231 depends on !FONT_6x11
232 depends on !FONT_7x14
233 depends on !FONT_PEARL_8x8
234 depends on !FONT_ACORN_8x8
235 depends on !FONT_MINI_4x6
236 depends on !FONT_SUN8x16
237 depends on !FONT_SUN12x22
238 depends on !FONT_10x18
239 select FONT_8x16
240
241endmenu 137endmenu
242 138
diff --git a/drivers/video/console/Makefile b/drivers/video/console/Makefile
index 48da25c96cd3..43bfa485db96 100644
--- a/drivers/video/console/Makefile
+++ b/drivers/video/console/Makefile
@@ -2,32 +2,12 @@
2# 5 Aug 1999, James Simmons, <mailto:jsimmons@users.sf.net> 2# 5 Aug 1999, James Simmons, <mailto:jsimmons@users.sf.net>
3# Rewritten to use lists instead of if-statements. 3# Rewritten to use lists instead of if-statements.
4 4
5# Font handling
6font-objs := fonts.o
7
8font-objs-$(CONFIG_FONT_SUN8x16) += font_sun8x16.o
9font-objs-$(CONFIG_FONT_SUN12x22) += font_sun12x22.o
10font-objs-$(CONFIG_FONT_8x8) += font_8x8.o
11font-objs-$(CONFIG_FONT_8x16) += font_8x16.o
12font-objs-$(CONFIG_FONT_6x11) += font_6x11.o
13font-objs-$(CONFIG_FONT_7x14) += font_7x14.o
14font-objs-$(CONFIG_FONT_10x18) += font_10x18.o
15font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
16font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
17font-objs-$(CONFIG_FONT_MINI_4x6) += font_mini_4x6.o
18
19font-objs += $(font-objs-y)
20
21obj-$(CONFIG_FONTS) += font.o
22
23# Each configuration option enables a list of files.
24
25obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o 5obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o
26obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o 6obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o
27obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o 7obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o
28obj-$(CONFIG_VGA_CONSOLE) += vgacon.o 8obj-$(CONFIG_VGA_CONSOLE) += vgacon.o
29obj-$(CONFIG_MDA_CONSOLE) += mdacon.o 9obj-$(CONFIG_MDA_CONSOLE) += mdacon.o
30obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o 10obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o softcursor.o
31ifeq ($(CONFIG_FB_TILEBLITTING),y) 11ifeq ($(CONFIG_FB_TILEBLITTING),y)
32obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += tileblit.o 12obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += tileblit.o
33endif 13endif
@@ -36,8 +16,4 @@ obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon_rotate.o fbcon_cw.o fbcon_ud.o \
36 fbcon_ccw.o 16 fbcon_ccw.o
37endif 17endif
38 18
39obj-$(CONFIG_FB_STI) += sticore.o font.o 19obj-$(CONFIG_FB_STI) += sticore.o
40
41ifeq ($(CONFIG_USB_SISUSBVGA_CON),y)
42obj-$(CONFIG_USB_SISUSBVGA) += font.o
43endif
diff --git a/lib/Kconfig b/lib/Kconfig
index d246a3bbd6ef..5a5203ded0dd 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -410,4 +410,6 @@ config OID_REGISTRY
410config UCS2_STRING 410config UCS2_STRING
411 tristate 411 tristate
412 412
413source "lib/fonts/Kconfig"
414
413endmenu 415endmenu
diff --git a/lib/Makefile b/lib/Makefile
index 8f8d385187f2..c09e38eca87a 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -153,6 +153,8 @@ interval_tree_test-objs := interval_tree_test_main.o interval_tree.o
153 153
154obj-$(CONFIG_ASN1) += asn1_decoder.o 154obj-$(CONFIG_ASN1) += asn1_decoder.o
155 155
156obj-$(CONFIG_FONT_SUPPORT) += fonts/
157
156hostprogs-y := gen_crc32table 158hostprogs-y := gen_crc32table
157clean-files := crc32table.h 159clean-files := crc32table.h
158 160
diff --git a/lib/fonts/Kconfig b/lib/fonts/Kconfig
new file mode 100644
index 000000000000..34fd931b54b5
--- /dev/null
+++ b/lib/fonts/Kconfig
@@ -0,0 +1,117 @@
1#
2# Font configuration
3#
4
5config FONT_SUPPORT
6 tristate
7
8if FONT_SUPPORT
9
10config FONTS
11 bool "Select compiled-in fonts"
12 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
13 help
14 Say Y here if you would like to use fonts other than the default
15 your frame buffer console usually use.
16
17 Note that the answer to this question won't directly affect the
18 kernel: saying N will just cause the configurator to skip all
19 the questions about foreign fonts.
20
21 If unsure, say N (the default choices are safe).
22
23config FONT_8x8
24 bool "VGA 8x8 font" if FONTS
25 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
26 default y if !SPARC && !FONTS
27 help
28 This is the "high resolution" font for the VGA frame buffer (the one
29 provided by the text console 80x50 (and higher) modes).
30
31 Note that this is a poor quality font. The VGA 8x16 font is quite a
32 lot more readable.
33
34 Given the resolution provided by the frame buffer device, answer N
35 here is safe.
36
37config FONT_8x16
38 bool "VGA 8x16 font" if FONTS
39 default y if !SPARC && !FONTS
40 help
41 This is the "high resolution" font for the VGA frame buffer (the one
42 provided by the VGA text console 80x25 mode.
43
44 If unsure, say Y.
45
46config FONT_6x11
47 bool "Mac console 6x11 font (not supported by all drivers)" if FONTS
48 depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
49 default y if !SPARC && !FONTS && MAC
50 help
51 Small console font with Macintosh-style high-half glyphs. Some Mac
52 framebuffer drivers don't support this one at all.
53
54config FONT_7x14
55 bool "console 7x14 font (not supported by all drivers)" if FONTS
56 depends on FRAMEBUFFER_CONSOLE
57 help
58 Console font with characters just a bit smaller than the default.
59 If the standard 8x16 font is a little too big for you, say Y.
60 Otherwise, say N.
61
62config FONT_PEARL_8x8
63 bool "Pearl (old m68k) console 8x8 font" if FONTS
64 depends on FRAMEBUFFER_CONSOLE
65 default y if !SPARC && !FONTS && AMIGA
66 help
67 Small console font with PC-style control-character and high-half
68 glyphs.
69
70config FONT_ACORN_8x8
71 bool "Acorn console 8x8 font" if FONTS
72 depends on FRAMEBUFFER_CONSOLE
73 default y if !SPARC && !FONTS && ARM && ARCH_ACORN
74 help
75 Small console font with PC-style control characters and high-half
76 glyphs.
77
78config FONT_MINI_4x6
79 bool "Mini 4x6 font"
80 depends on !SPARC && FONTS
81
82config FONT_SUN8x16
83 bool "Sparc console 8x16 font"
84 depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
85 help
86 This is the high resolution console font for Sun machines. Say Y.
87
88config FONT_SUN12x22
89 bool "Sparc console 12x22 font (not supported by all drivers)"
90 depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
91 help
92 This is the high resolution console font for Sun machines with very
93 big letters (like the letters used in the SPARC PROM). If the
94 standard font is unreadable for you, say Y, otherwise say N.
95
96config FONT_10x18
97 bool "console 10x18 font (not supported by all drivers)" if FONTS
98 depends on FRAMEBUFFER_CONSOLE
99 help
100 This is a high resolution console font for machines with very
101 big letters. It fits between the sun 12x22 and the normal 8x16 font.
102 If other fonts are too big or too small for you, say Y, otherwise say N.
103
104config FONT_AUTOSELECT
105 def_bool y
106 depends on !FONT_8x8
107 depends on !FONT_6x11
108 depends on !FONT_7x14
109 depends on !FONT_PEARL_8x8
110 depends on !FONT_ACORN_8x8
111 depends on !FONT_MINI_4x6
112 depends on !FONT_SUN8x16
113 depends on !FONT_SUN12x22
114 depends on !FONT_10x18
115 select FONT_8x16
116
117endif # FONT_SUPPORT
diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile
new file mode 100644
index 000000000000..2761560f3f15
--- /dev/null
+++ b/lib/fonts/Makefile
@@ -0,0 +1,18 @@
1# Font handling
2
3font-objs := fonts.o
4
5font-objs-$(CONFIG_FONT_SUN8x16) += font_sun8x16.o
6font-objs-$(CONFIG_FONT_SUN12x22) += font_sun12x22.o
7font-objs-$(CONFIG_FONT_8x8) += font_8x8.o
8font-objs-$(CONFIG_FONT_8x16) += font_8x16.o
9font-objs-$(CONFIG_FONT_6x11) += font_6x11.o
10font-objs-$(CONFIG_FONT_7x14) += font_7x14.o
11font-objs-$(CONFIG_FONT_10x18) += font_10x18.o
12font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
13font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
14font-objs-$(CONFIG_FONT_MINI_4x6) += font_mini_4x6.o
15
16font-objs += $(font-objs-y)
17
18obj-$(CONFIG_FONT_SUPPORT) += font.o
diff --git a/drivers/video/console/font_10x18.c b/lib/fonts/font_10x18.c
index 6be72bb218ee..6be72bb218ee 100644
--- a/drivers/video/console/font_10x18.c
+++ b/lib/fonts/font_10x18.c
diff --git a/drivers/video/console/font_6x11.c b/lib/fonts/font_6x11.c
index 46e86e67aa6a..46e86e67aa6a 100644
--- a/drivers/video/console/font_6x11.c
+++ b/lib/fonts/font_6x11.c
diff --git a/drivers/video/console/font_7x14.c b/lib/fonts/font_7x14.c
index 3b7dbf9c060b..3b7dbf9c060b 100644
--- a/drivers/video/console/font_7x14.c
+++ b/lib/fonts/font_7x14.c
diff --git a/drivers/video/console/font_8x16.c b/lib/fonts/font_8x16.c
index 00a0c67a5c7d..00a0c67a5c7d 100644
--- a/drivers/video/console/font_8x16.c
+++ b/lib/fonts/font_8x16.c
diff --git a/drivers/video/console/font_8x8.c b/lib/fonts/font_8x8.c
index 9f56efe2cee7..9f56efe2cee7 100644
--- a/drivers/video/console/font_8x8.c
+++ b/lib/fonts/font_8x8.c
diff --git a/drivers/video/console/font_acorn_8x8.c b/lib/fonts/font_acorn_8x8.c
index 639e31ae1100..639e31ae1100 100644
--- a/drivers/video/console/font_acorn_8x8.c
+++ b/lib/fonts/font_acorn_8x8.c
diff --git a/drivers/video/console/font_mini_4x6.c b/lib/fonts/font_mini_4x6.c
index 838caa1cfef7..838caa1cfef7 100644
--- a/drivers/video/console/font_mini_4x6.c
+++ b/lib/fonts/font_mini_4x6.c
diff --git a/drivers/video/console/font_pearl_8x8.c b/lib/fonts/font_pearl_8x8.c
index dc6ad539ca4e..dc6ad539ca4e 100644
--- a/drivers/video/console/font_pearl_8x8.c
+++ b/lib/fonts/font_pearl_8x8.c
diff --git a/drivers/video/console/font_sun12x22.c b/lib/fonts/font_sun12x22.c
index d3643853c33a..d3643853c33a 100644
--- a/drivers/video/console/font_sun12x22.c
+++ b/lib/fonts/font_sun12x22.c
diff --git a/drivers/video/console/font_sun8x16.c b/lib/fonts/font_sun8x16.c
index 268151325b83..268151325b83 100644
--- a/drivers/video/console/font_sun8x16.c
+++ b/lib/fonts/font_sun8x16.c
diff --git a/drivers/video/console/fonts.c b/lib/fonts/fonts.c
index d0c03fd70871..f947189efe6d 100644
--- a/drivers/video/console/fonts.c
+++ b/lib/fonts/fonts.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/drivers/video/fonts.c -- `Soft' font definitions 2 * `Soft' font definitions
3 * 3 *
4 * Created 1995 by Geert Uytterhoeven 4 * Created 1995 by Geert Uytterhoeven
5 * Rewritten 1998 by Martin Mares <mj@ucw.cz> 5 * Rewritten 1998 by Martin Mares <mj@ucw.cz>