diff --git a/include/arch/i386/Makefile b/include/arch/i386/Makefile index e6a3ef52d..5fd9edfbd 100644 --- a/include/arch/i386/Makefile +++ b/include/arch/i386/Makefile @@ -2,6 +2,6 @@ INCSDIR= /usr/include/i386 INCS= archtypes.h bios.h cmos.h cpu.h diskparm.h fpu.h int86.h \ interrupt.h mcontext.h memory.h partition.h pci.h ports.h \ - stackframe.h vm.h + stackframe.h vm.h asm.h .include diff --git a/include/arch/i386/asm.h b/include/arch/i386/asm.h new file mode 100644 index 000000000..ade958053 --- /dev/null +++ b/include/arch/i386/asm.h @@ -0,0 +1,73 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)asm.h 5.5 (Berkeley) 5/7/91 + */ + +#ifndef _I386_ASM_H_ +#define _I386_ASM_H_ + +#ifdef __ELF__ +# define _C_LABEL(x) x +#else +# ifdef __STDC__ +# define _C_LABEL(x) _ ## x +# else +# define _C_LABEL(x) _/**/x +# endif +#endif +#define _ASM_LABEL(x) x + +/* allow overriding entrypoint alignment */ +#if !defined(_ALIGN_TEXT) +# define _ALIGN_TEXT .balign 16 +#endif + +#ifdef __ACK__ +#define _ENTRY(x) \ + .text; _ALIGN_TEXT; .globl x; x: +#else +#define _ENTRY(x) \ + .text; _ALIGN_TEXT; .globl x; .type x,@function; x: +#endif +#define _LABEL(x) \ + .globl x; x: + +#define ENTRY(y) _ENTRY(_C_LABEL(y)) +#define NENTRY(y) _ENTRY(_C_LABEL(y)) +#define ASENTRY(y) _ENTRY(_ASM_LABEL(y)) +#define LABEL(y) _LABEL(_C_LABEL(y)) +#define END(y) .size y, . - y + +#define IMPORT(sym) \ + .extern _C_LABEL(sym) + +#endif /* !_I386_ASM_H_ */ diff --git a/kernel/arch/i386/apic_asm.S b/kernel/arch/i386/apic_asm.S index b678a5a4f..ddbd30f59 100644 --- a/kernel/arch/i386/apic_asm.S +++ b/kernel/arch/i386/apic_asm.S @@ -2,30 +2,13 @@ #include "apic.h" #include "sconst.h" #include "apic_asm.h" +#include -.globl _apic_hwint00 /* handlers for hardware interrupts */ -.globl _apic_hwint01 -.globl _apic_hwint02 -.globl _apic_hwint03 -.globl _apic_hwint04 -.globl _apic_hwint05 -.globl _apic_hwint06 -.globl _apic_hwint07 -.globl _apic_hwint08 -.globl _apic_hwint09 -.globl _apic_hwint10 -.globl _apic_hwint11 -.globl _apic_hwint12 -.globl _apic_hwint13 -.globl _apic_hwint14 -.globl _apic_hwint15 - -.text #define APIC_IRQ_HANDLER(irq) \ push $irq ;\ - call _irq_handle /* intr_handle(irq_handlers[irq]) */ ;\ + call _C_LABEL(irq_handle) /* intr_handle(irq_handlers[irq]) */ ;\ add $4, %esp ;\ - mov _lapic_eoi_addr, %eax ;\ + mov _C_LABEL(lapic_eoi_addr), %eax ;\ movl $0, (%eax) ;\ /*===========================================================================*/ @@ -38,98 +21,83 @@ \ SAVE_PROCESS_CTX(0) ;\ push %ebp ;\ - call _context_stop ;\ + call _C_LABEL(context_stop) ;\ add $4, %esp ;\ movl $0, %ebp /* for stack trace */ ;\ APIC_IRQ_HANDLER(irq) ;\ - jmp _switch_to_user ;\ + jmp _C_LABEL(switch_to_user) ;\ \ 0: \ pusha ;\ - call _context_stop_idle ;\ + call _C_LABEL(context_stop_idle) ;\ APIC_IRQ_HANDLER(irq) ;\ CLEAR_IF(10*4(%esp)) ;\ popa ;\ iret ; +/* Handlers for hardware interrupts */ /* Each of these entry points is an expansion of the hwint_master macro */ -.balign 16 -_apic_hwint00: +ENTRY(apic_hwint00) /* Interrupt routine for irq 0 (the clock). */ apic_hwint(0) -.balign 16 -_apic_hwint01: +ENTRY(apic_hwint01) /* Interrupt routine for irq 1 (keyboard) */ apic_hwint(1) -.balign 16 -_apic_hwint02: +ENTRY(apic_hwint02) /* Interrupt routine for irq 2 (cascade!) */ apic_hwint(2) -.balign 16 -_apic_hwint03: +ENTRY(apic_hwint03) /* Interrupt routine for irq 3 (second serial) */ apic_hwint(3) -.balign 16 -_apic_hwint04: +ENTRY(apic_hwint04) /* Interrupt routine for irq 4 (first serial) */ apic_hwint(4) -.balign 16 -_apic_hwint05: +ENTRY(apic_hwint05) /* Interrupt routine for irq 5 (XT winchester) */ apic_hwint(5) -.balign 16 -_apic_hwint06: +ENTRY(apic_hwint06) /* Interrupt routine for irq 6 (floppy) */ apic_hwint(6) -.balign 16 -_apic_hwint07: +ENTRY(apic_hwint07) /* Interrupt routine for irq 7 (printer) */ apic_hwint(7) -.balign 16 -_apic_hwint08: +ENTRY(apic_hwint08) /* Interrupt routine for irq 8 (realtime clock) */ apic_hwint(8) -.balign 16 -_apic_hwint09: +ENTRY(apic_hwint09) /* Interrupt routine for irq 9 (irq 2 redirected) */ apic_hwint(9) -.balign 16 -_apic_hwint10: +ENTRY(apic_hwint10) /* Interrupt routine for irq 10 */ apic_hwint(10) -.balign 16 -_apic_hwint11: +ENTRY(apic_hwint11) /* Interrupt routine for irq 11 */ apic_hwint(11) -.balign 16 -_apic_hwint12: +ENTRY(apic_hwint12) /* Interrupt routine for irq 12 */ apic_hwint(12) -.balign 16 -_apic_hwint13: +ENTRY(apic_hwint13) /* Interrupt routine for irq 13 (FPU exception) */ apic_hwint(13) -.balign 16 -_apic_hwint14: +ENTRY(apic_hwint14) /* Interrupt routine for irq 14 (AT winchester) */ apic_hwint(14) -.balign 16 -_apic_hwint15: +ENTRY(apic_hwint15) /* Interrupt routine for irq 15 */ apic_hwint(15) @@ -137,7 +105,7 @@ _apic_hwint15: #define LAPIC_INTR_HANDLER(func) \ movl $func, %eax ;\ call *%eax /* call the actual handler */ ;\ - mov _lapic_eoi_addr, %eax /* the end of handler*/ ;\ + mov _C_LABEL(lapic_eoi_addr), %eax /* the end of handler*/ ;\ movl $0, (%eax) ; /*===========================================================================*/ @@ -149,28 +117,26 @@ _apic_hwint15: \ SAVE_PROCESS_CTX(0) ;\ push %ebp ;\ - call _context_stop ;\ + call _C_LABEL(context_stop) ;\ add $4, %esp ;\ movl $0, %ebp /* for stack trace */ ;\ LAPIC_INTR_HANDLER(func) ;\ - jmp _switch_to_user ;\ + jmp _C_LABEL(switch_to_user) ;\ \ 0: \ pusha ;\ - call _context_stop_idle ;\ + call _C_LABEL(context_stop_idle) ;\ LAPIC_INTR_HANDLER(func) ;\ CLEAR_IF(10*4(%esp)) ;\ popa ;\ iret ; /* apic timer tick handlers */ -.globl _lapic_bsp_timer_int_handler -_lapic_bsp_timer_int_handler: - lapic_intr(_bsp_timer_int_handler) +ENTRY(lapic_bsp_timer_int_handler) + lapic_intr(_C_LABEL(bsp_timer_int_handler)) -.globl _lapic_ap_timer_int_handler -_lapic_ap_timer_int_handler: - lapic_intr(_ap_timer_int_handler) +ENTRY(lapic_ap_timer_int_handler) + lapic_intr(_C_LABEL(ap_timer_int_handler)) #ifdef CONFIG_APIC_DEBUG @@ -183,275 +149,271 @@ lapic_intr_dummy_handler_msg: #define lapic_intr_dummy_handler(vect) \ pushl $vect; \ push $lapic_intr_dummy_handler_msg; \ - call _printf; \ + call _C_LABEL(printf); \ 1: jmp 1b; /* never return */ #define LAPIC_INTR_DUMMY_HANDLER(vect) \ .balign LAPIC_INTR_DUMMY_HANDLER_SIZE; \ lapic_intr_dummy_handler_##vect: lapic_intr_dummy_handler(vect) -.globl _lapic_intr_dummy_handles_start -_lapic_intr_dummy_handles_start: - -LAPIC_INTR_DUMMY_HANDLER(0) -LAPIC_INTR_DUMMY_HANDLER(1) -LAPIC_INTR_DUMMY_HANDLER(2) -LAPIC_INTR_DUMMY_HANDLER(3) -LAPIC_INTR_DUMMY_HANDLER(4) -LAPIC_INTR_DUMMY_HANDLER(5) -LAPIC_INTR_DUMMY_HANDLER(6) -LAPIC_INTR_DUMMY_HANDLER(7) -LAPIC_INTR_DUMMY_HANDLER(8) -LAPIC_INTR_DUMMY_HANDLER(9) -LAPIC_INTR_DUMMY_HANDLER(10) -LAPIC_INTR_DUMMY_HANDLER(11) -LAPIC_INTR_DUMMY_HANDLER(12) -LAPIC_INTR_DUMMY_HANDLER(13) -LAPIC_INTR_DUMMY_HANDLER(14) -LAPIC_INTR_DUMMY_HANDLER(15) -LAPIC_INTR_DUMMY_HANDLER(16) -LAPIC_INTR_DUMMY_HANDLER(17) -LAPIC_INTR_DUMMY_HANDLER(18) -LAPIC_INTR_DUMMY_HANDLER(19) -LAPIC_INTR_DUMMY_HANDLER(20) -LAPIC_INTR_DUMMY_HANDLER(21) -LAPIC_INTR_DUMMY_HANDLER(22) -LAPIC_INTR_DUMMY_HANDLER(23) -LAPIC_INTR_DUMMY_HANDLER(24) -LAPIC_INTR_DUMMY_HANDLER(25) -LAPIC_INTR_DUMMY_HANDLER(26) -LAPIC_INTR_DUMMY_HANDLER(27) -LAPIC_INTR_DUMMY_HANDLER(28) -LAPIC_INTR_DUMMY_HANDLER(29) -LAPIC_INTR_DUMMY_HANDLER(30) -LAPIC_INTR_DUMMY_HANDLER(31) -LAPIC_INTR_DUMMY_HANDLER(32) -LAPIC_INTR_DUMMY_HANDLER(33) -LAPIC_INTR_DUMMY_HANDLER(34) -LAPIC_INTR_DUMMY_HANDLER(35) -LAPIC_INTR_DUMMY_HANDLER(36) -LAPIC_INTR_DUMMY_HANDLER(37) -LAPIC_INTR_DUMMY_HANDLER(38) -LAPIC_INTR_DUMMY_HANDLER(39) -LAPIC_INTR_DUMMY_HANDLER(40) -LAPIC_INTR_DUMMY_HANDLER(41) -LAPIC_INTR_DUMMY_HANDLER(42) -LAPIC_INTR_DUMMY_HANDLER(43) -LAPIC_INTR_DUMMY_HANDLER(44) -LAPIC_INTR_DUMMY_HANDLER(45) -LAPIC_INTR_DUMMY_HANDLER(46) -LAPIC_INTR_DUMMY_HANDLER(47) -LAPIC_INTR_DUMMY_HANDLER(48) -LAPIC_INTR_DUMMY_HANDLER(49) -LAPIC_INTR_DUMMY_HANDLER(50) -LAPIC_INTR_DUMMY_HANDLER(51) -LAPIC_INTR_DUMMY_HANDLER(52) -LAPIC_INTR_DUMMY_HANDLER(53) -LAPIC_INTR_DUMMY_HANDLER(54) -LAPIC_INTR_DUMMY_HANDLER(55) -LAPIC_INTR_DUMMY_HANDLER(56) -LAPIC_INTR_DUMMY_HANDLER(57) -LAPIC_INTR_DUMMY_HANDLER(58) -LAPIC_INTR_DUMMY_HANDLER(59) -LAPIC_INTR_DUMMY_HANDLER(60) -LAPIC_INTR_DUMMY_HANDLER(61) -LAPIC_INTR_DUMMY_HANDLER(62) -LAPIC_INTR_DUMMY_HANDLER(63) -LAPIC_INTR_DUMMY_HANDLER(64) -LAPIC_INTR_DUMMY_HANDLER(65) -LAPIC_INTR_DUMMY_HANDLER(66) -LAPIC_INTR_DUMMY_HANDLER(67) -LAPIC_INTR_DUMMY_HANDLER(68) -LAPIC_INTR_DUMMY_HANDLER(69) -LAPIC_INTR_DUMMY_HANDLER(70) -LAPIC_INTR_DUMMY_HANDLER(71) -LAPIC_INTR_DUMMY_HANDLER(72) -LAPIC_INTR_DUMMY_HANDLER(73) -LAPIC_INTR_DUMMY_HANDLER(74) -LAPIC_INTR_DUMMY_HANDLER(75) -LAPIC_INTR_DUMMY_HANDLER(76) -LAPIC_INTR_DUMMY_HANDLER(77) -LAPIC_INTR_DUMMY_HANDLER(78) -LAPIC_INTR_DUMMY_HANDLER(79) -LAPIC_INTR_DUMMY_HANDLER(80) -LAPIC_INTR_DUMMY_HANDLER(81) -LAPIC_INTR_DUMMY_HANDLER(82) -LAPIC_INTR_DUMMY_HANDLER(83) -LAPIC_INTR_DUMMY_HANDLER(84) -LAPIC_INTR_DUMMY_HANDLER(85) -LAPIC_INTR_DUMMY_HANDLER(86) -LAPIC_INTR_DUMMY_HANDLER(87) -LAPIC_INTR_DUMMY_HANDLER(88) -LAPIC_INTR_DUMMY_HANDLER(89) -LAPIC_INTR_DUMMY_HANDLER(90) -LAPIC_INTR_DUMMY_HANDLER(91) -LAPIC_INTR_DUMMY_HANDLER(92) -LAPIC_INTR_DUMMY_HANDLER(93) -LAPIC_INTR_DUMMY_HANDLER(94) -LAPIC_INTR_DUMMY_HANDLER(95) -LAPIC_INTR_DUMMY_HANDLER(96) -LAPIC_INTR_DUMMY_HANDLER(97) -LAPIC_INTR_DUMMY_HANDLER(98) -LAPIC_INTR_DUMMY_HANDLER(99) -LAPIC_INTR_DUMMY_HANDLER(100) -LAPIC_INTR_DUMMY_HANDLER(101) -LAPIC_INTR_DUMMY_HANDLER(102) -LAPIC_INTR_DUMMY_HANDLER(103) -LAPIC_INTR_DUMMY_HANDLER(104) -LAPIC_INTR_DUMMY_HANDLER(105) -LAPIC_INTR_DUMMY_HANDLER(106) -LAPIC_INTR_DUMMY_HANDLER(107) -LAPIC_INTR_DUMMY_HANDLER(108) -LAPIC_INTR_DUMMY_HANDLER(109) -LAPIC_INTR_DUMMY_HANDLER(110) -LAPIC_INTR_DUMMY_HANDLER(111) -LAPIC_INTR_DUMMY_HANDLER(112) -LAPIC_INTR_DUMMY_HANDLER(113) -LAPIC_INTR_DUMMY_HANDLER(114) -LAPIC_INTR_DUMMY_HANDLER(115) -LAPIC_INTR_DUMMY_HANDLER(116) -LAPIC_INTR_DUMMY_HANDLER(117) -LAPIC_INTR_DUMMY_HANDLER(118) -LAPIC_INTR_DUMMY_HANDLER(119) -LAPIC_INTR_DUMMY_HANDLER(120) -LAPIC_INTR_DUMMY_HANDLER(121) -LAPIC_INTR_DUMMY_HANDLER(122) -LAPIC_INTR_DUMMY_HANDLER(123) -LAPIC_INTR_DUMMY_HANDLER(124) -LAPIC_INTR_DUMMY_HANDLER(125) -LAPIC_INTR_DUMMY_HANDLER(126) -LAPIC_INTR_DUMMY_HANDLER(127) -LAPIC_INTR_DUMMY_HANDLER(128) -LAPIC_INTR_DUMMY_HANDLER(129) -LAPIC_INTR_DUMMY_HANDLER(130) -LAPIC_INTR_DUMMY_HANDLER(131) -LAPIC_INTR_DUMMY_HANDLER(132) -LAPIC_INTR_DUMMY_HANDLER(133) -LAPIC_INTR_DUMMY_HANDLER(134) -LAPIC_INTR_DUMMY_HANDLER(135) -LAPIC_INTR_DUMMY_HANDLER(136) -LAPIC_INTR_DUMMY_HANDLER(137) -LAPIC_INTR_DUMMY_HANDLER(138) -LAPIC_INTR_DUMMY_HANDLER(139) -LAPIC_INTR_DUMMY_HANDLER(140) -LAPIC_INTR_DUMMY_HANDLER(141) -LAPIC_INTR_DUMMY_HANDLER(142) -LAPIC_INTR_DUMMY_HANDLER(143) -LAPIC_INTR_DUMMY_HANDLER(144) -LAPIC_INTR_DUMMY_HANDLER(145) -LAPIC_INTR_DUMMY_HANDLER(146) -LAPIC_INTR_DUMMY_HANDLER(147) -LAPIC_INTR_DUMMY_HANDLER(148) -LAPIC_INTR_DUMMY_HANDLER(149) -LAPIC_INTR_DUMMY_HANDLER(150) -LAPIC_INTR_DUMMY_HANDLER(151) -LAPIC_INTR_DUMMY_HANDLER(152) -LAPIC_INTR_DUMMY_HANDLER(153) -LAPIC_INTR_DUMMY_HANDLER(154) -LAPIC_INTR_DUMMY_HANDLER(155) -LAPIC_INTR_DUMMY_HANDLER(156) -LAPIC_INTR_DUMMY_HANDLER(157) -LAPIC_INTR_DUMMY_HANDLER(158) -LAPIC_INTR_DUMMY_HANDLER(159) -LAPIC_INTR_DUMMY_HANDLER(160) -LAPIC_INTR_DUMMY_HANDLER(161) -LAPIC_INTR_DUMMY_HANDLER(162) -LAPIC_INTR_DUMMY_HANDLER(163) -LAPIC_INTR_DUMMY_HANDLER(164) -LAPIC_INTR_DUMMY_HANDLER(165) -LAPIC_INTR_DUMMY_HANDLER(166) -LAPIC_INTR_DUMMY_HANDLER(167) -LAPIC_INTR_DUMMY_HANDLER(168) -LAPIC_INTR_DUMMY_HANDLER(169) -LAPIC_INTR_DUMMY_HANDLER(170) -LAPIC_INTR_DUMMY_HANDLER(171) -LAPIC_INTR_DUMMY_HANDLER(172) -LAPIC_INTR_DUMMY_HANDLER(173) -LAPIC_INTR_DUMMY_HANDLER(174) -LAPIC_INTR_DUMMY_HANDLER(175) -LAPIC_INTR_DUMMY_HANDLER(176) -LAPIC_INTR_DUMMY_HANDLER(177) -LAPIC_INTR_DUMMY_HANDLER(178) -LAPIC_INTR_DUMMY_HANDLER(179) -LAPIC_INTR_DUMMY_HANDLER(180) -LAPIC_INTR_DUMMY_HANDLER(181) -LAPIC_INTR_DUMMY_HANDLER(182) -LAPIC_INTR_DUMMY_HANDLER(183) -LAPIC_INTR_DUMMY_HANDLER(184) -LAPIC_INTR_DUMMY_HANDLER(185) -LAPIC_INTR_DUMMY_HANDLER(186) -LAPIC_INTR_DUMMY_HANDLER(187) -LAPIC_INTR_DUMMY_HANDLER(188) -LAPIC_INTR_DUMMY_HANDLER(189) -LAPIC_INTR_DUMMY_HANDLER(190) -LAPIC_INTR_DUMMY_HANDLER(191) -LAPIC_INTR_DUMMY_HANDLER(192) -LAPIC_INTR_DUMMY_HANDLER(193) -LAPIC_INTR_DUMMY_HANDLER(194) -LAPIC_INTR_DUMMY_HANDLER(195) -LAPIC_INTR_DUMMY_HANDLER(196) -LAPIC_INTR_DUMMY_HANDLER(197) -LAPIC_INTR_DUMMY_HANDLER(198) -LAPIC_INTR_DUMMY_HANDLER(199) -LAPIC_INTR_DUMMY_HANDLER(200) -LAPIC_INTR_DUMMY_HANDLER(201) -LAPIC_INTR_DUMMY_HANDLER(202) -LAPIC_INTR_DUMMY_HANDLER(203) -LAPIC_INTR_DUMMY_HANDLER(204) -LAPIC_INTR_DUMMY_HANDLER(205) -LAPIC_INTR_DUMMY_HANDLER(206) -LAPIC_INTR_DUMMY_HANDLER(207) -LAPIC_INTR_DUMMY_HANDLER(208) -LAPIC_INTR_DUMMY_HANDLER(209) -LAPIC_INTR_DUMMY_HANDLER(210) -LAPIC_INTR_DUMMY_HANDLER(211) -LAPIC_INTR_DUMMY_HANDLER(212) -LAPIC_INTR_DUMMY_HANDLER(213) -LAPIC_INTR_DUMMY_HANDLER(214) -LAPIC_INTR_DUMMY_HANDLER(215) -LAPIC_INTR_DUMMY_HANDLER(216) -LAPIC_INTR_DUMMY_HANDLER(217) -LAPIC_INTR_DUMMY_HANDLER(218) -LAPIC_INTR_DUMMY_HANDLER(219) -LAPIC_INTR_DUMMY_HANDLER(220) -LAPIC_INTR_DUMMY_HANDLER(221) -LAPIC_INTR_DUMMY_HANDLER(222) -LAPIC_INTR_DUMMY_HANDLER(223) -LAPIC_INTR_DUMMY_HANDLER(224) -LAPIC_INTR_DUMMY_HANDLER(225) -LAPIC_INTR_DUMMY_HANDLER(226) -LAPIC_INTR_DUMMY_HANDLER(227) -LAPIC_INTR_DUMMY_HANDLER(228) -LAPIC_INTR_DUMMY_HANDLER(229) -LAPIC_INTR_DUMMY_HANDLER(230) -LAPIC_INTR_DUMMY_HANDLER(231) -LAPIC_INTR_DUMMY_HANDLER(232) -LAPIC_INTR_DUMMY_HANDLER(233) -LAPIC_INTR_DUMMY_HANDLER(234) -LAPIC_INTR_DUMMY_HANDLER(235) -LAPIC_INTR_DUMMY_HANDLER(236) -LAPIC_INTR_DUMMY_HANDLER(237) -LAPIC_INTR_DUMMY_HANDLER(238) -LAPIC_INTR_DUMMY_HANDLER(239) -LAPIC_INTR_DUMMY_HANDLER(240) -LAPIC_INTR_DUMMY_HANDLER(241) -LAPIC_INTR_DUMMY_HANDLER(242) -LAPIC_INTR_DUMMY_HANDLER(243) -LAPIC_INTR_DUMMY_HANDLER(244) -LAPIC_INTR_DUMMY_HANDLER(245) -LAPIC_INTR_DUMMY_HANDLER(246) -LAPIC_INTR_DUMMY_HANDLER(247) -LAPIC_INTR_DUMMY_HANDLER(248) -LAPIC_INTR_DUMMY_HANDLER(249) -LAPIC_INTR_DUMMY_HANDLER(250) -LAPIC_INTR_DUMMY_HANDLER(251) -LAPIC_INTR_DUMMY_HANDLER(252) -LAPIC_INTR_DUMMY_HANDLER(253) -LAPIC_INTR_DUMMY_HANDLER(254) -LAPIC_INTR_DUMMY_HANDLER(255) - -.globl _lapic_intr_dummy_handles_end -_lapic_intr_dummy_handles_end: +LABEL(lapic_intr_dummy_handles_start) + LAPIC_INTR_DUMMY_HANDLER(0) + LAPIC_INTR_DUMMY_HANDLER(1) + LAPIC_INTR_DUMMY_HANDLER(2) + LAPIC_INTR_DUMMY_HANDLER(3) + LAPIC_INTR_DUMMY_HANDLER(4) + LAPIC_INTR_DUMMY_HANDLER(5) + LAPIC_INTR_DUMMY_HANDLER(6) + LAPIC_INTR_DUMMY_HANDLER(7) + LAPIC_INTR_DUMMY_HANDLER(8) + LAPIC_INTR_DUMMY_HANDLER(9) + LAPIC_INTR_DUMMY_HANDLER(10) + LAPIC_INTR_DUMMY_HANDLER(11) + LAPIC_INTR_DUMMY_HANDLER(12) + LAPIC_INTR_DUMMY_HANDLER(13) + LAPIC_INTR_DUMMY_HANDLER(14) + LAPIC_INTR_DUMMY_HANDLER(15) + LAPIC_INTR_DUMMY_HANDLER(16) + LAPIC_INTR_DUMMY_HANDLER(17) + LAPIC_INTR_DUMMY_HANDLER(18) + LAPIC_INTR_DUMMY_HANDLER(19) + LAPIC_INTR_DUMMY_HANDLER(20) + LAPIC_INTR_DUMMY_HANDLER(21) + LAPIC_INTR_DUMMY_HANDLER(22) + LAPIC_INTR_DUMMY_HANDLER(23) + LAPIC_INTR_DUMMY_HANDLER(24) + LAPIC_INTR_DUMMY_HANDLER(25) + LAPIC_INTR_DUMMY_HANDLER(26) + LAPIC_INTR_DUMMY_HANDLER(27) + LAPIC_INTR_DUMMY_HANDLER(28) + LAPIC_INTR_DUMMY_HANDLER(29) + LAPIC_INTR_DUMMY_HANDLER(30) + LAPIC_INTR_DUMMY_HANDLER(31) + LAPIC_INTR_DUMMY_HANDLER(32) + LAPIC_INTR_DUMMY_HANDLER(33) + LAPIC_INTR_DUMMY_HANDLER(34) + LAPIC_INTR_DUMMY_HANDLER(35) + LAPIC_INTR_DUMMY_HANDLER(36) + LAPIC_INTR_DUMMY_HANDLER(37) + LAPIC_INTR_DUMMY_HANDLER(38) + LAPIC_INTR_DUMMY_HANDLER(39) + LAPIC_INTR_DUMMY_HANDLER(40) + LAPIC_INTR_DUMMY_HANDLER(41) + LAPIC_INTR_DUMMY_HANDLER(42) + LAPIC_INTR_DUMMY_HANDLER(43) + LAPIC_INTR_DUMMY_HANDLER(44) + LAPIC_INTR_DUMMY_HANDLER(45) + LAPIC_INTR_DUMMY_HANDLER(46) + LAPIC_INTR_DUMMY_HANDLER(47) + LAPIC_INTR_DUMMY_HANDLER(48) + LAPIC_INTR_DUMMY_HANDLER(49) + LAPIC_INTR_DUMMY_HANDLER(50) + LAPIC_INTR_DUMMY_HANDLER(51) + LAPIC_INTR_DUMMY_HANDLER(52) + LAPIC_INTR_DUMMY_HANDLER(53) + LAPIC_INTR_DUMMY_HANDLER(54) + LAPIC_INTR_DUMMY_HANDLER(55) + LAPIC_INTR_DUMMY_HANDLER(56) + LAPIC_INTR_DUMMY_HANDLER(57) + LAPIC_INTR_DUMMY_HANDLER(58) + LAPIC_INTR_DUMMY_HANDLER(59) + LAPIC_INTR_DUMMY_HANDLER(60) + LAPIC_INTR_DUMMY_HANDLER(61) + LAPIC_INTR_DUMMY_HANDLER(62) + LAPIC_INTR_DUMMY_HANDLER(63) + LAPIC_INTR_DUMMY_HANDLER(64) + LAPIC_INTR_DUMMY_HANDLER(65) + LAPIC_INTR_DUMMY_HANDLER(66) + LAPIC_INTR_DUMMY_HANDLER(67) + LAPIC_INTR_DUMMY_HANDLER(68) + LAPIC_INTR_DUMMY_HANDLER(69) + LAPIC_INTR_DUMMY_HANDLER(70) + LAPIC_INTR_DUMMY_HANDLER(71) + LAPIC_INTR_DUMMY_HANDLER(72) + LAPIC_INTR_DUMMY_HANDLER(73) + LAPIC_INTR_DUMMY_HANDLER(74) + LAPIC_INTR_DUMMY_HANDLER(75) + LAPIC_INTR_DUMMY_HANDLER(76) + LAPIC_INTR_DUMMY_HANDLER(77) + LAPIC_INTR_DUMMY_HANDLER(78) + LAPIC_INTR_DUMMY_HANDLER(79) + LAPIC_INTR_DUMMY_HANDLER(80) + LAPIC_INTR_DUMMY_HANDLER(81) + LAPIC_INTR_DUMMY_HANDLER(82) + LAPIC_INTR_DUMMY_HANDLER(83) + LAPIC_INTR_DUMMY_HANDLER(84) + LAPIC_INTR_DUMMY_HANDLER(85) + LAPIC_INTR_DUMMY_HANDLER(86) + LAPIC_INTR_DUMMY_HANDLER(87) + LAPIC_INTR_DUMMY_HANDLER(88) + LAPIC_INTR_DUMMY_HANDLER(89) + LAPIC_INTR_DUMMY_HANDLER(90) + LAPIC_INTR_DUMMY_HANDLER(91) + LAPIC_INTR_DUMMY_HANDLER(92) + LAPIC_INTR_DUMMY_HANDLER(93) + LAPIC_INTR_DUMMY_HANDLER(94) + LAPIC_INTR_DUMMY_HANDLER(95) + LAPIC_INTR_DUMMY_HANDLER(96) + LAPIC_INTR_DUMMY_HANDLER(97) + LAPIC_INTR_DUMMY_HANDLER(98) + LAPIC_INTR_DUMMY_HANDLER(99) + LAPIC_INTR_DUMMY_HANDLER(100) + LAPIC_INTR_DUMMY_HANDLER(101) + LAPIC_INTR_DUMMY_HANDLER(102) + LAPIC_INTR_DUMMY_HANDLER(103) + LAPIC_INTR_DUMMY_HANDLER(104) + LAPIC_INTR_DUMMY_HANDLER(105) + LAPIC_INTR_DUMMY_HANDLER(106) + LAPIC_INTR_DUMMY_HANDLER(107) + LAPIC_INTR_DUMMY_HANDLER(108) + LAPIC_INTR_DUMMY_HANDLER(109) + LAPIC_INTR_DUMMY_HANDLER(110) + LAPIC_INTR_DUMMY_HANDLER(111) + LAPIC_INTR_DUMMY_HANDLER(112) + LAPIC_INTR_DUMMY_HANDLER(113) + LAPIC_INTR_DUMMY_HANDLER(114) + LAPIC_INTR_DUMMY_HANDLER(115) + LAPIC_INTR_DUMMY_HANDLER(116) + LAPIC_INTR_DUMMY_HANDLER(117) + LAPIC_INTR_DUMMY_HANDLER(118) + LAPIC_INTR_DUMMY_HANDLER(119) + LAPIC_INTR_DUMMY_HANDLER(120) + LAPIC_INTR_DUMMY_HANDLER(121) + LAPIC_INTR_DUMMY_HANDLER(122) + LAPIC_INTR_DUMMY_HANDLER(123) + LAPIC_INTR_DUMMY_HANDLER(124) + LAPIC_INTR_DUMMY_HANDLER(125) + LAPIC_INTR_DUMMY_HANDLER(126) + LAPIC_INTR_DUMMY_HANDLER(127) + LAPIC_INTR_DUMMY_HANDLER(128) + LAPIC_INTR_DUMMY_HANDLER(129) + LAPIC_INTR_DUMMY_HANDLER(130) + LAPIC_INTR_DUMMY_HANDLER(131) + LAPIC_INTR_DUMMY_HANDLER(132) + LAPIC_INTR_DUMMY_HANDLER(133) + LAPIC_INTR_DUMMY_HANDLER(134) + LAPIC_INTR_DUMMY_HANDLER(135) + LAPIC_INTR_DUMMY_HANDLER(136) + LAPIC_INTR_DUMMY_HANDLER(137) + LAPIC_INTR_DUMMY_HANDLER(138) + LAPIC_INTR_DUMMY_HANDLER(139) + LAPIC_INTR_DUMMY_HANDLER(140) + LAPIC_INTR_DUMMY_HANDLER(141) + LAPIC_INTR_DUMMY_HANDLER(142) + LAPIC_INTR_DUMMY_HANDLER(143) + LAPIC_INTR_DUMMY_HANDLER(144) + LAPIC_INTR_DUMMY_HANDLER(145) + LAPIC_INTR_DUMMY_HANDLER(146) + LAPIC_INTR_DUMMY_HANDLER(147) + LAPIC_INTR_DUMMY_HANDLER(148) + LAPIC_INTR_DUMMY_HANDLER(149) + LAPIC_INTR_DUMMY_HANDLER(150) + LAPIC_INTR_DUMMY_HANDLER(151) + LAPIC_INTR_DUMMY_HANDLER(152) + LAPIC_INTR_DUMMY_HANDLER(153) + LAPIC_INTR_DUMMY_HANDLER(154) + LAPIC_INTR_DUMMY_HANDLER(155) + LAPIC_INTR_DUMMY_HANDLER(156) + LAPIC_INTR_DUMMY_HANDLER(157) + LAPIC_INTR_DUMMY_HANDLER(158) + LAPIC_INTR_DUMMY_HANDLER(159) + LAPIC_INTR_DUMMY_HANDLER(160) + LAPIC_INTR_DUMMY_HANDLER(161) + LAPIC_INTR_DUMMY_HANDLER(162) + LAPIC_INTR_DUMMY_HANDLER(163) + LAPIC_INTR_DUMMY_HANDLER(164) + LAPIC_INTR_DUMMY_HANDLER(165) + LAPIC_INTR_DUMMY_HANDLER(166) + LAPIC_INTR_DUMMY_HANDLER(167) + LAPIC_INTR_DUMMY_HANDLER(168) + LAPIC_INTR_DUMMY_HANDLER(169) + LAPIC_INTR_DUMMY_HANDLER(170) + LAPIC_INTR_DUMMY_HANDLER(171) + LAPIC_INTR_DUMMY_HANDLER(172) + LAPIC_INTR_DUMMY_HANDLER(173) + LAPIC_INTR_DUMMY_HANDLER(174) + LAPIC_INTR_DUMMY_HANDLER(175) + LAPIC_INTR_DUMMY_HANDLER(176) + LAPIC_INTR_DUMMY_HANDLER(177) + LAPIC_INTR_DUMMY_HANDLER(178) + LAPIC_INTR_DUMMY_HANDLER(179) + LAPIC_INTR_DUMMY_HANDLER(180) + LAPIC_INTR_DUMMY_HANDLER(181) + LAPIC_INTR_DUMMY_HANDLER(182) + LAPIC_INTR_DUMMY_HANDLER(183) + LAPIC_INTR_DUMMY_HANDLER(184) + LAPIC_INTR_DUMMY_HANDLER(185) + LAPIC_INTR_DUMMY_HANDLER(186) + LAPIC_INTR_DUMMY_HANDLER(187) + LAPIC_INTR_DUMMY_HANDLER(188) + LAPIC_INTR_DUMMY_HANDLER(189) + LAPIC_INTR_DUMMY_HANDLER(190) + LAPIC_INTR_DUMMY_HANDLER(191) + LAPIC_INTR_DUMMY_HANDLER(192) + LAPIC_INTR_DUMMY_HANDLER(193) + LAPIC_INTR_DUMMY_HANDLER(194) + LAPIC_INTR_DUMMY_HANDLER(195) + LAPIC_INTR_DUMMY_HANDLER(196) + LAPIC_INTR_DUMMY_HANDLER(197) + LAPIC_INTR_DUMMY_HANDLER(198) + LAPIC_INTR_DUMMY_HANDLER(199) + LAPIC_INTR_DUMMY_HANDLER(200) + LAPIC_INTR_DUMMY_HANDLER(201) + LAPIC_INTR_DUMMY_HANDLER(202) + LAPIC_INTR_DUMMY_HANDLER(203) + LAPIC_INTR_DUMMY_HANDLER(204) + LAPIC_INTR_DUMMY_HANDLER(205) + LAPIC_INTR_DUMMY_HANDLER(206) + LAPIC_INTR_DUMMY_HANDLER(207) + LAPIC_INTR_DUMMY_HANDLER(208) + LAPIC_INTR_DUMMY_HANDLER(209) + LAPIC_INTR_DUMMY_HANDLER(210) + LAPIC_INTR_DUMMY_HANDLER(211) + LAPIC_INTR_DUMMY_HANDLER(212) + LAPIC_INTR_DUMMY_HANDLER(213) + LAPIC_INTR_DUMMY_HANDLER(214) + LAPIC_INTR_DUMMY_HANDLER(215) + LAPIC_INTR_DUMMY_HANDLER(216) + LAPIC_INTR_DUMMY_HANDLER(217) + LAPIC_INTR_DUMMY_HANDLER(218) + LAPIC_INTR_DUMMY_HANDLER(219) + LAPIC_INTR_DUMMY_HANDLER(220) + LAPIC_INTR_DUMMY_HANDLER(221) + LAPIC_INTR_DUMMY_HANDLER(222) + LAPIC_INTR_DUMMY_HANDLER(223) + LAPIC_INTR_DUMMY_HANDLER(224) + LAPIC_INTR_DUMMY_HANDLER(225) + LAPIC_INTR_DUMMY_HANDLER(226) + LAPIC_INTR_DUMMY_HANDLER(227) + LAPIC_INTR_DUMMY_HANDLER(228) + LAPIC_INTR_DUMMY_HANDLER(229) + LAPIC_INTR_DUMMY_HANDLER(230) + LAPIC_INTR_DUMMY_HANDLER(231) + LAPIC_INTR_DUMMY_HANDLER(232) + LAPIC_INTR_DUMMY_HANDLER(233) + LAPIC_INTR_DUMMY_HANDLER(234) + LAPIC_INTR_DUMMY_HANDLER(235) + LAPIC_INTR_DUMMY_HANDLER(236) + LAPIC_INTR_DUMMY_HANDLER(237) + LAPIC_INTR_DUMMY_HANDLER(238) + LAPIC_INTR_DUMMY_HANDLER(239) + LAPIC_INTR_DUMMY_HANDLER(240) + LAPIC_INTR_DUMMY_HANDLER(241) + LAPIC_INTR_DUMMY_HANDLER(242) + LAPIC_INTR_DUMMY_HANDLER(243) + LAPIC_INTR_DUMMY_HANDLER(244) + LAPIC_INTR_DUMMY_HANDLER(245) + LAPIC_INTR_DUMMY_HANDLER(246) + LAPIC_INTR_DUMMY_HANDLER(247) + LAPIC_INTR_DUMMY_HANDLER(248) + LAPIC_INTR_DUMMY_HANDLER(249) + LAPIC_INTR_DUMMY_HANDLER(250) + LAPIC_INTR_DUMMY_HANDLER(251) + LAPIC_INTR_DUMMY_HANDLER(252) + LAPIC_INTR_DUMMY_HANDLER(253) + LAPIC_INTR_DUMMY_HANDLER(254) + LAPIC_INTR_DUMMY_HANDLER(255) +LABEL(lapic_intr_dummy_handles_end) #endif /* CONFIG_APIC_DEBUG */ diff --git a/kernel/arch/i386/debugreg.S b/kernel/arch/i386/debugreg.S index 2eaf244a6..5bb6d785c 100644 --- a/kernel/arch/i386/debugreg.S +++ b/kernel/arch/i386/debugreg.S @@ -1,15 +1,12 @@ -.text +#include #define LD_ST_REG(reg) ;\ -.globl _ld_##reg ;\ -.globl _st_##reg ;\ - ;\ -_ld_##reg: ;\ +ENTRY(ld_##reg) ;\ mov 4(%esp), %eax ;\ mov %eax, %reg ;\ ret ;\ ;\ -_st_##reg: ;\ +ENTRY(st_##reg) ;\ mov %reg, %eax ;\ ret diff --git a/kernel/arch/i386/io_inb.S b/kernel/arch/i386/io_inb.S index f7e4f7a77..923dd7cb7 100644 --- a/kernel/arch/i386/io_inb.S +++ b/kernel/arch/i386/io_inb.S @@ -1,10 +1,9 @@ /* inb() - Input one byte Author: Kees J. Bot */ /* 18 Mar 1996 */ /* unsigned inb(U16_t port); */ +#include -.text -.globl _inb -_inb: +ENTRY(inb) push %ebp movl %esp, %ebp movl 8(%ebp), %edx /* port */ diff --git a/kernel/arch/i386/io_inl.S b/kernel/arch/i386/io_inl.S index cae064f93..f4e0accf8 100644 --- a/kernel/arch/i386/io_inl.S +++ b/kernel/arch/i386/io_inl.S @@ -1,10 +1,9 @@ /* inl() - Input one dword Author: Kees J. Bot */ /* 18 Mar 1996 */ /* unsigned inl(U16_t port); */ +#include -.text -.globl _inl -_inl: +ENTRY(inl) push %ebp movl %esp, %ebp movl 8(%ebp), %edx /* port */ diff --git a/kernel/arch/i386/io_intr.S b/kernel/arch/i386/io_intr.S index 7d210c0c8..492d8f301 100644 --- a/kernel/arch/i386/io_intr.S +++ b/kernel/arch/i386/io_intr.S @@ -3,14 +3,12 @@ /* 18 Mar 1996 */ /* void intr_disable(void); */ /* void intr_enable(void); */ +#include -.text -.globl _intr_disable -_intr_disable: +ENTRY(intr_disable) cli ret -.globl _intr_enable -_intr_enable: +ENTRY(intr_enable) sti ret diff --git a/kernel/arch/i386/io_inw.S b/kernel/arch/i386/io_inw.S index 8bfdc1fa7..e22ef8826 100644 --- a/kernel/arch/i386/io_inw.S +++ b/kernel/arch/i386/io_inw.S @@ -1,10 +1,9 @@ /* inw() - Input one word Author: Kees J. Bot */ /* 18 Mar 1996 */ /* unsigned inw(U16_t port); */ +#include -.text -.globl _inw -_inw: +ENTRY(inw) push %ebp movl %esp, %ebp movl 8(%ebp), %edx /* port */ diff --git a/kernel/arch/i386/io_outb.S b/kernel/arch/i386/io_outb.S index 302868ad4..7c0bf8d15 100644 --- a/kernel/arch/i386/io_outb.S +++ b/kernel/arch/i386/io_outb.S @@ -1,10 +1,9 @@ /* outb() - Output one byte Author: Kees J. Bot */ /* 18 Mar 1996 */ /* void outb(U16_t port, U8_t value); */ +#include -.text -.globl _outb -_outb: +ENTRY(outb) push %ebp movl %esp, %ebp movl 8(%ebp), %edx /* port */ diff --git a/kernel/arch/i386/io_outl.S b/kernel/arch/i386/io_outl.S index 0b67fa1cb..7ba581be6 100644 --- a/kernel/arch/i386/io_outl.S +++ b/kernel/arch/i386/io_outl.S @@ -1,10 +1,9 @@ /* outl() - Output one dword Author: Kees J. Bot */ /* 18 Mar 1996 */ /* void outl(U16_t port, u32_t value); */ +#include -.text -.globl _outl -_outl: +ENTRY(outl) push %ebp movl %esp, %ebp movl 8(%ebp), %edx /* port */ diff --git a/kernel/arch/i386/io_outw.S b/kernel/arch/i386/io_outw.S index 165c3cabb..57c45433e 100644 --- a/kernel/arch/i386/io_outw.S +++ b/kernel/arch/i386/io_outw.S @@ -1,10 +1,9 @@ /* outw() - Output one word Author: Kees J. Bot */ /* 18 Mar 1996 */ /* void outw(U16_t port, U16_t value); */ +#include -.text -.globl _outw -_outw: +ENTRY(outw) push %ebp movl %esp, %ebp movl 8(%ebp), %edx /* port */ diff --git a/kernel/arch/i386/klib.S b/kernel/arch/i386/klib.S index a1cfc4267..467fd518a 100644 --- a/kernel/arch/i386/klib.S +++ b/kernel/arch/i386/klib.S @@ -3,6 +3,7 @@ #include #include +#include #include #include #include "archconst.h" @@ -12,52 +13,9 @@ /* * This file contains a number of assembly code utility routines needed by the - * kernel. They are: + * kernel. */ -.globl _monitor/* exit Minix and return to the monitor */ -.globl _int86 /* let the monitor make an 8086 interrupt call */ -#ifdef __ACK__ -.globl _exit /* dummy for library routines */ -.globl __exit /* dummy for library routines */ -.globl ___exit /* dummy for library routines */ -#endif -.globl ___main /* dummy for GCC */ -.globl _phys_insw /* transfer data from (disk controller) port to memory */ -.globl _phys_insb /* likewise byte by byte */ -.globl _phys_outsw /* transfer data from memory to (disk controller) port */ -.globl _phys_outsb /* likewise byte by byte */ -.globl _phys_copy /* copy data from anywhere to anywhere in memory */ -.globl _phys_copy_fault /* phys_copy pagefault */ -.globl _phys_copy_fault_in_kernel /* phys_copy pagefault in kernel */ -.globl _phys_memset /* write pattern anywhere in memory */ -.globl _mem_rdw /* copy one word from [segment:offset] */ -.globl _reset /* reset the system */ -.globl _halt_cpu/* halts the current cpu when idle */ -.globl _read_cpu_flags /* read the cpu flags */ -.globl _read_cr0 /* read cr0 */ -.globl _read_cr2 /* read cr2 */ -.globl _getcr3val -.globl _write_cr0 /* write a value in cr0 */ -.globl _read_cr3 -.globl _write_cr3 -.globl _read_cr4 -.globl _write_cr4 - -.globl _catch_pagefaults -.globl _read_ds -.globl _read_cs -.globl _read_ss -.globl _idt_reload /* reload idt when returning to monitor. */ - -.globl _fninit /* non-waiting FPU initialization */ -.globl _fnstsw /* store status word (non-waiting) */ -.globl _fnstcw /* store control word (non-waiting) */ -.globl _fxsave -.globl _fnsave -.globl _fxrstor -.globl _frstor -.globl _clts /* * The routines only guarantee to preserve the registers the C compiler @@ -65,15 +23,13 @@ * direction bit in the flags). */ -.text /*===========================================================================*/ /* monitor */ /*===========================================================================*/ /* PUBLIC void monitor(); */ -/* Return to the monitor. */ - -_monitor: - movl _mon_sp, %esp /* restore monitor stack pointer */ +/* exit Minix and return to the monitor */ +ENTRY(monitor) + movl _C_LABEL(mon_sp), %esp /* restore monitor stack pointer */ movw $SS_SELECTOR, %dx /* monitor data segment */ mov %dx, %ds mov %dx, %es @@ -90,12 +46,13 @@ _monitor: /* int86 */ /*===========================================================================*/ /* PUBLIC void int86(); */ -_int86: - cmpb $0, _mon_return /* is the monitor there? */ +/* let the monitor make an 8086 interrupt call */ +ENTRY(int86) + cmpb $0, _C_LABEL(mon_return) /* is the monitor there? */ jne 0f movb $0x01, %ah /* an int 13 error seems appropriate */ - movb %ah, _reg86+0 /* reg86.w.f = 1 (set carry flag) */ - movb %ah, _reg86+13 /* reg86.b.ah = 0x01 = "invalid command" */ + movb %ah, _C_LABEL(reg86)+0 /* reg86.w.f = 1 (set carry flag) */ + movb %ah, _C_LABEL(reg86)+13 /* reg86.b.ah = 0x01 = "invalid command" */ ret 0: push %ebp /* save C registers */ @@ -109,7 +66,7 @@ _int86: movb %al, %ah inb $INT_CTLMASK push %eax /* save interrupt masks */ - movl _irq_use, %eax /* map of in-use IRQ's */ + movl _C_LABEL(irq_use), %eax /* map of in-use IRQ's */ and $~(1< #include +#include #include #include "archconst.h" #include "kernel/const.h" @@ -11,12 +12,9 @@ /* * This file contains a number of 16-bit assembly code utility routines needed by the - * kernel. They are: + * kernel. */ -.globl _poweroff16 /* enter real mode */ -.globl _poweroff16_end - .text .code16 @@ -25,10 +23,10 @@ /*===========================================================================*/ /* PUBLIC void poweroff16(); */ /* Power down system */ -_poweroff16: +ENTRY(poweroff16) /* Assume eax is already set to required value of cr0*/ .byte 0x0F,0x22,0xC0 /* mov %cr0,%eax */ - ljmp $0,$(BIOS_POWEROFF_ENTRY + real_mode - _poweroff16) + ljmp $0,$(BIOS_POWEROFF_ENTRY + real_mode - _C_LABEL(poweroff16)) real_mode: mov $((BIOS_POWEROFF_ENTRY >> 4) + 0x200),%ax mov %ax, %ds @@ -88,7 +86,7 @@ apm_err: mov $0x07, %bx mov $POWEROFF_MSG_LEN, %cx mov $0x0300, %dx - mov $(poweroff_msg - _poweroff16), %bp + mov $(poweroff_msg - _C_LABEL(poweroff16)), %bp int $0x10 0: hlt jmp 0b @@ -99,4 +97,4 @@ kb_wait: jnz kb_wait ret /*mark the end for copy*/ -_poweroff16_end: +LABEL(poweroff16_end) diff --git a/kernel/arch/i386/mpx.S b/kernel/arch/i386/mpx.S index 75557e6fd..42d25cd73 100644 --- a/kernel/arch/i386/mpx.S +++ b/kernel/arch/i386/mpx.S @@ -47,6 +47,7 @@ begbss: #include #include #include +#include #include #include "archconst.h" #include "kernel/const.h" @@ -57,59 +58,11 @@ begbss: /* Selected 386 tss offsets. */ #define TSS3_S_SP0 4 -/* - * Exported functions - * Note: in assembly language the .define statement applied to a function name - * is loosely equivalent to a prototype in C code -- it makes it possible to - * link to an entity declared in the assembly code but does not create - * the entity. - */ - -.globl _restore_user_context -.globl _copr_not_available_handler -.globl _reload_cr3 - -.globl _divide_error -.globl _single_step_exception -.globl _nmi -.globl _breakpoint_exception -.globl _overflow -.globl _bounds_check -.globl _inval_opcode -.globl _copr_not_available -.globl _double_fault -.globl _copr_seg_overrun -.globl _inval_tss -.globl _segment_not_present -.globl _stack_exception -.globl _general_protection -.globl _page_fault -.globl _copr_error -.globl _alignment_check -.globl _machine_check -.globl _simd_exception -.globl _params_size -.globl _params_offset -.globl _mon_ds -.globl _switch_to_user -.globl _save_fpu - -.globl _hwint00 /* handlers for hardware interrupts */ -.globl _hwint01 -.globl _hwint02 -.globl _hwint03 -.globl _hwint04 -.globl _hwint05 -.globl _hwint06 -.globl _hwint07 -.globl _hwint08 -.globl _hwint09 -.globl _hwint10 -.globl _hwint11 -.globl _hwint12 -.globl _hwint13 -.globl _hwint14 -.globl _hwint15 +IMPORT(copr_not_available_handler) +IMPORT(params_size) +IMPORT(params_offset) +IMPORT(mon_ds) +IMPORT(switch_to_user) /* Exported variables. */ .globl begbss @@ -178,16 +131,16 @@ kernel_init: /* after pre-init*/ push %edi cmp $0, 4(%ebp) /* monitor return vector is */ je noret /* nonzero if return possible */ - incl _mon_return + incl _C_LABEL(mon_return) noret: - movl %esp, _mon_sp /* save stack pointer for later return */ + movl %esp, _C_LABEL(mon_sp) /* save stack pointer for later return */ /* Copy the monitor global descriptor table to the address space of kernel and */ /* switch over to it. Prot_init() can then update it with immediate effect. */ - sgdt _gdt+GDT_SELECTOR /* get the monitor gdtr */ - movl _gdt+GDT_SELECTOR+2, %esi /* absolute address of GDT */ - mov $_gdt, %ebx /* address of kernel GDT */ + sgdt _C_LABEL(gdt)+GDT_SELECTOR /* get the monitor gdtr */ + movl _C_LABEL(gdt)+GDT_SELECTOR+2, %esi /* absolute address of GDT */ + mov $_C_LABEL(gdt), %ebx /* address of kernel GDT */ mov $8*8, %ecx /* copying eight descriptors */ copygdt: movb %es:(%esi), %al @@ -195,28 +148,28 @@ copygdt: inc %esi inc %ebx loop copygdt - movl _gdt+DS_SELECTOR+2, %eax /* base of kernel data */ + movl _C_LABEL(gdt)+DS_SELECTOR+2, %eax /* base of kernel data */ and $0x00FFFFFF, %eax /* only 24 bits */ - add $_gdt, %eax /* eax = vir2phys(gdt) */ - movl %eax, _gdt+GDT_SELECTOR+2 /* set base of GDT */ - lgdt _gdt+GDT_SELECTOR /* switch over to kernel GDT */ + add $_C_LABEL(gdt), %eax /* eax = vir2phys(gdt) */ + movl %eax, _C_LABEL(gdt)+GDT_SELECTOR+2 /* set base of GDT */ + lgdt _C_LABEL(gdt)+GDT_SELECTOR /* switch over to kernel GDT */ /* Locate boot parameters, set up kernel segment registers and stack. */ mov 8(%ebp), %ebx /* boot parameters offset */ mov 12(%ebp), %edx /* boot parameters length */ mov 16(%ebp), %eax /* address of a.out headers */ - movl %eax, _aout + movl %eax, _C_LABEL(aout) mov %ds, %ax /* kernel data */ mov %ax, %es mov %ax, %fs mov %ax, %gs mov %ax, %ss - mov $_k_boot_stktop, %esp /* set sp to point to the top of kernel stack */ + mov $_C_LABEL(k_boot_stktop), %esp /* set sp to point to the top of kernel stack */ /* Save boot parameters into these global variables for i386 code */ - movl %edx, _params_size - movl %ebx, _params_offset - movl $SS_SELECTOR, _mon_ds + movl %edx, _C_LABEL(params_size) + movl %ebx, _C_LABEL(params_offset) + movl $SS_SELECTOR, _C_LABEL(mon_ds) /* Call C startup code to set up a proper environment to run main(). */ push %edx @@ -224,14 +177,14 @@ copygdt: push $SS_SELECTOR push $DS_SELECTOR push $CS_SELECTOR - call _cstart /* cstart(cs, ds, mds, parmoff, parmlen) */ + call _C_LABEL(cstart) /* cstart(cs, ds, mds, parmoff, parmlen) */ add $5*4, %esp /* Reload gdtr, idtr and the segment registers to global descriptor table set */ /* up by prot_init(). */ - lgdt _gdt+GDT_SELECTOR - lidt _gdt+IDT_SELECTOR + lgdt _C_LABEL(gdt)+GDT_SELECTOR + lidt _C_LABEL(gdt)+IDT_SELECTOR ljmp $CS_SELECTOR, $csinit csinit: @@ -245,7 +198,7 @@ csinit: ltr %ax push $0 /* set flags to known good state */ popf /* esp, clear nested task and int enable */ - jmp _main /* main() */ + jmp _C_LABEL(main) /* main() */ /*===========================================================================*/ @@ -255,7 +208,7 @@ csinit: #define PIC_IRQ_HANDLER(irq) \ push $irq ;\ - call _irq_handle /* intr_handle(irq_handlers[irq]) */ ;\ + call _C_LABEL(irq_handle) /* intr_handle(irq_handlers[irq]) */ ;\ add $4, %esp ; /*===========================================================================*/ @@ -269,16 +222,16 @@ csinit: SAVE_PROCESS_CTX(0) ;\ push %ebp ;\ movl $0, %ebp /* for stack trace */ ;\ - call _context_stop ;\ + call _C_LABEL(context_stop) ;\ add $4, %esp ;\ PIC_IRQ_HANDLER(irq) ;\ movb $END_OF_INT, %al ;\ outb $INT_CTL /* reenable interrupts in master pic */ ;\ - jmp _switch_to_user ;\ + jmp _C_LABEL(switch_to_user) ;\ \ 0: \ pusha ;\ - call _context_stop_idle ;\ + call _C_LABEL(context_stop_idle) ;\ PIC_IRQ_HANDLER(irq) ;\ movb $END_OF_INT, %al ;\ outb $INT_CTL /* reenable interrupts in master pic */ ;\ @@ -287,43 +240,35 @@ csinit: iret ; /* Each of these entry points is an expansion of the hwint_master macro */ -.balign 16 -_hwint00: +ENTRY(hwint00) /* Interrupt routine for irq 0 (the clock). */ hwint_master(0) -.balign 16 -_hwint01: +ENTRY(hwint01) /* Interrupt routine for irq 1 (keyboard) */ hwint_master(1) -.balign 16 -_hwint02: +ENTRY(hwint02) /* Interrupt routine for irq 2 (cascade!) */ hwint_master(2) -.balign 16 -_hwint03: +ENTRY(hwint03) /* Interrupt routine for irq 3 (second serial) */ hwint_master(3) -.balign 16 -_hwint04: +ENTRY(hwint04) /* Interrupt routine for irq 4 (first serial) */ hwint_master(4) -.balign 16 -_hwint05: +ENTRY(hwint05) /* Interrupt routine for irq 5 (XT winchester) */ hwint_master(5) -.balign 16 -_hwint06: +ENTRY(hwint06) /* Interrupt routine for irq 6 (floppy) */ hwint_master(6) -.balign 16 -_hwint07: +ENTRY(hwint07) /* Interrupt routine for irq 7 (printer) */ hwint_master(7) @@ -337,17 +282,17 @@ _hwint07: SAVE_PROCESS_CTX(0) ;\ push %ebp ;\ movl $0, %ebp /* for stack trace */ ;\ - call _context_stop ;\ + call _C_LABEL(context_stop) ;\ add $4, %esp ;\ PIC_IRQ_HANDLER(irq) ;\ movb $END_OF_INT, %al ;\ outb $INT_CTL /* reenable interrupts in master pic */ ;\ outb $INT2_CTL /* reenable slave 8259 */ ;\ - jmp _switch_to_user ;\ + jmp _C_LABEL(switch_to_user) ;\ \ 0: \ pusha ;\ - call _context_stop_idle ;\ + call _C_LABEL(context_stop_idle) ;\ PIC_IRQ_HANDLER(irq) ;\ movb $END_OF_INT, %al ;\ outb $INT_CTL /* reenable interrupts in master pic */ ;\ @@ -357,52 +302,42 @@ _hwint07: iret ; /* Each of these entry points is an expansion of the hwint_slave macro */ -.balign 16 -_hwint08: +ENTRY(hwint08) /* Interrupt routine for irq 8 (realtime clock) */ hwint_slave(8) -.balign 16 -_hwint09: +ENTRY(hwint09) /* Interrupt routine for irq 9 (irq 2 redirected) */ hwint_slave(9) -.balign 16 -_hwint10: +ENTRY(hwint10) /* Interrupt routine for irq 10 */ hwint_slave(10) -.balign 16 -_hwint11: +ENTRY(hwint11) /* Interrupt routine for irq 11 */ hwint_slave(11) -.balign 16 -_hwint12: +ENTRY(hwint12) /* Interrupt routine for irq 12 */ hwint_slave(12) -.balign 16 -_hwint13: +ENTRY(hwint13) /* Interrupt routine for irq 13 (FPU exception) */ hwint_slave(13) -.balign 16 -_hwint14: +ENTRY(hwint14) /* Interrupt routine for irq 14 (AT winchester) */ hwint_slave(14) -.balign 16 -_hwint15: +ENTRY(hwint15) /* Interrupt routine for irq 15 */ hwint_slave(15) /* * IPC is only from a process to kernel */ -.balign 16 -.globl _ipc_entry -_ipc_entry: +ENTRY(ipc_entry) SAVE_PROCESS_CTX(0) @@ -422,25 +357,23 @@ _ipc_entry: push %ebp /* for stack trace */ movl $0, %ebp - call _context_stop + call _C_LABEL(context_stop) add $4, %esp - call _do_ipc + call _C_LABEL(do_ipc) /* restore the current process pointer and save the return value */ add $3 * 4, %esp pop %esi mov %eax, AXREG(%esi) - jmp _switch_to_user + jmp _C_LABEL(switch_to_user) /* * kernel call is only from a process to kernel */ -.balign 16 -.globl _kernel_call_entry -_kernel_call_entry: +ENTRY(kernel_call_entry) SAVE_PROCESS_CTX(0) @@ -458,15 +391,15 @@ _kernel_call_entry: push %ebp /* for stack trace */ movl $0, %ebp - call _context_stop + call _C_LABEL(context_stop) add $4, %esp - call _kernel_call + call _C_LABEL(kernel_call) /* restore the current process pointer and save the return value */ add $8, %esp - jmp _switch_to_user + jmp _C_LABEL(switch_to_user) .balign 16 @@ -490,7 +423,7 @@ exception_entry_from_user: push %ebp /* for stack trace clear %ebp */ movl $0, %ebp - call _context_stop + call _C_LABEL(context_stop) add $4, %esp /* @@ -500,9 +433,9 @@ exception_entry_from_user: */ push %esp push $0 /* it's not a nested exception */ - call _exception_handler + call _C_LABEL(exception_handler) - jmp _switch_to_user + jmp _C_LABEL(switch_to_user) exception_entry_nested: @@ -511,7 +444,7 @@ exception_entry_nested: add $(8 * 4), %eax push %eax pushl $1 /* it's a nested exception */ - call _exception_handler + call _C_LABEL(exception_handler) add $8, %esp popa @@ -523,7 +456,7 @@ exception_entry_nested: /*===========================================================================*/ /* restart */ /*===========================================================================*/ -_restore_user_context: +ENTRY(restore_user_context) mov 4(%esp), %ebp /* will assume P_STACKBASE == 0 */ /* reconstruct the stack for iret */ @@ -558,13 +491,13 @@ _restore_user_context: pushl $0 ;\ EXCEPTION_ERR_CODE(vector) -_divide_error: +LABEL(divide_error) EXCEPTION_NO_ERR_CODE(DIVIDE_VECTOR) -_single_step_exception: +LABEL(single_step_exception) EXCEPTION_NO_ERR_CODE(DEBUG_VECTOR) -_nmi: +LABEL(nmi) #ifndef CONFIG_WATCHDOG EXCEPTION_NO_ERR_CODE(NMI_VECTOR) #else @@ -597,7 +530,7 @@ _nmi: mov %si, %es push %esp - call _nmi_watchdog_handler + call _C_LABEL(nmi_watchdog_handler) add $4, %esp /* restore all the important registers as they were before the trap */ @@ -610,71 +543,71 @@ _nmi: iret #endif -_breakpoint_exception: +LABEL(breakpoint_exception) EXCEPTION_NO_ERR_CODE(BREAKPOINT_VECTOR) -_overflow: +LABEL(overflow) EXCEPTION_NO_ERR_CODE(OVERFLOW_VECTOR) -_bounds_check: +LABEL(bounds_check) EXCEPTION_NO_ERR_CODE(BOUNDS_VECTOR) -_inval_opcode: +LABEL(inval_opcode) EXCEPTION_NO_ERR_CODE(INVAL_OP_VECTOR) -_copr_not_available: +LABEL(copr_not_available) TEST_INT_IN_KERNEL(4, copr_not_available_in_kernel) cld /* set direction flag to a known value */ SAVE_PROCESS_CTX(0) /* stop user process cycles */ push %ebp mov $0, %ebp - call _context_stop - jmp _copr_not_available_handler + call _C_LABEL(context_stop) + jmp _C_LABEL(copr_not_available_handler) copr_not_available_in_kernel: pushl $0 pushl $COPROC_NOT_VECTOR jmp exception_entry_nested -_double_fault: +LABEL(double_fault) EXCEPTION_ERR_CODE(DOUBLE_FAULT_VECTOR) -_copr_seg_overrun: +LABEL(copr_seg_overrun) EXCEPTION_NO_ERR_CODE(COPROC_SEG_VECTOR) -_inval_tss: +LABEL(inval_tss) EXCEPTION_ERR_CODE(INVAL_TSS_VECTOR) -_segment_not_present: +LABEL(segment_not_present) EXCEPTION_ERR_CODE(SEG_NOT_VECTOR) -_stack_exception: +LABEL(stack_exception) EXCEPTION_ERR_CODE(STACK_FAULT_VECTOR) -_general_protection: +LABEL(general_protection) EXCEPTION_ERR_CODE(PROTECTION_VECTOR) -_page_fault: +LABEL(page_fault) EXCEPTION_ERR_CODE(PAGE_FAULT_VECTOR) -_copr_error: +LABEL(copr_error) EXCEPTION_NO_ERR_CODE(COPROC_ERR_VECTOR) -_alignment_check: +LABEL(alignment_check) EXCEPTION_NO_ERR_CODE(ALIGNMENT_CHECK_VECTOR) -_machine_check: +LABEL(machine_check) EXCEPTION_NO_ERR_CODE(MACHINE_CHECK_VECTOR) -_simd_exception: +LABEL(simd_exception) EXCEPTION_NO_ERR_CODE(SIMD_EXCEPTION_VECTOR) /*===========================================================================*/ /* reload_cr3 */ /*===========================================================================*/ /* PUBLIC void reload_cr3(void); */ -_reload_cr3: +ENTRY(reload_cr3) push %ebp mov %esp, %ebp mov %cr3, %eax @@ -696,7 +629,6 @@ _reload_cr3: /* * the kernel stack */ -.globl _k_boot_stktop k_boot_stack: .space 4096 /* kernel stack */ /* FIXME use macro here */ -_k_boot_stktop: /* top of kernel stack */ +LABEL(k_boot_stktop) /* top of kernel stack */ diff --git a/kernel/arch/i386/multiboot.S b/kernel/arch/i386/multiboot.S index fc2d94534..07c7d8099 100644 --- a/kernel/arch/i386/multiboot.S +++ b/kernel/arch/i386/multiboot.S @@ -2,6 +2,7 @@ #include #include #include +#include #include #include "archconst.h" #include "kernel/const.h" @@ -11,7 +12,7 @@ #define GDT_SET_ENTRY(selector, base, limit) \ mov %ebp, %edi; \ - add $(_gdt + selector), %edi; \ + add $(_C_LABEL(gdt) + selector), %edi; \ mov base, %eax; \ movw %ax, 2(%edi); \ shr $16, %eax; \ @@ -26,10 +27,10 @@ andb $0xf0, 6(%edi); \ or %ax, 6(%edi); \ -.globl _pre_init -.globl multiboot_init -.globl kernel_init +IMPORT(pre_init) +.extern kernel_init +.globl multiboot_init multiboot_init: /* Get size of kernel text */ mov MULTIBOOT_LOAD_ADDRESS + MULTIBOOT_KERNEL_a_text, %ecx @@ -44,7 +45,7 @@ multiboot_init: /* Calculate and save kernel data base address */ mov $(MULTIBOOT_LOAD_ADDRESS + MULTIBOOT_ENTRY_OFFSET), %ebp add %eax, %ebp - mov %ebp, _kernel_data_addr(%ebp) + mov %ebp, _C_LABEL(kernel_data_addr)(%ebp) /* Init text seg */ GDT_SET_ENTRY(CS_SELECTOR, \ @@ -68,10 +69,10 @@ multiboot_init: mov $(GDT_SIZE*DESC_SIZE), %eax mov %ebp, %edi - add $(_gdt + GDT_SELECTOR), %edi + add $(_C_LABEL(gdt) + GDT_SELECTOR), %edi mov %ax, (%edi) mov %ebp, %eax - add $_gdt, %eax + add $_C_LABEL(gdt), %eax mov %eax, 2(%edi) lgdt (%edi) @@ -86,14 +87,14 @@ reload_cs: mov $(multiboot_stack + MULTIBOOT_STACK_SIZE), %esp push %ebx - call _pre_init + call _C_LABEL(pre_init) add $4, %esp /* return to old boot code of kernel */ push %eax push $MULTIBOOT_PARAM_BUF_SIZE - push $_multiboot_param_buf + push $_C_LABEL(multiboot_param_buf) push $0 mov $ES_SELECTOR, %eax @@ -102,16 +103,13 @@ reload_cs: jmp kernel_init .data -.globl _kernel_data_addr -_kernel_data_addr: -.long 0 -.globl _a_out_headers -_a_out_headers: -.space NR_BOOT_PROCS * 32 /* is A_MINHDR */ +LABEL(kernel_data_addr) + .long 0 +LABEL(a_out_headers) + .space NR_BOOT_PROCS * 32 /* is A_MINHDR */ -.globl _multiboot_param_buf -_multiboot_param_buf: -.space MULTIBOOT_PARAM_BUF_SIZE +LABEL(multiboot_param_buf) + .space MULTIBOOT_PARAM_BUF_SIZE multiboot_stack: .space MULTIBOOT_STACK_SIZE + 4 diff --git a/lib/libc/arch/i386/int64/add64.S b/lib/libc/arch/i386/int64/add64.S index 573bd7ff8..945667d9d 100644 --- a/lib/libc/arch/i386/int64/add64.S +++ b/lib/libc/arch/i386/int64/add64.S @@ -1,11 +1,9 @@ /* add64() - 64 bit addition Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _add64 - -_add64: +ENTRY(add64) /* u64_t add64(u64_t i, u64_t j); */ movl 4(%esp), %eax movl 8(%esp), %edx diff --git a/lib/libc/arch/i386/int64/add64u.S b/lib/libc/arch/i386/int64/add64u.S index 41a0a93a6..cbf2160e3 100644 --- a/lib/libc/arch/i386/int64/add64u.S +++ b/lib/libc/arch/i386/int64/add64u.S @@ -1,13 +1,11 @@ /* add64u() - unsigned to 64 bit addition Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _add64u, _add64ul - -_add64u: +ENTRY(add64u) /* u64_t add64u(u64_t i, unsigned j); */ -_add64ul: +ENTRY(add64ul) /* u64_t add64ul(u64_t i, unsigned long j); */ movl 4(%esp), %eax movl 8(%esp), %edx diff --git a/lib/libc/arch/i386/int64/bsr64.S b/lib/libc/arch/i386/int64/bsr64.S index 84a00d470..5c61e3d7a 100644 --- a/lib/libc/arch/i386/int64/bsr64.S +++ b/lib/libc/arch/i386/int64/bsr64.S @@ -1,11 +1,9 @@ /* bsr64() - 64 bit bit scan reverse Author: Erik van der Kouwe */ /* 15 May 2010 */ #include +#include -.text -.globl _bsr64 - -_bsr64: +ENTRY(bsr64) /* int bsr64(u64_t i); */ bsr 8(%esp), %eax /* check high-order DWORD */ jnz 0f /* non-zero: return index+32 */ diff --git a/lib/libc/arch/i386/int64/cmp64.S b/lib/libc/arch/i386/int64/cmp64.S index cdcaab3fa..0c073540b 100644 --- a/lib/libc/arch/i386/int64/cmp64.S +++ b/lib/libc/arch/i386/int64/cmp64.S @@ -1,9 +1,8 @@ /* cmp64*() - 64 bit compare Author: Kees J. Bot */ /* 7 Dec 1995 */ -.text -.globl _cmp64, _cmp64u, _cmp64ul +#include -_cmp64: +ENTRY(cmp64) /* int cmp64(u64_t i, u64_t j); */ movl %esp, %ecx 0: @@ -20,9 +19,9 @@ _cmp64: adcl $0, %eax /* eax = (i > j) - (i < j) */ ret -_cmp64u: +ENTRY(cmp64u) /* int cmp64u(u64_t i, unsigned j); */ -_cmp64ul: +ENTRY(cmp64ul) /* int cmp64ul(u64_t i, unsigned long j); */ movl %esp, %ecx push 16(%ecx) diff --git a/lib/libc/arch/i386/int64/cv64u.S b/lib/libc/arch/i386/int64/cv64u.S index ac8e4451a..93c9264de 100644 --- a/lib/libc/arch/i386/int64/cv64u.S +++ b/lib/libc/arch/i386/int64/cv64u.S @@ -1,11 +1,10 @@ /* cv64u() - 64 bit converted to unsigned Author: Kees J. Bot */ /* 7 Dec 1995 */ -.text -.globl _cv64u, _cv64ul +#include -_cv64u: +ENTRY(cv64u) /* unsigned cv64u(u64_t i); */ -_cv64ul: +ENTRY(cv64ul) /* unsigned long cv64ul(u64_t i); */ movl 4(%esp), %eax cmpl $0, 8(%esp) /* return ULONG_MAX if really big */ diff --git a/lib/libc/arch/i386/int64/cvu64.S b/lib/libc/arch/i386/int64/cvu64.S index 8513f9d0e..2395412f1 100644 --- a/lib/libc/arch/i386/int64/cvu64.S +++ b/lib/libc/arch/i386/int64/cvu64.S @@ -1,13 +1,11 @@ /* cvu64() - unsigned converted to 64 bit Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _cvu64, _cvul64 - -_cvu64: +ENTRY(cvu64) /* u64_t cvu64(unsigned i); */ -_cvul64: +ENTRY(cvul64) /* u64_t cvul64(unsigned long i); */ movl 4(%esp), %eax movl 8(%esp), %edx diff --git a/lib/libc/arch/i386/int64/diff64.S b/lib/libc/arch/i386/int64/diff64.S index 818459b44..18719cdbe 100644 --- a/lib/libc/arch/i386/int64/diff64.S +++ b/lib/libc/arch/i386/int64/diff64.S @@ -1,9 +1,8 @@ /* diff64() - 64 bit subtraction giving unsigned Author: Kees J. Bot */ /* 7 Dec 1995 */ -.text -.globl _diff64 +#include -_diff64: +ENTRY(diff64) /* unsigned diff64(u64_t i, u64_t j); */ movl 4(%esp), %eax subl 12(%esp), %eax diff --git a/lib/libc/arch/i386/int64/div64u.S b/lib/libc/arch/i386/int64/div64u.S index 164166f8f..aaee09299 100644 --- a/lib/libc/arch/i386/int64/div64u.S +++ b/lib/libc/arch/i386/int64/div64u.S @@ -2,11 +2,9 @@ /* Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _div64u, _div64u64, _rem64u - -_div64u: +ENTRY(div64u) /* unsigned long div64u(u64_t i, unsigned j); */ xorl %edx, %edx movl 8(%esp), %eax /* i = (ih<<32) + il */ @@ -15,7 +13,7 @@ _div64u: divl 12(%esp) /* i / j = (q<<32) + ((r<<32) + il) / j */ ret -_div64u64: +ENTRY(div64u64) /* u64_t div64u64(u64_t i, unsigned j); */ xorl %edx, %edx movl 12(%esp), %eax /* i = (ih<<32) + il */ @@ -28,10 +26,10 @@ _div64u64: movl %ecx, %eax /* return pointer to result struct */ ret BYTES_TO_POP_ON_STRUCT_RETURN -_rem64u: +ENTRY(rem64u) /* unsigned rem64u(u64_t i, unsigned j); */ pop %ecx - call _div64u + call _C_LABEL(div64u) movl %edx, %eax jmp *%ecx diff --git a/lib/libc/arch/i386/int64/ex64.S b/lib/libc/arch/i386/int64/ex64.S index bd224fb0d..9cc1f00c8 100644 --- a/lib/libc/arch/i386/int64/ex64.S +++ b/lib/libc/arch/i386/int64/ex64.S @@ -1,15 +1,14 @@ /* ex64*() - extract low or high 32 bits of a 64 bit number */ /* Author: Kees J. Bot */ /* 7 Dec 1995 */ -.text -.globl _ex64lo, _ex64hi +#include -_ex64lo: +ENTRY(ex64lo) /* unsigned long ex64lo(u64_t i); */ movl 4(%esp), %eax ret -_ex64hi: +ENTRY(ex64hi) /* unsigned long ex64hi(u64_t i); */ movl 8(%esp), %eax ret diff --git a/lib/libc/arch/i386/int64/make64.S b/lib/libc/arch/i386/int64/make64.S index 27b5a1d98..7215fc751 100644 --- a/lib/libc/arch/i386/int64/make64.S +++ b/lib/libc/arch/i386/int64/make64.S @@ -2,11 +2,9 @@ /* Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _make64 - -_make64: +ENTRY(make64) /* u64_t make64(unsigned long lo, unsigned long hi); */ movl 4(%esp), %eax movl 8(%esp), %edx diff --git a/lib/libc/arch/i386/int64/mul64u.S b/lib/libc/arch/i386/int64/mul64u.S index fd693a62e..411a109ce 100644 --- a/lib/libc/arch/i386/int64/mul64u.S +++ b/lib/libc/arch/i386/int64/mul64u.S @@ -2,11 +2,9 @@ /* Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _mul64u - -_mul64u: +ENTRY(mul64u) /* u64_t mul64u(unsigned long i, unsigned j); */ movl 4(%esp), %ecx movl 8(%esp), %eax diff --git a/lib/libc/arch/i386/int64/sub64.S b/lib/libc/arch/i386/int64/sub64.S index fc1d80ad7..b2f753522 100644 --- a/lib/libc/arch/i386/int64/sub64.S +++ b/lib/libc/arch/i386/int64/sub64.S @@ -1,11 +1,9 @@ /* sub64() - 64 bit subtraction Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _sub64 - -_sub64: +ENTRY(sub64) /* u64_t sub64(u64_t i, u64_t j); */ movl 4(%esp), %eax movl 8(%esp), %edx diff --git a/lib/libc/arch/i386/int64/sub64u.S b/lib/libc/arch/i386/int64/sub64u.S index 2f5c2d45f..f8001e1c0 100644 --- a/lib/libc/arch/i386/int64/sub64u.S +++ b/lib/libc/arch/i386/int64/sub64u.S @@ -1,13 +1,11 @@ /* sub64() - unsigned from 64 bit subtraction Author: Kees J. Bot */ /* 7 Dec 1995 */ #include +#include -.text -.globl _sub64u, _sub64ul - -_sub64u: +ENTRY(sub64u) /* u64_t sub64u(u64_t i, unsigned j); */ -_sub64ul: +ENTRY(sub64ul) /* u64_t sub64ul(u64_t i, unsigned long j); */ movl 4(%esp), %eax movl 8(%esp), %edx diff --git a/lib/libc/arch/i386/math/fpu_cw.S b/lib/libc/arch/i386/math/fpu_cw.S index 804652325..373330ac2 100644 --- a/lib/libc/arch/i386/math/fpu_cw.S +++ b/lib/libc/arch/i386/math/fpu_cw.S @@ -1,11 +1,9 @@ /* fpu_cw_get() - get FPU control word Author: Erik van der Kouwe */ /* fpu_cw_set() - set FPU control word 9 Dec 2009 */ -.text -.globl _fpu_cw_get -.globl _fpu_cw_set +#include /* u16_t fpu_cw_get(void) */ -_fpu_cw_get: +ENTRY(fpu_cw_get) /* clear unused bits just to be sure */ xor %eax, %eax push %eax @@ -14,7 +12,7 @@ _fpu_cw_get: ret /* void fpu_cw_set(u16_t fpu_cw) */ -_fpu_cw_set: +ENTRY(fpu_cw_set) /* load control word from parameter */ fldcw 4(%esp) ret diff --git a/lib/libc/arch/i386/math/fpu_round.S b/lib/libc/arch/i386/math/fpu_round.S index 0561dd06c..80c67f0aa 100644 --- a/lib/libc/arch/i386/math/fpu_round.S +++ b/lib/libc/arch/i386/math/fpu_round.S @@ -1,11 +1,9 @@ /* fpu_rndint() - round integer Author: Erik van der Kouwe */ /* 17 Dec 2009 */ -.text -.globl _fpu_rndint -.globl _fpu_remainder +#include /* void fpu_rndint(double *value) */ -_fpu_rndint: +ENTRY(fpu_rndint) /* move the value onto the floating point stack */ mov 4(%esp), %eax fldl (%eax) @@ -18,7 +16,7 @@ _fpu_rndint: ret /* void fpu_remainder(double *x, double y) */ -_fpu_remainder: +ENTRY(fpu_remainder) /* move the values onto the floating point stack */ fldl 8(%esp) mov 4(%esp), %edx diff --git a/lib/libc/arch/i386/math/fpu_sw.S b/lib/libc/arch/i386/math/fpu_sw.S index ce36acacd..85a9bf311 100644 --- a/lib/libc/arch/i386/math/fpu_sw.S +++ b/lib/libc/arch/i386/math/fpu_sw.S @@ -1,36 +1,33 @@ /* fpu_compare() - compare doubles Author: Erik van der Kouwe */ /* fpu_sw_get() - get FPU status 17 Dec 2009 */ /* fpu_xam() - examine double */ -.text -.globl _fpu_compare -.globl _fpu_sw_get -.globl _fpu_xam +#include /* u16_t fpu_compare(double x, double y) */ -_fpu_compare: +ENTRY(fpu_compare) /* move the values onto the floating point stack */ fldl 12(%esp) fldl 4(%esp) /* compare values and return status word */ fcompp - jmp _fpu_sw_get + jmp _C_LABEL(fpu_sw_get) /* u16_t fpu_sw_get(void) */ -_fpu_sw_get: +ENTRY(fpu_sw_get) /* clear unused high-order word and get status word */ xor %eax, %eax .byte 0xdf, 0xe0 /* fnstsw ax */ ret /* u16_t fpu_xam(double value) */ -_fpu_xam: +ENTRY(fpu_xam) /* move the value onto the floating point stack */ fldl 4(%esp) /* examine value and get status word */ fxam - call _fpu_sw_get + call _C_LABEL(fpu_sw_get) /* pop the value */ fstp %st diff --git a/lib/libc/arch/i386/misc/_cpuid.S b/lib/libc/arch/i386/misc/_cpuid.S index 92d7ca926..9b0929fcd 100644 --- a/lib/libc/arch/i386/misc/_cpuid.S +++ b/lib/libc/arch/i386/misc/_cpuid.S @@ -4,10 +4,9 @@ /* void _cpuid(u32_t *eax, u32_t *ebx, u32_t *ecx, u32_t *edx); */ /* 0 for OK, nonzero for unsupported */ -.globl __cpuid +#include -.text -__cpuid: +ENTRY(_cpuid) /* save work registers */ push %ebp push %ebx diff --git a/lib/libc/arch/i386/misc/alloca.S b/lib/libc/arch/i386/misc/alloca.S index 0c9b598fe..cf7251cb8 100644 --- a/lib/libc/arch/i386/misc/alloca.S +++ b/lib/libc/arch/i386/misc/alloca.S @@ -2,10 +2,9 @@ /* alloca() - allocate space on the stack Author: Kees J. Bot */ /* 2 Dec 1993 */ -.text -.balign 16 -.globl _alloca -_alloca: +#include + +ENTRY(alloca) #if __ACK__ pop %ecx /* Return address */ pop %eax /* Bytes to allocate */ diff --git a/lib/libc/arch/i386/misc/get_bp.S b/lib/libc/arch/i386/misc/get_bp.S index 0da4e61bd..8b0a2de3b 100644 --- a/lib/libc/arch/i386/misc/get_bp.S +++ b/lib/libc/arch/i386/misc/get_bp.S @@ -4,10 +4,9 @@ /* */ /* Created: Sep 7, 1992 by Philip Homburg */ +#include -.text -.globl _get_bp -_get_bp: +ENTRY(get_bp) movl %ebp, %eax ret diff --git a/lib/libc/arch/i386/misc/getprocessor.S b/lib/libc/arch/i386/misc/getprocessor.S index f4b893b1b..f1daeba07 100644 --- a/lib/libc/arch/i386/misc/getprocessor.S +++ b/lib/libc/arch/i386/misc/getprocessor.S @@ -1,14 +1,10 @@ /* getprocessor() - determine processor type Author: Kees J. Bot */ /* 26 Jan 1994 */ - -.text +#include /* int getprocessor(void); */ /* Return 386, 486, 586, ... */ - -.globl _getprocessor - -_getprocessor: +ENTRY(getprocessor) push %ebp movl %esp, %ebp andl $0xFFFFFFFC, %esp /* Align stack to avoid AC fault */ diff --git a/lib/libc/arch/i386/misc/oneC_sum.S b/lib/libc/arch/i386/misc/oneC_sum.S index 0d162d3f9..518fa0088 100644 --- a/lib/libc/arch/i386/misc/oneC_sum.S +++ b/lib/libc/arch/i386/misc/oneC_sum.S @@ -2,12 +2,9 @@ /* 9 May 1995 */ /* See RFC 1071, "Computing the Internet checksum" */ /* See also the C version of this code. */ +#include -.text - -.globl _oneC_sum -.balign 16 -_oneC_sum: +ENTRY(oneC_sum) push %ebp movl %esp, %ebp push %esi @@ -36,7 +33,7 @@ aligned: adcl $0, %eax /* Add carry back in for one`s complement */ jmp add6test -.balign 16 +_ALIGN_TEXT add6: addl (%esi), %eax /* Six times unrolled loop, see below */ adcl 4(%esi), %eax @@ -52,7 +49,7 @@ add6test: addl $24, %edi jmp add1test -.balign 16 +_ALIGN_TEXT add1: addl (%esi), %eax /* while ((edi -= 4) >= 0) */ adcl $0, %eax /* eax += *esi++; */ @@ -83,7 +80,7 @@ done: #else .data #endif -.balign 4 +.balign 4 mask: .long 0x000000FF, 0x0000FFFF, 0x00FFFFFF diff --git a/lib/libc/arch/i386/misc/ucontext.S b/lib/libc/arch/i386/misc/ucontext.S index 623faaf29..27e237e36 100644 --- a/lib/libc/arch/i386/misc/ucontext.S +++ b/lib/libc/arch/i386/misc/ucontext.S @@ -1,3 +1,4 @@ +#include #ifdef __ACK__ .text @@ -14,9 +15,11 @@ begdata: begbss: #endif -.extern _getuctx -.extern _setuctx -.extern _resumecontext + +IMPORT(getuctx) +IMPORT(setuctx) +IMPORT(resumecontext) + /* Offsets into ucontext_t structure. Keep in sync with ! */ #define UC_FLAGS 0 @@ -55,16 +58,11 @@ begbss: #define EFAULT 14 #define EINVAL 22 + /* int getcontext(ucontext_t *ucp) * Initialise the structure pointed to by ucp to the current user context * of the calling thread. */ - - -.text - -.globl _getcontext -.balign 16 -_getcontext: +ENTRY(getcontext) /* In case a process does not use the FPU and is neither interested in * saving its signal mask, then we can skip the context switch to * PM and kernel altogether and only save general-purpose registers. */ @@ -78,7 +76,7 @@ _getcontext: /* Check null pointer */ cmp $0, %edx /* edx == NULL? */ jne 3f /* Not null, continue */ - movl $EFAULT, (_errno) + movl $EFAULT, (_C_LABEL(errno)) xor %eax, %eax dec %eax /* return -1 */ ret @@ -98,7 +96,7 @@ _getcontext: 0: push %ecx /* Save ecx */ push %edx - call _getuctx /* getuctx(ucp) */ + call _C_LABEL(getuctx) /* getuctx(ucp) */ pop %edx /* clean up stack and restore edx */ pop %ecx /* Restore ecx */ @@ -131,12 +129,7 @@ _getcontext: * program execution continues as if the corresponding call of getcontext() * had just returned. If ucp was created with makecontext(), program * execution continues with the function passed to makecontext(). */ - -.text - -.globl _setcontext -.balign 16 -_setcontext: +ENTRY(setcontext) /* In case a process does not use the FPU and is neither interested in * restoring its signal mask, then we can skip the context switch to * PM and kernel altogether and restore state here. */ @@ -146,7 +139,7 @@ _setcontext: /* Check null pointer */ cmp $0, %edx /* edx == NULL? */ jnz 3f /* Not null, continue */ - movl $EFAULT, (_errno) + movl $EFAULT, (_C_LABEL(errno)) xor %eax, %eax dec %eax /* return -1 */ ret @@ -158,7 +151,7 @@ _setcontext: pop %ebx /* restore ebx */ cmp $MCF_MAGIC, %ecx /* is the magic value set (is context valid)?*/ jz 4f /* is set, proceed */ - movl $EINVAL, (_errno) /* not set, return error code */ + movl $EINVAL, (_C_LABEL(errno)) /* not set, return error code */ xor %eax, %eax dec %eax /* return -1 */ ret @@ -176,7 +169,7 @@ _setcontext: 0: push %ecx /* Save ecx */ push %edx - call _setuctx /* setuctx(ucp) */ + call _C_LABEL(setuctx) /* setuctx(ucp) */ pop %edx /* Clean up stack and restore edx */ pop %ecx /* Restore ecx */ @@ -200,12 +193,7 @@ _setcontext: * arguments to `func' from the stack. Finally, a call to resumecontext * will start the next context in the linked list (or exit the program if * there is no context). */ - -.text - -.globl _ctx_start -.balign 16 -_ctx_start: +ENTRY(ctx_start) /* 0(esp) -> func * 4(esp) -> arg1 * ... @@ -216,7 +204,7 @@ _ctx_start: call *%eax /* func(arg1, ..., argn) */ mov %esi, %esp /* Clean up stack */ /* ucp is now at the top of the stack again */ - call _resumecontext /* resumecontext(ucp) */ + call _C_LABEL(resumecontext) /* resumecontext(ucp) */ ret /* never reached */ diff --git a/lib/libc/arch/i386/rts/__sigreturn.S b/lib/libc/arch/i386/rts/__sigreturn.S index 66f5cf44f..01182b058 100644 --- a/lib/libc/arch/i386/rts/__sigreturn.S +++ b/lib/libc/arch/i386/rts/__sigreturn.S @@ -1,9 +1,9 @@ /* This routine is the low-level code for returning from signals. */ -/* It calls __sigreturn, which is the normal "system call" routine. */ -/* Both ___sigreturn and __sigreturn are needed. */ -.text -.globl ___sigreturn -.extern __sigreturn -___sigreturn: +/* It calls _sigreturn, which is the normal "system call" routine. */ +/* Both __sigreturn and _sigreturn are needed. */ +#include + +IMPORT(_sigreturn) +ENTRY(__sigreturn) addl $16, %esp - jmp __sigreturn + jmp _C_LABEL(_sigreturn) diff --git a/lib/libc/arch/i386/rts/_ipc.S b/lib/libc/arch/i386/rts/_ipc.S index 399bd7508..5d5d77811 100644 --- a/lib/libc/arch/i386/rts/_ipc.S +++ b/lib/libc/arch/i386/rts/_ipc.S @@ -1,6 +1,5 @@ #include - -.globl __notify, __send, __senda, __sendnb, __receive, __sendrec, __do_kernel_call +#include IPCVEC = 33 /* ipc trap to kernel */ KERVEC = 32 /* syscall trap to kernel */ @@ -13,8 +12,7 @@ /* IPC assembly routines * */ /**========================================================================* */ /* all message passing routines save ebx, but destroy eax and ecx. */ -.text -__send: +ENTRY(_send) push %ebp movl %esp, %ebp push %ebx @@ -26,7 +24,7 @@ __send: pop %ebp ret -__receive: +ENTRY(_receive) push %ebp movl %esp, %ebp push %ebx @@ -40,7 +38,7 @@ __receive: pop %ebp ret -__sendrec: +ENTRY(_sendrec) push %ebp movl %esp, %ebp push %ebx @@ -52,7 +50,7 @@ __sendrec: pop %ebp ret -__notify: +ENTRY(_notify) push %ebp movl %esp, %ebp push %ebx @@ -63,7 +61,7 @@ __notify: pop %ebp ret -__sendnb: +ENTRY(_sendnb) push %ebp movl %esp, %ebp push %ebx @@ -75,7 +73,7 @@ __sendnb: pop %ebp ret -__do_kernel_call: +ENTRY(_do_kernel_call) /* pass the message pointer to kernel in the %eax register */ movl 4(%esp), %eax int $KERVEC diff --git a/lib/libc/arch/i386/rts/_senda.S b/lib/libc/arch/i386/rts/_senda.S index 614b1ae00..a38c2c9fc 100644 --- a/lib/libc/arch/i386/rts/_senda.S +++ b/lib/libc/arch/i386/rts/_senda.S @@ -1,15 +1,12 @@ #include - -.globl __senda +#include SYSVEC = 33 MSGTAB = 8 /* message table */ TABCOUNT = 12 /* number of entries in message table */ -.text - -__senda: +ENTRY(_senda) push %ebp movl %esp, %ebp push %ebx diff --git a/lib/libc/arch/i386/string/_memmove.S b/lib/libc/arch/i386/string/_memmove.S index 0fa693f3c..8e8579071 100644 --- a/lib/libc/arch/i386/string/_memmove.S +++ b/lib/libc/arch/i386/string/_memmove.S @@ -4,10 +4,9 @@ /* void *_memmove(void *s1, const void *s2, size_t n) */ /* Copy a chunk of memory. Handle overlap. */ /* */ -.text -.globl __memmove, __memcpy -.balign 16 -__memmove: +#include + +ENTRY(_memmove) push %ebp movl %esp, %ebp push %esi @@ -19,7 +18,7 @@ __memmove: subl %esi, %eax cmpl %ecx, %eax jb downwards /* if (s2 - s1) < n then copy downwards */ -__memcpy: +LABEL(_memcpy) cld /* Clear direction bit: upwards */ cmpl $16, %ecx jb upbyte /* Don't bother being smart with short arrays */ diff --git a/lib/libc/arch/i386/string/_strncat.S b/lib/libc/arch/i386/string/_strncat.S index aaa62f07f..d985751f2 100644 --- a/lib/libc/arch/i386/string/_strncat.S +++ b/lib/libc/arch/i386/string/_strncat.S @@ -4,10 +4,9 @@ /* char *_strncat(char *s1, const char *s2, size_t edx) */ /* Append string s2 to s1. */ /* */ -.text -.globl __strncat -.balign 16 -__strncat: +#include + +ENTRY(_strncat) push %ebp movl %esp, %ebp push %esi diff --git a/lib/libc/arch/i386/string/_strncmp.S b/lib/libc/arch/i386/string/_strncmp.S index c4f89705b..9fb90ca10 100644 --- a/lib/libc/arch/i386/string/_strncmp.S +++ b/lib/libc/arch/i386/string/_strncmp.S @@ -4,10 +4,9 @@ /* int strncmp(const char *s1, const char *s2, size_t ecx) */ /* Compare two strings. */ /* */ -.text -.globl __strncmp -.balign 16 -__strncmp: +#include + +ENTRY(_strncmp) push %ebp movl %esp, %ebp push %esi diff --git a/lib/libc/arch/i386/string/_strncpy.S b/lib/libc/arch/i386/string/_strncpy.S index 63bd6fcee..9128d8d0a 100644 --- a/lib/libc/arch/i386/string/_strncpy.S +++ b/lib/libc/arch/i386/string/_strncpy.S @@ -4,10 +4,9 @@ /* char *_strncpy(char *s1, const char *s2, size_t ecx) */ /* Copy string s2 to s1. */ /* */ -.text -.globl __strncpy -.balign 16 -__strncpy: +#include + +ENTRY(_strncpy) movl 12(%ebp), %edi /* edi = string s2 */ xorb %al, %al /* Look for a zero byte */ movl %ecx, %edx /* Save maximum count */ diff --git a/lib/libc/arch/i386/string/_strnlen.S b/lib/libc/arch/i386/string/_strnlen.S index 46bbf7dc0..9d586a7ee 100644 --- a/lib/libc/arch/i386/string/_strnlen.S +++ b/lib/libc/arch/i386/string/_strnlen.S @@ -4,10 +4,9 @@ /* size_t _strnlen(const char *s, size_t ecx) */ /* Return the length of a string. */ /* */ -.text -.globl __strnlen -.balign 16 -__strnlen: +#include + +ENTRY(_strnlen) push %ebp movl %esp, %ebp push %edi diff --git a/lib/libc/arch/i386/string/bcmp.S b/lib/libc/arch/i386/string/bcmp.S index f976534b9..ece14b4c0 100644 --- a/lib/libc/arch/i386/string/bcmp.S +++ b/lib/libc/arch/i386/string/bcmp.S @@ -7,16 +7,15 @@ /* (Alas it is not without some use, it reports the number of bytes */ /* after the bytes that are equal. So it can't be simply replaced.) */ /* */ -.text -.globl _bcmp -.balign 16 -_bcmp: +#include + +ENTRY(bcmp) push %ebp movl %esp, %ebp push 16(%ebp) push 12(%ebp) push 8(%ebp) - call _memcmp /* Let memcmp do the work */ + call _C_LABEL(memcmp) /* Let memcmp do the work */ testl %eax, %eax je equal subl 8(%ebp), %edx /* Memcmp was nice enough to leave "esi" in edx */ diff --git a/lib/libc/arch/i386/string/bcopy.S b/lib/libc/arch/i386/string/bcopy.S index 47540d291..9d68340e5 100644 --- a/lib/libc/arch/i386/string/bcopy.S +++ b/lib/libc/arch/i386/string/bcopy.S @@ -5,11 +5,10 @@ /* Copy a chunk of memory. Handle overlap. */ /* This is a BSD routine that escaped from the kernel. Don't use. */ /* */ -.text -.globl _bcopy -.balign 16 -_bcopy: +#include + +ENTRY(bcopy) movl 4(%esp), %eax /* Exchange string arguments */ xchgl 8(%esp), %eax movl %eax, 4(%esp) - jmp __memmove /* Call the proper routine */ + jmp _C_LABEL(_memmove) /* Call the proper routine */ diff --git a/lib/libc/arch/i386/string/bzero.S b/lib/libc/arch/i386/string/bzero.S index 07f0db09e..0782164ba 100644 --- a/lib/libc/arch/i386/string/bzero.S +++ b/lib/libc/arch/i386/string/bzero.S @@ -5,15 +5,14 @@ /* Set a chunk of memory to zero. */ /* This is a BSD routine that escaped from the kernel. Don't use. */ /* */ -.text -.globl _bzero -.balign 16 -_bzero: +#include + +ENTRY(bzero) push %ebp movl %esp, %ebp push 12(%ebp) /* Size */ push $0 /* Zero */ push 8(%ebp) /* String */ - call _memset /* Call the proper routine */ + call _C_LABEL(memset) /* Call the proper routine */ leave ret diff --git a/lib/libc/arch/i386/string/index.S b/lib/libc/arch/i386/string/index.S index 12ea7ea52..6d77cef40 100644 --- a/lib/libc/arch/i386/string/index.S +++ b/lib/libc/arch/i386/string/index.S @@ -5,8 +5,7 @@ /* Look for a character in a string. Has suffered from a hostile */ /* takeover by strchr(). */ /* */ -.text -.globl _index -.balign 16 -_index: - jmp _strchr +#include + +ENTRY(index) + jmp _C_LABEL(strchr) diff --git a/lib/libc/arch/i386/string/memchr.S b/lib/libc/arch/i386/string/memchr.S index 7607374fc..64a5df2dc 100644 --- a/lib/libc/arch/i386/string/memchr.S +++ b/lib/libc/arch/i386/string/memchr.S @@ -4,10 +4,9 @@ /* void *memchr(const void *s, int c, size_t n) */ /* Look for a character in a chunk of memory. */ /* */ -.text -.globl _memchr -.balign 16 -_memchr: +#include + +ENTRY(memchr) push %ebp movl %esp, %ebp push %edi diff --git a/lib/libc/arch/i386/string/memcmp.S b/lib/libc/arch/i386/string/memcmp.S index 6a2c5a97d..e7e23d9c2 100644 --- a/lib/libc/arch/i386/string/memcmp.S +++ b/lib/libc/arch/i386/string/memcmp.S @@ -4,10 +4,9 @@ /* int memcmp(const void *s1, const void *s2, size_t n) */ /* Compare two chunks of memory. */ /* */ -.text -.globl _memcmp -.balign 16 -_memcmp: +#include + +ENTRY(memcmp) cld push %ebp movl %esp, %ebp diff --git a/lib/libc/arch/i386/string/memcpy.S b/lib/libc/arch/i386/string/memcpy.S index ed698423e..98c79921f 100644 --- a/lib/libc/arch/i386/string/memcpy.S +++ b/lib/libc/arch/i386/string/memcpy.S @@ -8,10 +8,9 @@ /* negligible, but you are dealing with a programmer who believes that if */ /* anything can go wrong, it should go wrong. */ /* */ -.text -.globl _memcpy -.balign 16 -_memcpy: +#include + +ENTRY(memcpy) push %ebp movl %esp, %ebp push %esi @@ -20,4 +19,4 @@ _memcpy: movl 12(%ebp), %esi /* String s2 */ movl 16(%ebp), %ecx /* Length */ /* No overlap check here */ - jmp __memcpy /* Call the part of __memmove that copies up */ + jmp _C_LABEL(_memcpy) /* Call the part of __memmove that copies up */ diff --git a/lib/libc/arch/i386/string/memmove.S b/lib/libc/arch/i386/string/memmove.S index f42ce0543..b790464ac 100644 --- a/lib/libc/arch/i386/string/memmove.S +++ b/lib/libc/arch/i386/string/memmove.S @@ -4,8 +4,7 @@ /* void *memmove(void *s1, const void *s2, size_t n) */ /* Copy a chunk of memory. Handle overlap. */ /* */ -.text -.globl _memmove -.balign 16 -_memmove: - jmp __memmove /* Call common code */ +#include + +ENTRY(memmove) + jmp _C_LABEL(_memmove) /* Call common code */ diff --git a/lib/libc/arch/i386/string/memset.S b/lib/libc/arch/i386/string/memset.S index 22f083679..16d016643 100644 --- a/lib/libc/arch/i386/string/memset.S +++ b/lib/libc/arch/i386/string/memset.S @@ -4,10 +4,9 @@ /* void *memset(void *s, int c, size_t n) */ /* Set a chunk of memory to the same byte value. */ /* */ -.text -.globl _memset -.balign 16 -_memset: +#include + +ENTRY(memset) push %ebp movl %esp, %ebp push %edi diff --git a/lib/libc/arch/i386/string/rindex.S b/lib/libc/arch/i386/string/rindex.S index 24e9cfb38..b2073bd23 100644 --- a/lib/libc/arch/i386/string/rindex.S +++ b/lib/libc/arch/i386/string/rindex.S @@ -5,8 +5,7 @@ /* Look for the last occurrence a character in a string. Has suffered */ /* from a hostile takeover by strrchr(). */ /* */ -.text -.globl _rindex -.balign 16 -_rindex: - jmp _strrchr +#include + +ENTRY(rindex) + jmp _C_LABEL(strrchr) diff --git a/lib/libc/arch/i386/string/strcat.S b/lib/libc/arch/i386/string/strcat.S index 9b9df6b45..589da58af 100644 --- a/lib/libc/arch/i386/string/strcat.S +++ b/lib/libc/arch/i386/string/strcat.S @@ -4,9 +4,8 @@ /* char *strcat(char *s1, const char *s2) */ /* Append string s2 to s1. */ /* */ -.text -.globl _strcat -.balign 16 -_strcat: +#include + +ENTRY(strcat) movl $-1, %edx /* Unlimited length */ - jmp __strncat /* Common code */ + jmp _C_LABEL(_strncat) /* Common code */ diff --git a/lib/libc/arch/i386/string/strchr.S b/lib/libc/arch/i386/string/strchr.S index 4c10f59c8..3f2756890 100644 --- a/lib/libc/arch/i386/string/strchr.S +++ b/lib/libc/arch/i386/string/strchr.S @@ -4,10 +4,9 @@ /* char *strchr(const char *s, int c) */ /* Look for a character in a string. */ /* */ -.text -.globl _strchr -.balign 16 -_strchr: +#include + +ENTRY(strchr) push %ebp movl %esp, %ebp push %edi diff --git a/lib/libc/arch/i386/string/strcmp.S b/lib/libc/arch/i386/string/strcmp.S index 2cb1e0843..9d577394f 100644 --- a/lib/libc/arch/i386/string/strcmp.S +++ b/lib/libc/arch/i386/string/strcmp.S @@ -4,9 +4,8 @@ /* int strcmp(const char *s1, const char *s2) */ /* Compare two strings. */ /* */ -.text -.globl _strcmp -.balign 16 -_strcmp: +#include + +ENTRY(strcmp) movl $-1, %ecx /* Unlimited length */ - jmp __strncmp /* Common code */ + jmp _C_LABEL(_strncmp) /* Common code */ diff --git a/lib/libc/arch/i386/string/strcpy.S b/lib/libc/arch/i386/string/strcpy.S index d7affdc23..03be30d87 100644 --- a/lib/libc/arch/i386/string/strcpy.S +++ b/lib/libc/arch/i386/string/strcpy.S @@ -4,16 +4,15 @@ /* char *strcpy(char *s1, const char *s2) */ /* Copy string s2 to s1. */ /* */ -.text -.globl _strcpy -.balign 16 -_strcpy: +#include + +ENTRY(strcpy) push %ebp movl %esp, %ebp push %esi push %edi movl $-1, %ecx /* Unlimited length */ - call __strncpy /* Common code */ + call _C_LABEL(_strncpy) /* Common code */ movl 8(%ebp), %eax /* Return s1 */ pop %edi pop %esi diff --git a/lib/libc/arch/i386/string/strlen.S b/lib/libc/arch/i386/string/strlen.S index 6b38c198f..1dd4aea0a 100644 --- a/lib/libc/arch/i386/string/strlen.S +++ b/lib/libc/arch/i386/string/strlen.S @@ -4,9 +4,8 @@ /* size_t strlen(const char *s) */ /* Return the length of a string. */ /* */ -.text -.globl _strlen -.balign 16 -_strlen: +#include + +ENTRY(strlen) movl $-1, %ecx /* Unlimited length */ - jmp __strnlen /* Common code */ + jmp _C_LABEL(_strnlen) /* Common code */ diff --git a/lib/libc/arch/i386/string/strncat.S b/lib/libc/arch/i386/string/strncat.S index a2ac7d7e9..23731e706 100644 --- a/lib/libc/arch/i386/string/strncat.S +++ b/lib/libc/arch/i386/string/strncat.S @@ -4,9 +4,8 @@ /* size_t strncat(char *s1, const char *s2, size_t n) */ /* Append string s2 to s1. */ /* */ -.text -.globl _strncat -.balign 16 -_strncat: +#include + +ENTRY(strncat) movl 12(%esp), %edx /* Maximum length */ - jmp __strncat /* Common code */ + jmp _C_LABEL(_strncat) /* Common code */ diff --git a/lib/libc/arch/i386/string/strncmp.S b/lib/libc/arch/i386/string/strncmp.S index a95349b01..0c5b8ba2a 100644 --- a/lib/libc/arch/i386/string/strncmp.S +++ b/lib/libc/arch/i386/string/strncmp.S @@ -4,9 +4,8 @@ /* int strncmp(const char *s1, const char *s2, size_t n) */ /* Compare two strings. */ /* */ -.text -.globl _strncmp -.balign 16 -_strncmp: +#include + +ENTRY(strncmp) movl 12(%esp), %ecx /* Maximum length */ - jmp __strncmp /* Common code */ + jmp _C_LABEL(_strncmp) /* Common code */ diff --git a/lib/libc/arch/i386/string/strncpy.S b/lib/libc/arch/i386/string/strncpy.S index f903dbba9..cc70ab5fa 100644 --- a/lib/libc/arch/i386/string/strncpy.S +++ b/lib/libc/arch/i386/string/strncpy.S @@ -4,16 +4,15 @@ /* char *strncpy(char *s1, const char *s2, size_t n) */ /* Copy string s2 to s1. */ /* */ -.text -.globl _strncpy -.balign 16 -_strncpy: +#include + +ENTRY(strncpy) push %ebp movl %esp, %ebp push %esi push %edi movl 16(%ebp), %ecx /* Maximum length */ - call __strncpy /* Common code */ + call _C_LABEL(_strncpy) /* Common code */ movl %edx, %ecx /* Number of bytes not copied */ rep stosb /* strncpy always copies n bytes by null padding */ diff --git a/lib/libc/arch/i386/string/strnlen.S b/lib/libc/arch/i386/string/strnlen.S index 2551f86e4..f4d27d44b 100644 --- a/lib/libc/arch/i386/string/strnlen.S +++ b/lib/libc/arch/i386/string/strnlen.S @@ -4,9 +4,8 @@ /* size_t strnlen(const char *s, size_t n) */ /* Return the length of a string. */ /* */ -.text -.globl _strnlen -.balign 16 -_strnlen: +#include + +ENTRY(strnlen) movl 8(%esp), %ecx /* Maximum length */ - jmp __strnlen /* Common code */ + jmp _C_LABEL(_strnlen) /* Common code */ diff --git a/lib/libc/arch/i386/string/strrchr.S b/lib/libc/arch/i386/string/strrchr.S index 74c03e431..a12463505 100644 --- a/lib/libc/arch/i386/string/strrchr.S +++ b/lib/libc/arch/i386/string/strrchr.S @@ -4,10 +4,9 @@ /* char *strrchr(const char *s, int c) */ /* Look for the last occurrence a character in a string. */ /* */ -.text -.globl _strrchr -.balign 16 -_strrchr: +#include + +ENTRY(strrchr) push %ebp movl %esp, %ebp push %edi diff --git a/lib/libc/gnu/arch/i386/rts/__setjmp.S b/lib/libc/gnu/arch/i386/rts/__setjmp.S index eb2b25f39..51e2f1270 100644 --- a/lib/libc/gnu/arch/i386/rts/__setjmp.S +++ b/lib/libc/gnu/arch/i386/rts/__setjmp.S @@ -1,10 +1,9 @@ / __setjmp.gnu.s / / Created: Oct 14, 1993 by Philip Homburg +#include -.text -.globl ___setjmp -___setjmp: +ENTRY(__setjmp) movl 4(%esp), %eax /* jmp_buf */ movl %edx, 28(%eax) /* save edx */ movl 0(%esp), %edx @@ -22,7 +21,7 @@ ___setjmp: jz 1f leal 4(%eax), %edx /* pointer to sigset_t */ push %edx - call ___newsigset /* save mask */ + call _C_LABEL(__newsigset) /* save mask */ addl $4, %esp 1: movl $0, %eax diff --git a/lib/libc/gnu/arch/i386/rts/longjmp.S b/lib/libc/gnu/arch/i386/rts/longjmp.S index 91ce07a23..8194b2097 100644 --- a/lib/libc/gnu/arch/i386/rts/longjmp.S +++ b/lib/libc/gnu/arch/i386/rts/longjmp.S @@ -1,16 +1,15 @@ / longjmp.gnu.s / / Created: Oct 15, 1993 by Philip Homburg +#include -.text -.globl _longjmp -_longjmp: +ENTRY(longjmp) movl 4(%esp), %eax /* jmp_buf */ cmpl $0, 0(%eax) /* save mask? */ je 1f leal 4(%eax), %edx /* pointer to sigset_t */ push %edx - call ___oldsigset /* restore mask */ + call _C_LABEL(__oldsigset) /* restore mask */ addl $4, %esp movl 4(%esp), %eax /* jmp_buf */ 1: diff --git a/lib/libc/syscall/_exit.S b/lib/libc/syscall/_exit.S index 854f70880..470ebaec8 100644 --- a/lib/libc/syscall/_exit.S +++ b/lib/libc/syscall/_exit.S @@ -1,7 +1,6 @@ -.text -.extern ___exit -.globl __exit -.balign 2 +#include + +IMPORT(__exit) +ENTRY(_exit) + jmp _C_LABEL(__exit) -__exit: - jmp ___exit diff --git a/lib/libc/syscall/_pm_findproc.S b/lib/libc/syscall/_pm_findproc.S index 52f8eeaef..ce0c95495 100644 --- a/lib/libc/syscall/_pm_findproc.S +++ b/lib/libc/syscall/_pm_findproc.S @@ -1,7 +1,6 @@ -.text -.extern ___pm_findproc -.globl __pm_findproc -.balign 2 +#include + +IMPORT(__pm_findproc) +ENTRY(_pm_findproc) + jmp _C_LABEL(__pm_findproc) -__pm_findproc: - jmp ___pm_findproc diff --git a/lib/libc/syscall/access.S b/lib/libc/syscall/access.S index 635c7b92c..1e0a86ef2 100644 --- a/lib/libc/syscall/access.S +++ b/lib/libc/syscall/access.S @@ -1,7 +1,6 @@ -.text -.extern __access -.globl _access -.balign 2 +#include + +IMPORT(_access) +ENTRY(access) + jmp _C_LABEL(_access) -_access: - jmp __access diff --git a/lib/libc/syscall/adddma.S b/lib/libc/syscall/adddma.S index d911015db..37af0c957 100644 --- a/lib/libc/syscall/adddma.S +++ b/lib/libc/syscall/adddma.S @@ -1,7 +1,6 @@ -.text -.extern __adddma -.globl _adddma -.balign 2 +#include + +IMPORT(_adddma) +ENTRY(adddma) + jmp _C_LABEL(_adddma) -_adddma: - jmp __adddma diff --git a/lib/libc/syscall/alarm.S b/lib/libc/syscall/alarm.S index 1dc3116b8..5256d706f 100644 --- a/lib/libc/syscall/alarm.S +++ b/lib/libc/syscall/alarm.S @@ -1,7 +1,6 @@ -.text -.extern __alarm -.globl _alarm -.balign 2 +#include + +IMPORT(_alarm) +ENTRY(alarm) + jmp _C_LABEL(_alarm) -_alarm: - jmp __alarm diff --git a/lib/libc/syscall/brk.S b/lib/libc/syscall/brk.S index e176f844e..c097632da 100644 --- a/lib/libc/syscall/brk.S +++ b/lib/libc/syscall/brk.S @@ -1,7 +1,6 @@ -.text -.extern __brk -.globl _brk -.balign 2 +#include + +IMPORT(_brk) +ENTRY(brk) + jmp _C_LABEL(_brk) -_brk: - jmp __brk diff --git a/lib/libc/syscall/cfgetispeed.S b/lib/libc/syscall/cfgetispeed.S index 7f889edf1..9e308bcb9 100644 --- a/lib/libc/syscall/cfgetispeed.S +++ b/lib/libc/syscall/cfgetispeed.S @@ -1,7 +1,6 @@ -.text -.extern __cfgetispeed -.globl _cfgetispeed -.balign 2 +#include + +IMPORT(_cfgetispeed) +ENTRY(cfgetispeed) + jmp _C_LABEL(_cfgetispeed) -_cfgetispeed: - jmp __cfgetispeed diff --git a/lib/libc/syscall/cfgetospeed.S b/lib/libc/syscall/cfgetospeed.S index 2566bef77..a2734e33d 100644 --- a/lib/libc/syscall/cfgetospeed.S +++ b/lib/libc/syscall/cfgetospeed.S @@ -1,7 +1,6 @@ -.text -.extern __cfgetospeed -.globl _cfgetospeed -.balign 2 +#include + +IMPORT(_cfgetospeed) +ENTRY(cfgetospeed) + jmp _C_LABEL(_cfgetospeed) -_cfgetospeed: - jmp __cfgetospeed diff --git a/lib/libc/syscall/cfsetispeed.S b/lib/libc/syscall/cfsetispeed.S index e3a2b962d..230b9bb15 100644 --- a/lib/libc/syscall/cfsetispeed.S +++ b/lib/libc/syscall/cfsetispeed.S @@ -1,7 +1,6 @@ -.text -.extern __cfsetispeed -.globl _cfsetispeed -.balign 2 +#include + +IMPORT(_cfsetispeed) +ENTRY(cfsetispeed) + jmp _C_LABEL(_cfsetispeed) -_cfsetispeed: - jmp __cfsetispeed diff --git a/lib/libc/syscall/cfsetospeed.S b/lib/libc/syscall/cfsetospeed.S index 29bd8d9e0..d6b1cead4 100644 --- a/lib/libc/syscall/cfsetospeed.S +++ b/lib/libc/syscall/cfsetospeed.S @@ -1,7 +1,6 @@ -.text -.extern __cfsetospeed -.globl _cfsetospeed -.balign 2 +#include + +IMPORT(_cfsetospeed) +ENTRY(cfsetospeed) + jmp _C_LABEL(_cfsetospeed) -_cfsetospeed: - jmp __cfsetospeed diff --git a/lib/libc/syscall/chdir.S b/lib/libc/syscall/chdir.S index 941ef9550..e234a244e 100644 --- a/lib/libc/syscall/chdir.S +++ b/lib/libc/syscall/chdir.S @@ -1,11 +1,10 @@ -.text -.extern __chdir -.globl _chdir -.extern __fchdir -.globl _fchdir -.balign 2 +#include + +IMPORT(_chdir) +ENTRY(chdir) + jmp _C_LABEL(_chdir) + +IMPORT(_fchdir) +ENTRY(fchdir) + jmp _C_LABEL(_fchdir) -_chdir: - jmp __chdir -_fchdir: - jmp __fchdir diff --git a/lib/libc/syscall/chmod.S b/lib/libc/syscall/chmod.S index 629d40cd8..cb78d3f9c 100644 --- a/lib/libc/syscall/chmod.S +++ b/lib/libc/syscall/chmod.S @@ -1,7 +1,6 @@ -.text -.extern __chmod -.globl _chmod -.balign 2 +#include + +IMPORT(_chmod) +ENTRY(chmod) + jmp _C_LABEL(_chmod) -_chmod: - jmp __chmod diff --git a/lib/libc/syscall/chown.S b/lib/libc/syscall/chown.S index 9318670e6..c93bc4edd 100644 --- a/lib/libc/syscall/chown.S +++ b/lib/libc/syscall/chown.S @@ -1,7 +1,6 @@ -.text -.extern __chown -.globl _chown -.balign 2 +#include + +IMPORT(_chown) +ENTRY(chown) + jmp _C_LABEL(_chown) -_chown: - jmp __chown diff --git a/lib/libc/syscall/chroot.S b/lib/libc/syscall/chroot.S index 4e091ee48..fa5985108 100644 --- a/lib/libc/syscall/chroot.S +++ b/lib/libc/syscall/chroot.S @@ -1,7 +1,6 @@ -.text -.extern __chroot -.globl _chroot -.balign 2 +#include + +IMPORT(_chroot) +ENTRY(chroot) + jmp _C_LABEL(_chroot) -_chroot: - jmp __chroot diff --git a/lib/libc/syscall/close.S b/lib/libc/syscall/close.S index 9f87c3dcd..34fc82677 100644 --- a/lib/libc/syscall/close.S +++ b/lib/libc/syscall/close.S @@ -1,7 +1,6 @@ -.text -.extern __close -.globl _close -.balign 2 +#include + +IMPORT(_close) +ENTRY(close) + jmp _C_LABEL(_close) -_close: - jmp __close diff --git a/lib/libc/syscall/closedir.S b/lib/libc/syscall/closedir.S index 3164858fe..56a42614c 100644 --- a/lib/libc/syscall/closedir.S +++ b/lib/libc/syscall/closedir.S @@ -1,7 +1,6 @@ -.text -.extern __closedir -.globl _closedir -.balign 2 +#include + +IMPORT(_closedir) +ENTRY(closedir) + jmp _C_LABEL(_closedir) -_closedir: - jmp __closedir diff --git a/lib/libc/syscall/cprofile.S b/lib/libc/syscall/cprofile.S index 7bcfe8def..5622ec665 100644 --- a/lib/libc/syscall/cprofile.S +++ b/lib/libc/syscall/cprofile.S @@ -1,7 +1,6 @@ -.text -.extern __cprofile -.globl _cprofile -.balign 2 +#include + +IMPORT(_cprofile) +ENTRY(cprofile) + jmp _C_LABEL(_cprofile) -_cprofile: - jmp __cprofile diff --git a/lib/libc/syscall/creat.S b/lib/libc/syscall/creat.S index 0d3cc2b58..82cf0d368 100644 --- a/lib/libc/syscall/creat.S +++ b/lib/libc/syscall/creat.S @@ -1,7 +1,6 @@ -.text -.extern __creat -.globl _creat -.balign 2 +#include + +IMPORT(_creat) +ENTRY(creat) + jmp _C_LABEL(_creat) -_creat: - jmp __creat diff --git a/lib/libc/syscall/deldma.S b/lib/libc/syscall/deldma.S index a15c442b9..98a452e0c 100644 --- a/lib/libc/syscall/deldma.S +++ b/lib/libc/syscall/deldma.S @@ -1,7 +1,6 @@ -.text -.extern __deldma -.globl _deldma -.balign 2 +#include + +IMPORT(_deldma) +ENTRY(deldma) + jmp _C_LABEL(_deldma) -_deldma: - jmp __deldma diff --git a/lib/libc/syscall/dup.S b/lib/libc/syscall/dup.S index 1957b6931..a318063ef 100644 --- a/lib/libc/syscall/dup.S +++ b/lib/libc/syscall/dup.S @@ -1,7 +1,6 @@ -.text -.extern __dup -.globl _dup -.balign 2 +#include + +IMPORT(_dup) +ENTRY(dup) + jmp _C_LABEL(_dup) -_dup: - jmp __dup diff --git a/lib/libc/syscall/dup2.S b/lib/libc/syscall/dup2.S index 26f426e21..2cefff893 100644 --- a/lib/libc/syscall/dup2.S +++ b/lib/libc/syscall/dup2.S @@ -1,7 +1,6 @@ -.text -.extern __dup2 -.globl _dup2 -.balign 2 +#include + +IMPORT(_dup2) +ENTRY(dup2) + jmp _C_LABEL(_dup2) -_dup2: - jmp __dup2 diff --git a/lib/libc/syscall/execl.S b/lib/libc/syscall/execl.S index 6c44c28f7..89368f473 100644 --- a/lib/libc/syscall/execl.S +++ b/lib/libc/syscall/execl.S @@ -1,7 +1,6 @@ -.text -.extern __execl -.globl _execl -.balign 2 +#include + +IMPORT(_execl) +ENTRY(execl) + jmp _C_LABEL(_execl) -_execl: - jmp __execl diff --git a/lib/libc/syscall/execle.S b/lib/libc/syscall/execle.S index 8f7b3697b..cd221e4dc 100644 --- a/lib/libc/syscall/execle.S +++ b/lib/libc/syscall/execle.S @@ -1,7 +1,6 @@ -.text -.extern __execle -.globl _execle -.balign 2 +#include + +IMPORT(_execle) +ENTRY(execle) + jmp _C_LABEL(_execle) -_execle: - jmp __execle diff --git a/lib/libc/syscall/execlp.S b/lib/libc/syscall/execlp.S index c35d4ea62..aea8517fc 100644 --- a/lib/libc/syscall/execlp.S +++ b/lib/libc/syscall/execlp.S @@ -1,7 +1,6 @@ -.text -.extern __execlp -.globl _execlp -.balign 2 +#include + +IMPORT(_execlp) +ENTRY(execlp) + jmp _C_LABEL(_execlp) -_execlp: - jmp __execlp diff --git a/lib/libc/syscall/execv.S b/lib/libc/syscall/execv.S index 991c24ea0..25ceaeebc 100644 --- a/lib/libc/syscall/execv.S +++ b/lib/libc/syscall/execv.S @@ -1,7 +1,6 @@ -.text -.extern __execv -.globl _execv -.balign 2 +#include + +IMPORT(_execv) +ENTRY(execv) + jmp _C_LABEL(_execv) -_execv: - jmp __execv diff --git a/lib/libc/syscall/execve.S b/lib/libc/syscall/execve.S index 818756fb0..1cc63b814 100644 --- a/lib/libc/syscall/execve.S +++ b/lib/libc/syscall/execve.S @@ -1,7 +1,6 @@ -.text -.extern __execve -.globl _execve -.balign 2 +#include + +IMPORT(_execve) +ENTRY(execve) + jmp _C_LABEL(_execve) -_execve: - jmp __execve diff --git a/lib/libc/syscall/execvp.S b/lib/libc/syscall/execvp.S index cb2d66aad..aefdb285d 100644 --- a/lib/libc/syscall/execvp.S +++ b/lib/libc/syscall/execvp.S @@ -1,7 +1,6 @@ -.text -.extern __execvp -.globl _execvp -.balign 2 +#include + +IMPORT(_execvp) +ENTRY(execvp) + jmp _C_LABEL(_execvp) -_execvp: - jmp __execvp diff --git a/lib/libc/syscall/fchmod.S b/lib/libc/syscall/fchmod.S index 1eba9dd53..ce219df3d 100644 --- a/lib/libc/syscall/fchmod.S +++ b/lib/libc/syscall/fchmod.S @@ -1,7 +1,6 @@ -.text -.extern __fchmod -.globl _fchmod -.balign 2 +#include + +IMPORT(_fchmod) +ENTRY(fchmod) + jmp _C_LABEL(_fchmod) -_fchmod: - jmp __fchmod diff --git a/lib/libc/syscall/fchown.S b/lib/libc/syscall/fchown.S index 91bf31b09..6d23bf9cc 100644 --- a/lib/libc/syscall/fchown.S +++ b/lib/libc/syscall/fchown.S @@ -1,7 +1,6 @@ -.text -.extern __fchown -.globl _fchown -.balign 2 +#include + +IMPORT(_fchown) +ENTRY(fchown) + jmp _C_LABEL(_fchown) -_fchown: - jmp __fchown diff --git a/lib/libc/syscall/fcntl.S b/lib/libc/syscall/fcntl.S index d3ce7d71f..804b2b3fc 100644 --- a/lib/libc/syscall/fcntl.S +++ b/lib/libc/syscall/fcntl.S @@ -1,7 +1,6 @@ -.text -.extern __fcntl -.globl _fcntl -.balign 2 +#include + +IMPORT(_fcntl) +ENTRY(fcntl) + jmp _C_LABEL(_fcntl) -_fcntl: - jmp __fcntl diff --git a/lib/libc/syscall/fork.S b/lib/libc/syscall/fork.S index ef5101e16..a0fa84fa7 100644 --- a/lib/libc/syscall/fork.S +++ b/lib/libc/syscall/fork.S @@ -1,7 +1,6 @@ -.text -.extern __fork -.globl _fork -.balign 2 +#include + +IMPORT(_fork) +ENTRY(fork) + jmp _C_LABEL(_fork) -_fork: - jmp __fork diff --git a/lib/libc/syscall/fpathconf.S b/lib/libc/syscall/fpathconf.S index 2b556ddcc..970e75617 100644 --- a/lib/libc/syscall/fpathconf.S +++ b/lib/libc/syscall/fpathconf.S @@ -1,7 +1,6 @@ -.text -.extern __fpathconf -.globl _fpathconf -.balign 2 +#include + +IMPORT(_fpathconf) +ENTRY(fpathconf) + jmp _C_LABEL(_fpathconf) -_fpathconf: - jmp __fpathconf diff --git a/lib/libc/syscall/fstat.S b/lib/libc/syscall/fstat.S index 64e1c1404..d419ef5f1 100644 --- a/lib/libc/syscall/fstat.S +++ b/lib/libc/syscall/fstat.S @@ -1,7 +1,6 @@ -.text -.extern __fstat -.globl _fstat -.balign 2 +#include + +IMPORT(_fstat) +ENTRY(fstat) + jmp _C_LABEL(_fstat) -_fstat: - jmp __fstat diff --git a/lib/libc/syscall/fstatfs.S b/lib/libc/syscall/fstatfs.S index 9c35e8465..1b9eba44b 100644 --- a/lib/libc/syscall/fstatfs.S +++ b/lib/libc/syscall/fstatfs.S @@ -1,7 +1,6 @@ -.text -.extern __fstatfs -.globl _fstatfs -.balign 2 +#include + +IMPORT(_fstatfs) +ENTRY(fstatfs) + jmp _C_LABEL(_fstatfs) -_fstatfs: - jmp __fstatfs diff --git a/lib/libc/syscall/fstatvfs.S b/lib/libc/syscall/fstatvfs.S index 096218c54..52e2c4076 100644 --- a/lib/libc/syscall/fstatvfs.S +++ b/lib/libc/syscall/fstatvfs.S @@ -1,7 +1,6 @@ -.text -.extern __fstatvfs -.globl _fstatvfs -.balign 2 +#include + +IMPORT(_fstatvfs) +ENTRY(fstatvfs) + jmp _C_LABEL(_fstatvfs) -_fstatvfs: - jmp __fstatvfs diff --git a/lib/libc/syscall/getcwd.S b/lib/libc/syscall/getcwd.S index 16b28e314..d8a5cc02f 100644 --- a/lib/libc/syscall/getcwd.S +++ b/lib/libc/syscall/getcwd.S @@ -1,7 +1,6 @@ -.text -.extern __getcwd -.globl _getcwd -.balign 2 +#include + +IMPORT(_getcwd) +ENTRY(getcwd) + jmp _C_LABEL(_getcwd) -_getcwd: - jmp __getcwd diff --git a/lib/libc/syscall/getdents.S b/lib/libc/syscall/getdents.S index 6d7497dc4..cac5c7152 100644 --- a/lib/libc/syscall/getdents.S +++ b/lib/libc/syscall/getdents.S @@ -1,7 +1,6 @@ -.text -.extern __getdents -.globl _getdents -.balign 2 +#include + +IMPORT(_getdents) +ENTRY(getdents) + jmp _C_LABEL(_getdents) -_getdents: - jmp __getdents diff --git a/lib/libc/syscall/getdma.S b/lib/libc/syscall/getdma.S index 2d0a6513d..2439a5b2a 100644 --- a/lib/libc/syscall/getdma.S +++ b/lib/libc/syscall/getdma.S @@ -1,7 +1,6 @@ -.text -.extern __getdma -.globl _getdma -.balign 2 +#include + +IMPORT(_getdma) +ENTRY(getdma) + jmp _C_LABEL(_getdma) -_getdma: - jmp __getdma diff --git a/lib/libc/syscall/getegid.S b/lib/libc/syscall/getegid.S index d7a2115a2..a18d8c707 100644 --- a/lib/libc/syscall/getegid.S +++ b/lib/libc/syscall/getegid.S @@ -1,7 +1,6 @@ -.text -.extern __getegid -.globl _getegid -.balign 2 +#include + +IMPORT(_getegid) +ENTRY(getegid) + jmp _C_LABEL(_getegid) -_getegid: - jmp __getegid diff --git a/lib/libc/syscall/geteuid.S b/lib/libc/syscall/geteuid.S index 7cfff3cbe..603371dcd 100644 --- a/lib/libc/syscall/geteuid.S +++ b/lib/libc/syscall/geteuid.S @@ -1,7 +1,6 @@ -.text -.extern __geteuid -.globl _geteuid -.balign 2 +#include + +IMPORT(_geteuid) +ENTRY(geteuid) + jmp _C_LABEL(_geteuid) -_geteuid: - jmp __geteuid diff --git a/lib/libc/syscall/getgid.S b/lib/libc/syscall/getgid.S index e62eaa71e..484da0df3 100644 --- a/lib/libc/syscall/getgid.S +++ b/lib/libc/syscall/getgid.S @@ -1,7 +1,6 @@ -.text -.extern __getgid -.globl _getgid -.balign 2 +#include + +IMPORT(_getgid) +ENTRY(getgid) + jmp _C_LABEL(_getgid) -_getgid: - jmp __getgid diff --git a/lib/libc/syscall/getgroups.S b/lib/libc/syscall/getgroups.S index cffb42999..3c7de3d43 100644 --- a/lib/libc/syscall/getgroups.S +++ b/lib/libc/syscall/getgroups.S @@ -1,7 +1,6 @@ -.text -.extern __getgroups -.globl _getgroups -.balign 2 +#include + +IMPORT(_getgroups) +ENTRY(getgroups) + jmp _C_LABEL(_getgroups) -_getgroups: - jmp __getgroups diff --git a/lib/libc/syscall/getitimer.S b/lib/libc/syscall/getitimer.S index a30dba630..db20d7862 100644 --- a/lib/libc/syscall/getitimer.S +++ b/lib/libc/syscall/getitimer.S @@ -1,7 +1,6 @@ -.text -.extern __getitimer -.globl _getitimer -.balign 2 +#include + +IMPORT(_getitimer) +ENTRY(getitimer) + jmp _C_LABEL(_getitimer) -_getitimer: - jmp __getitimer diff --git a/lib/libc/syscall/getngid.S b/lib/libc/syscall/getngid.S index bbd4a0eb9..d4c51cbc6 100644 --- a/lib/libc/syscall/getngid.S +++ b/lib/libc/syscall/getngid.S @@ -1,7 +1,6 @@ -.text -.extern __getngid -.globl _getngid -.balign 2 +#include + +IMPORT(_getngid) +ENTRY(getngid) + jmp _C_LABEL(_getngid) -_getngid: - jmp __getngid diff --git a/lib/libc/syscall/getnpid.S b/lib/libc/syscall/getnpid.S index f97506659..3fdf2e99d 100644 --- a/lib/libc/syscall/getnpid.S +++ b/lib/libc/syscall/getnpid.S @@ -1,7 +1,6 @@ -.text -.extern __getnpid -.globl _getnpid -.balign 2 +#include + +IMPORT(_getnpid) +ENTRY(getnpid) + jmp _C_LABEL(_getnpid) -_getnpid: - jmp __getnpid diff --git a/lib/libc/syscall/getnprocnr.S b/lib/libc/syscall/getnprocnr.S index 18a44908e..5006e93c7 100644 --- a/lib/libc/syscall/getnprocnr.S +++ b/lib/libc/syscall/getnprocnr.S @@ -1,7 +1,6 @@ -.text -.extern __getnprocnr -.globl _getnprocnr -.balign 2 +#include + +IMPORT(_getnprocnr) +ENTRY(getnprocnr) + jmp _C_LABEL(_getnprocnr) -_getnprocnr: - jmp __getnprocnr diff --git a/lib/libc/syscall/getnucred.S b/lib/libc/syscall/getnucred.S index 4e436e649..c2f1fb9a8 100644 --- a/lib/libc/syscall/getnucred.S +++ b/lib/libc/syscall/getnucred.S @@ -1,7 +1,6 @@ -.text -.extern __getnucred -.globl _getnucred -.balign 2 +#include + +IMPORT(_getnucred) +ENTRY(getnucred) + jmp _C_LABEL(_getnucred) -_getnucred: - jmp __getnucred diff --git a/lib/libc/syscall/getnuid.S b/lib/libc/syscall/getnuid.S index 05c65bb6a..90296636b 100644 --- a/lib/libc/syscall/getnuid.S +++ b/lib/libc/syscall/getnuid.S @@ -1,7 +1,6 @@ -.text -.extern __getnuid -.globl _getnuid -.balign 2 +#include + +IMPORT(_getnuid) +ENTRY(getnuid) + jmp _C_LABEL(_getnuid) -_getnuid: - jmp __getnuid diff --git a/lib/libc/syscall/getpgrp.S b/lib/libc/syscall/getpgrp.S index 22d79abdd..ba58c212d 100644 --- a/lib/libc/syscall/getpgrp.S +++ b/lib/libc/syscall/getpgrp.S @@ -1,7 +1,6 @@ -.text -.extern __getpgrp -.globl _getpgrp -.balign 2 +#include + +IMPORT(_getpgrp) +ENTRY(getpgrp) + jmp _C_LABEL(_getpgrp) -_getpgrp: - jmp __getpgrp diff --git a/lib/libc/syscall/getpid.S b/lib/libc/syscall/getpid.S index 474b90b8b..211c5fcae 100644 --- a/lib/libc/syscall/getpid.S +++ b/lib/libc/syscall/getpid.S @@ -1,7 +1,6 @@ -.text -.extern __getpid -.globl _getpid -.balign 2 +#include + +IMPORT(_getpid) +ENTRY(getpid) + jmp _C_LABEL(_getpid) -_getpid: - jmp __getpid diff --git a/lib/libc/syscall/getppid.S b/lib/libc/syscall/getppid.S index 060d9206b..bda02d518 100644 --- a/lib/libc/syscall/getppid.S +++ b/lib/libc/syscall/getppid.S @@ -1,7 +1,6 @@ -.text -.extern __getppid -.globl _getppid -.balign 2 +#include + +IMPORT(_getppid) +ENTRY(getppid) + jmp _C_LABEL(_getppid) -_getppid: - jmp __getppid diff --git a/lib/libc/syscall/getpprocnr.S b/lib/libc/syscall/getpprocnr.S index 647b7d295..8172928d3 100644 --- a/lib/libc/syscall/getpprocnr.S +++ b/lib/libc/syscall/getpprocnr.S @@ -1,7 +1,6 @@ -.text -.extern __getpprocnr -.globl _getpprocnr -.balign 2 +#include + +IMPORT(_getpprocnr) +ENTRY(getpprocnr) + jmp _C_LABEL(_getpprocnr) -_getpprocnr: - jmp __getpprocnr diff --git a/lib/libc/syscall/getprocnr.S b/lib/libc/syscall/getprocnr.S index 5b394fb1f..dd2051a66 100644 --- a/lib/libc/syscall/getprocnr.S +++ b/lib/libc/syscall/getprocnr.S @@ -1,7 +1,6 @@ -.text -.extern __getprocnr -.globl _getprocnr -.balign 2 +#include + +IMPORT(_getprocnr) +ENTRY(getprocnr) + jmp _C_LABEL(_getprocnr) -_getprocnr: - jmp __getprocnr diff --git a/lib/libc/syscall/getsigset.S b/lib/libc/syscall/getsigset.S index e9211e055..26646cd97 100644 --- a/lib/libc/syscall/getsigset.S +++ b/lib/libc/syscall/getsigset.S @@ -1,7 +1,6 @@ -.text -.extern __getsigset -.globl _getsigset -.balign 2 +#include + +IMPORT(_getsigset) +ENTRY(getsigset) + jmp _C_LABEL(_getsigset) -_getsigset: - jmp __getsigset diff --git a/lib/libc/syscall/getsysinfo.S b/lib/libc/syscall/getsysinfo.S index e9bfaae08..cd413b4b1 100644 --- a/lib/libc/syscall/getsysinfo.S +++ b/lib/libc/syscall/getsysinfo.S @@ -1,11 +1,10 @@ -.text -.extern __getsysinfo -.globl _getsysinfo -.extern __getsysinfo_up -.globl _getsysinfo_up -.balign 2 +#include + +IMPORT(_getsysinfo) +ENTRY(getsysinfo) + jmp _C_LABEL(_getsysinfo) + +IMPORT(_getsysinfo_up) +ENTRY(getsysinfo_up) + jmp _C_LABEL(_getsysinfo_up) -_getsysinfo: - jmp __getsysinfo -_getsysinfo_up: - jmp __getsysinfo_up diff --git a/lib/libc/syscall/getuid.S b/lib/libc/syscall/getuid.S index d703b0d0f..712c433f5 100644 --- a/lib/libc/syscall/getuid.S +++ b/lib/libc/syscall/getuid.S @@ -1,7 +1,6 @@ -.text -.extern __getuid -.globl _getuid -.balign 2 +#include + +IMPORT(_getuid) +ENTRY(getuid) + jmp _C_LABEL(_getuid) -_getuid: - jmp __getuid diff --git a/lib/libc/syscall/ioctl.S b/lib/libc/syscall/ioctl.S index 6ede264a3..d0876cbbf 100644 --- a/lib/libc/syscall/ioctl.S +++ b/lib/libc/syscall/ioctl.S @@ -1,7 +1,6 @@ -.text -.extern __ioctl -.globl _ioctl -.balign 2 +#include + +IMPORT(_ioctl) +ENTRY(ioctl) + jmp _C_LABEL(_ioctl) -_ioctl: - jmp __ioctl diff --git a/lib/libc/syscall/isatty.S b/lib/libc/syscall/isatty.S index 24ffe3eb1..559fd6551 100644 --- a/lib/libc/syscall/isatty.S +++ b/lib/libc/syscall/isatty.S @@ -1,7 +1,6 @@ -.text -.extern __isatty -.globl _isatty -.balign 2 +#include + +IMPORT(_isatty) +ENTRY(isatty) + jmp _C_LABEL(_isatty) -_isatty: - jmp __isatty diff --git a/lib/libc/syscall/kill.S b/lib/libc/syscall/kill.S index 396e73ddb..bbbdcdb3a 100644 --- a/lib/libc/syscall/kill.S +++ b/lib/libc/syscall/kill.S @@ -1,7 +1,6 @@ -.text -.extern __kill -.globl _kill -.balign 2 +#include + +IMPORT(_kill) +ENTRY(kill) + jmp _C_LABEL(_kill) -_kill: - jmp __kill diff --git a/lib/libc/syscall/killpg.S b/lib/libc/syscall/killpg.S index f6b17aa1b..cff838f12 100644 --- a/lib/libc/syscall/killpg.S +++ b/lib/libc/syscall/killpg.S @@ -1,7 +1,6 @@ -.text -.extern __killpg -.globl _killpg -.balign 2 +#include + +IMPORT(_killpg) +ENTRY(killpg) + jmp _C_LABEL(_killpg) -_killpg: - jmp __killpg diff --git a/lib/libc/syscall/link.S b/lib/libc/syscall/link.S index 2856aef07..b8b01a681 100644 --- a/lib/libc/syscall/link.S +++ b/lib/libc/syscall/link.S @@ -1,7 +1,6 @@ -.text -.extern __link -.globl _link -.balign 2 +#include + +IMPORT(_link) +ENTRY(link) + jmp _C_LABEL(_link) -_link: - jmp __link diff --git a/lib/libc/syscall/lseek.S b/lib/libc/syscall/lseek.S index ebca729a4..d5d1bea45 100644 --- a/lib/libc/syscall/lseek.S +++ b/lib/libc/syscall/lseek.S @@ -1,7 +1,6 @@ -.text -.extern __lseek -.globl _lseek -.balign 2 +#include + +IMPORT(_lseek) +ENTRY(lseek) + jmp _C_LABEL(_lseek) -_lseek: - jmp __lseek diff --git a/lib/libc/syscall/lseek64.S b/lib/libc/syscall/lseek64.S index 771f5bbf3..b445dd590 100644 --- a/lib/libc/syscall/lseek64.S +++ b/lib/libc/syscall/lseek64.S @@ -1,7 +1,6 @@ -.text -.extern __lseek64 -.globl _lseek64 -.balign 2 +#include + +IMPORT(_lseek64) +ENTRY(lseek64) + jmp _C_LABEL(_lseek64) -_lseek64: - jmp __lseek64 diff --git a/lib/libc/syscall/lstat.S b/lib/libc/syscall/lstat.S index 2361529cc..88e7df846 100644 --- a/lib/libc/syscall/lstat.S +++ b/lib/libc/syscall/lstat.S @@ -1,7 +1,6 @@ -.text -.extern __lstat -.globl _lstat -.balign 2 +#include + +IMPORT(_lstat) +ENTRY(lstat) + jmp _C_LABEL(_lstat) -_lstat: - jmp __lstat diff --git a/lib/libc/syscall/mapdriver.S b/lib/libc/syscall/mapdriver.S index ac935e0cf..10f328cf0 100644 --- a/lib/libc/syscall/mapdriver.S +++ b/lib/libc/syscall/mapdriver.S @@ -1,7 +1,6 @@ -.text -.extern __mapdriver -.globl _mapdriver -.balign 2 +#include + +IMPORT(_mapdriver) +ENTRY(mapdriver) + jmp _C_LABEL(_mapdriver) -_mapdriver: - jmp __mapdriver diff --git a/lib/libc/syscall/mkdir.S b/lib/libc/syscall/mkdir.S index 8abb1f9ee..20bde0841 100644 --- a/lib/libc/syscall/mkdir.S +++ b/lib/libc/syscall/mkdir.S @@ -1,7 +1,6 @@ -.text -.extern __mkdir -.globl _mkdir -.balign 2 +#include + +IMPORT(_mkdir) +ENTRY(mkdir) + jmp _C_LABEL(_mkdir) -_mkdir: - jmp __mkdir diff --git a/lib/libc/syscall/mkfifo.S b/lib/libc/syscall/mkfifo.S index 07a29d5ae..60df68bbe 100644 --- a/lib/libc/syscall/mkfifo.S +++ b/lib/libc/syscall/mkfifo.S @@ -1,7 +1,6 @@ -.text -.extern __mkfifo -.globl _mkfifo -.balign 2 +#include + +IMPORT(_mkfifo) +ENTRY(mkfifo) + jmp _C_LABEL(_mkfifo) -_mkfifo: - jmp __mkfifo diff --git a/lib/libc/syscall/mknod.S b/lib/libc/syscall/mknod.S index 16794f3a0..dd0565c10 100644 --- a/lib/libc/syscall/mknod.S +++ b/lib/libc/syscall/mknod.S @@ -1,7 +1,6 @@ -.text -.extern __mknod -.globl _mknod -.balign 2 +#include + +IMPORT(_mknod) +ENTRY(mknod) + jmp _C_LABEL(_mknod) -_mknod: - jmp __mknod diff --git a/lib/libc/syscall/mmap.S b/lib/libc/syscall/mmap.S index 6a10fe4b5..d8afedad8 100644 --- a/lib/libc/syscall/mmap.S +++ b/lib/libc/syscall/mmap.S @@ -1,7 +1,6 @@ -.text -.extern __mmap -.globl _mmap -.balign 2 +#include + +IMPORT(_mmap) +ENTRY(mmap) + jmp _C_LABEL(_mmap) -_mmap: - jmp __mmap diff --git a/lib/libc/syscall/mount.S b/lib/libc/syscall/mount.S index 22f09c519..0bb46c8cd 100644 --- a/lib/libc/syscall/mount.S +++ b/lib/libc/syscall/mount.S @@ -1,7 +1,6 @@ -.text -.extern __mount -.globl _mount -.balign 2 +#include + +IMPORT(_mount) +ENTRY(mount) + jmp _C_LABEL(_mount) -_mount: - jmp __mount diff --git a/lib/libc/syscall/munmap.S b/lib/libc/syscall/munmap.S index c7da555f0..5ca046694 100644 --- a/lib/libc/syscall/munmap.S +++ b/lib/libc/syscall/munmap.S @@ -1,12 +1,10 @@ -.text -.extern __munmap -.globl _munmap -.extern __munmap_text -.globl _munmap_text -.balign 2 +#include -_munmap: - jmp __munmap +IMPORT(_munmap) +ENTRY(munmap) + jmp _C_LABEL(_munmap) + +IMPORT(_munmap_text) +ENTRY(munmap_text) + jmp _C_LABEL(_munmap_text) -_munmap_text: - jmp __munmap_text diff --git a/lib/libc/syscall/nanosleep.S b/lib/libc/syscall/nanosleep.S index 66eb3ecbb..63db02df5 100644 --- a/lib/libc/syscall/nanosleep.S +++ b/lib/libc/syscall/nanosleep.S @@ -1,6 +1,6 @@ -.text -.extern __nanosleep -.globl _nanosleep +#include + +IMPORT(_nanosleep) +ENTRY(nanosleep) + jmp _C_LABEL(_nanosleep) -_nanosleep: - jmp __nanosleep diff --git a/lib/libc/syscall/open.S b/lib/libc/syscall/open.S index e178bd39f..0c6606433 100644 --- a/lib/libc/syscall/open.S +++ b/lib/libc/syscall/open.S @@ -1,7 +1,6 @@ -.text -.extern __open -.globl _open -.balign 2 +#include + +IMPORT(_open) +ENTRY(open) + jmp _C_LABEL(_open) -_open: - jmp __open diff --git a/lib/libc/syscall/opendir.S b/lib/libc/syscall/opendir.S index cbfd761f5..9b9f3c3a6 100644 --- a/lib/libc/syscall/opendir.S +++ b/lib/libc/syscall/opendir.S @@ -1,7 +1,6 @@ -.text -.extern __opendir -.globl _opendir -.balign 2 +#include + +IMPORT(_opendir) +ENTRY(opendir) + jmp _C_LABEL(_opendir) -_opendir: - jmp __opendir diff --git a/lib/libc/syscall/pathconf.S b/lib/libc/syscall/pathconf.S index a891a790b..340400f80 100644 --- a/lib/libc/syscall/pathconf.S +++ b/lib/libc/syscall/pathconf.S @@ -1,7 +1,6 @@ -.text -.extern __pathconf -.globl _pathconf -.balign 2 +#include + +IMPORT(_pathconf) +ENTRY(pathconf) + jmp _C_LABEL(_pathconf) -_pathconf: - jmp __pathconf diff --git a/lib/libc/syscall/pause.S b/lib/libc/syscall/pause.S index 69c5e8fd1..1f55503cb 100644 --- a/lib/libc/syscall/pause.S +++ b/lib/libc/syscall/pause.S @@ -1,7 +1,6 @@ -.text -.extern __pause -.globl _pause -.balign 2 +#include + +IMPORT(_pause) +ENTRY(pause) + jmp _C_LABEL(_pause) -_pause: - jmp __pause diff --git a/lib/libc/syscall/pipe.S b/lib/libc/syscall/pipe.S index e66f1ac07..29ee2f3dc 100644 --- a/lib/libc/syscall/pipe.S +++ b/lib/libc/syscall/pipe.S @@ -1,7 +1,6 @@ -.text -.extern __pipe -.globl _pipe -.balign 2 +#include + +IMPORT(_pipe) +ENTRY(pipe) + jmp _C_LABEL(_pipe) -_pipe: - jmp __pipe diff --git a/lib/libc/syscall/ptrace.S b/lib/libc/syscall/ptrace.S index d88e67850..cd1b89440 100644 --- a/lib/libc/syscall/ptrace.S +++ b/lib/libc/syscall/ptrace.S @@ -1,7 +1,6 @@ -.text -.extern __ptrace -.globl _ptrace -.balign 2 +#include + +IMPORT(_ptrace) +ENTRY(ptrace) + jmp _C_LABEL(_ptrace) -_ptrace: - jmp __ptrace diff --git a/lib/libc/syscall/read.S b/lib/libc/syscall/read.S index a12fdb027..da015ae73 100644 --- a/lib/libc/syscall/read.S +++ b/lib/libc/syscall/read.S @@ -1,7 +1,6 @@ -.text -.extern __read -.globl _read -.balign 2 +#include + +IMPORT(_read) +ENTRY(read) + jmp _C_LABEL(_read) -_read: - jmp __read diff --git a/lib/libc/syscall/readdir.S b/lib/libc/syscall/readdir.S index 063c6e975..42cae1de8 100644 --- a/lib/libc/syscall/readdir.S +++ b/lib/libc/syscall/readdir.S @@ -1,7 +1,6 @@ -.text -.extern __readdir -.globl _readdir -.balign 2 +#include + +IMPORT(_readdir) +ENTRY(readdir) + jmp _C_LABEL(_readdir) -_readdir: - jmp __readdir diff --git a/lib/libc/syscall/readlink.S b/lib/libc/syscall/readlink.S index 4036b7162..91590970a 100644 --- a/lib/libc/syscall/readlink.S +++ b/lib/libc/syscall/readlink.S @@ -1,7 +1,6 @@ -.text -.extern __readlink -.globl _readlink -.balign 2 +#include + +IMPORT(_readlink) +ENTRY(readlink) + jmp _C_LABEL(_readlink) -_readlink: - jmp __readlink diff --git a/lib/libc/syscall/reboot.S b/lib/libc/syscall/reboot.S index cbac2654e..06b64137b 100644 --- a/lib/libc/syscall/reboot.S +++ b/lib/libc/syscall/reboot.S @@ -1,7 +1,6 @@ -.text -.extern __reboot -.globl _reboot -.balign 2 +#include + +IMPORT(_reboot) +ENTRY(reboot) + jmp _C_LABEL(_reboot) -_reboot: - jmp __reboot diff --git a/lib/libc/syscall/rename.S b/lib/libc/syscall/rename.S index 2ea65c559..cfc35dc90 100644 --- a/lib/libc/syscall/rename.S +++ b/lib/libc/syscall/rename.S @@ -1,7 +1,6 @@ -.text -.extern __rename -.globl _rename -.balign 2 +#include + +IMPORT(_rename) +ENTRY(rename) + jmp _C_LABEL(_rename) -_rename: - jmp __rename diff --git a/lib/libc/syscall/rewinddir.S b/lib/libc/syscall/rewinddir.S index 092917673..8c4c29efe 100644 --- a/lib/libc/syscall/rewinddir.S +++ b/lib/libc/syscall/rewinddir.S @@ -1,7 +1,6 @@ -.text -.extern __rewinddir -.globl _rewinddir -.balign 2 +#include + +IMPORT(_rewinddir) +ENTRY(rewinddir) + jmp _C_LABEL(_rewinddir) -_rewinddir: - jmp __rewinddir diff --git a/lib/libc/syscall/rmdir.S b/lib/libc/syscall/rmdir.S index ed25ee453..0e634d8a3 100644 --- a/lib/libc/syscall/rmdir.S +++ b/lib/libc/syscall/rmdir.S @@ -1,7 +1,6 @@ -.text -.extern __rmdir -.globl _rmdir -.balign 2 +#include + +IMPORT(_rmdir) +ENTRY(rmdir) + jmp _C_LABEL(_rmdir) -_rmdir: - jmp __rmdir diff --git a/lib/libc/syscall/sbrk.S b/lib/libc/syscall/sbrk.S index 82cbf06dc..3648db77f 100644 --- a/lib/libc/syscall/sbrk.S +++ b/lib/libc/syscall/sbrk.S @@ -1,7 +1,6 @@ -.text -.extern __sbrk -.globl _sbrk -.balign 2 +#include + +IMPORT(_sbrk) +ENTRY(sbrk) + jmp _C_LABEL(_sbrk) -_sbrk: - jmp __sbrk diff --git a/lib/libc/syscall/seekdir.S b/lib/libc/syscall/seekdir.S index 4f1aa79dd..61738a3fd 100644 --- a/lib/libc/syscall/seekdir.S +++ b/lib/libc/syscall/seekdir.S @@ -1,7 +1,6 @@ -.text -.extern __seekdir -.globl _seekdir -.balign 2 +#include + +IMPORT(_seekdir) +ENTRY(seekdir) + jmp _C_LABEL(_seekdir) -_seekdir: - jmp __seekdir diff --git a/lib/libc/syscall/select.S b/lib/libc/syscall/select.S index 5e8598af4..e5da27136 100644 --- a/lib/libc/syscall/select.S +++ b/lib/libc/syscall/select.S @@ -1,7 +1,6 @@ -.text -.extern __select -.globl _select -.balign 2 +#include + +IMPORT(_select) +ENTRY(select) + jmp _C_LABEL(_select) -_select: - jmp __select diff --git a/lib/libc/syscall/setgid.S b/lib/libc/syscall/setgid.S index ab45f1aa2..2045815f5 100644 --- a/lib/libc/syscall/setgid.S +++ b/lib/libc/syscall/setgid.S @@ -1,11 +1,10 @@ -.text -.extern __setgid -.globl _setgid -.globl _setegid -.balign 2 +#include -_setgid: - jmp __setgid +IMPORT(_setgid) +ENTRY(setgid) + jmp _C_LABEL(_setgid) + +IMPORT(_setegid) +ENTRY(setegid) + jmp _C_LABEL(_setegid) -_setegid: - jmp __setegid diff --git a/lib/libc/syscall/setgroups.S b/lib/libc/syscall/setgroups.S index edc5702cd..4bdabd2a7 100644 --- a/lib/libc/syscall/setgroups.S +++ b/lib/libc/syscall/setgroups.S @@ -1,7 +1,6 @@ -.text -.extern __setgroups -.globl _setgroups -.balign 2 +#include + +IMPORT(_setgroups) +ENTRY(setgroups) + jmp _C_LABEL(_setgroups) -_setgroups: - jmp __setgroups diff --git a/lib/libc/syscall/setitimer.S b/lib/libc/syscall/setitimer.S index c4ab9934d..eecf89802 100644 --- a/lib/libc/syscall/setitimer.S +++ b/lib/libc/syscall/setitimer.S @@ -1,7 +1,6 @@ -.text -.extern __setitimer -.globl _setitimer -.balign 2 +#include + +IMPORT(_setitimer) +ENTRY(setitimer) + jmp _C_LABEL(_setitimer) -_setitimer: - jmp __setitimer diff --git a/lib/libc/syscall/setsid.S b/lib/libc/syscall/setsid.S index 8d49d48fd..3b22131af 100644 --- a/lib/libc/syscall/setsid.S +++ b/lib/libc/syscall/setsid.S @@ -1,7 +1,6 @@ -.text -.extern __setsid -.globl _setsid -.balign 2 +#include + +IMPORT(_setsid) +ENTRY(setsid) + jmp _C_LABEL(_setsid) -_setsid: - jmp __setsid diff --git a/lib/libc/syscall/setuid.S b/lib/libc/syscall/setuid.S index e2600b6c6..838088a30 100644 --- a/lib/libc/syscall/setuid.S +++ b/lib/libc/syscall/setuid.S @@ -1,11 +1,10 @@ -.text -.extern __setuid -.globl _setuid -.globl _seteuid -.balign 2 +#include -_setuid: - jmp __setuid +IMPORT(_setuid) +ENTRY(setuid) + jmp _C_LABEL(_setuid) + +IMPORT(_seteuid) +ENTRY(seteuid) + jmp _C_LABEL(_seteuid) -_seteuid: - jmp __seteuid diff --git a/lib/libc/syscall/sigaction.S b/lib/libc/syscall/sigaction.S index 7899bdd13..ef6eb0778 100644 --- a/lib/libc/syscall/sigaction.S +++ b/lib/libc/syscall/sigaction.S @@ -1,7 +1,6 @@ -.text -.extern __sigaction -.globl _sigaction -.balign 2 +#include + +IMPORT(_sigaction) +ENTRY(sigaction) + jmp _C_LABEL(_sigaction) -_sigaction: - jmp __sigaction diff --git a/lib/libc/syscall/sigaddset.S b/lib/libc/syscall/sigaddset.S index b1189250c..dcef837a3 100644 --- a/lib/libc/syscall/sigaddset.S +++ b/lib/libc/syscall/sigaddset.S @@ -1,7 +1,6 @@ -.text -.extern __sigaddset -.globl _sigaddset -.balign 2 +#include + +IMPORT(_sigaddset) +ENTRY(sigaddset) + jmp _C_LABEL(_sigaddset) -_sigaddset: - jmp __sigaddset diff --git a/lib/libc/syscall/sigdelset.S b/lib/libc/syscall/sigdelset.S index be30fe108..1e36da84d 100644 --- a/lib/libc/syscall/sigdelset.S +++ b/lib/libc/syscall/sigdelset.S @@ -1,7 +1,6 @@ -.text -.extern __sigdelset -.globl _sigdelset -.balign 2 +#include + +IMPORT(_sigdelset) +ENTRY(sigdelset) + jmp _C_LABEL(_sigdelset) -_sigdelset: - jmp __sigdelset diff --git a/lib/libc/syscall/sigemptyset.S b/lib/libc/syscall/sigemptyset.S index f5170de58..755cbb63a 100644 --- a/lib/libc/syscall/sigemptyset.S +++ b/lib/libc/syscall/sigemptyset.S @@ -1,7 +1,6 @@ -.text -.extern __sigemptyset -.globl _sigemptyset -.balign 2 +#include + +IMPORT(_sigemptyset) +ENTRY(sigemptyset) + jmp _C_LABEL(_sigemptyset) -_sigemptyset: - jmp __sigemptyset diff --git a/lib/libc/syscall/sigfillset.S b/lib/libc/syscall/sigfillset.S index 4fcecf388..2aa563a93 100644 --- a/lib/libc/syscall/sigfillset.S +++ b/lib/libc/syscall/sigfillset.S @@ -1,7 +1,6 @@ -.text -.extern __sigfillset -.globl _sigfillset -.balign 2 +#include + +IMPORT(_sigfillset) +ENTRY(sigfillset) + jmp _C_LABEL(_sigfillset) -_sigfillset: - jmp __sigfillset diff --git a/lib/libc/syscall/sigismember.S b/lib/libc/syscall/sigismember.S index 31189e980..c403a7ac1 100644 --- a/lib/libc/syscall/sigismember.S +++ b/lib/libc/syscall/sigismember.S @@ -1,7 +1,6 @@ -.text -.extern __sigismember -.globl _sigismember -.balign 2 +#include + +IMPORT(_sigismember) +ENTRY(sigismember) + jmp _C_LABEL(_sigismember) -_sigismember: - jmp __sigismember diff --git a/lib/libc/syscall/sigpending.S b/lib/libc/syscall/sigpending.S index 43ef7e9e9..4cd828dfe 100644 --- a/lib/libc/syscall/sigpending.S +++ b/lib/libc/syscall/sigpending.S @@ -1,7 +1,6 @@ -.text -.extern __sigpending -.globl _sigpending -.balign 2 +#include + +IMPORT(_sigpending) +ENTRY(sigpending) + jmp _C_LABEL(_sigpending) -_sigpending: - jmp __sigpending diff --git a/lib/libc/syscall/sigprocmask.S b/lib/libc/syscall/sigprocmask.S index d3b343bfd..95727946c 100644 --- a/lib/libc/syscall/sigprocmask.S +++ b/lib/libc/syscall/sigprocmask.S @@ -1,7 +1,6 @@ -.text -.extern __sigprocmask -.globl _sigprocmask -.balign 2 +#include + +IMPORT(_sigprocmask) +ENTRY(sigprocmask) + jmp _C_LABEL(_sigprocmask) -_sigprocmask: - jmp __sigprocmask diff --git a/lib/libc/syscall/sigreturn.S b/lib/libc/syscall/sigreturn.S index 7211fcd15..1be4ce18a 100644 --- a/lib/libc/syscall/sigreturn.S +++ b/lib/libc/syscall/sigreturn.S @@ -1,7 +1,6 @@ -.text -.extern __sigreturn -.globl _sigreturn -.balign 2 +#include + +IMPORT(_sigreturn) +ENTRY(sigreturn) + jmp _C_LABEL(_sigreturn) -_sigreturn: - jmp __sigreturn diff --git a/lib/libc/syscall/sigsuspend.S b/lib/libc/syscall/sigsuspend.S index 8bef82a19..9b38ab561 100644 --- a/lib/libc/syscall/sigsuspend.S +++ b/lib/libc/syscall/sigsuspend.S @@ -1,7 +1,6 @@ -.text -.extern __sigsuspend -.globl _sigsuspend -.balign 2 +#include + +IMPORT(_sigsuspend) +ENTRY(sigsuspend) + jmp _C_LABEL(_sigsuspend) -_sigsuspend: - jmp __sigsuspend diff --git a/lib/libc/syscall/sleep.S b/lib/libc/syscall/sleep.S index afd5f2779..0f7177d9f 100644 --- a/lib/libc/syscall/sleep.S +++ b/lib/libc/syscall/sleep.S @@ -1,7 +1,6 @@ -.text -.extern __sleep -.globl _sleep -.balign 2 +#include + +IMPORT(_sleep) +ENTRY(sleep) + jmp _C_LABEL(_sleep) -_sleep: - jmp __sleep diff --git a/lib/libc/syscall/sprofile.S b/lib/libc/syscall/sprofile.S index 3621ad2d7..a59e9342e 100644 --- a/lib/libc/syscall/sprofile.S +++ b/lib/libc/syscall/sprofile.S @@ -1,7 +1,6 @@ -.text -.extern __sprofile -.globl _sprofile -.balign 2 +#include + +IMPORT(_sprofile) +ENTRY(sprofile) + jmp _C_LABEL(_sprofile) -_sprofile: - jmp __sprofile diff --git a/lib/libc/syscall/stat.S b/lib/libc/syscall/stat.S index 64fc110ba..d38bb195f 100644 --- a/lib/libc/syscall/stat.S +++ b/lib/libc/syscall/stat.S @@ -1,7 +1,6 @@ -.text -.extern __stat -.globl _stat -.balign 2 +#include + +IMPORT(_stat) +ENTRY(stat) + jmp _C_LABEL(_stat) -_stat: - jmp __stat diff --git a/lib/libc/syscall/statvfs.S b/lib/libc/syscall/statvfs.S index 9d14d71e3..8b698b936 100644 --- a/lib/libc/syscall/statvfs.S +++ b/lib/libc/syscall/statvfs.S @@ -1,7 +1,6 @@ -.text -.extern __statvfs -.globl _statvfs -.balign 2 +#include + +IMPORT(_statvfs) +ENTRY(statvfs) + jmp _C_LABEL(_statvfs) -_statvfs: - jmp __statvfs diff --git a/lib/libc/syscall/stime.S b/lib/libc/syscall/stime.S index bf8b0fbed..24f4fb17b 100644 --- a/lib/libc/syscall/stime.S +++ b/lib/libc/syscall/stime.S @@ -1,7 +1,6 @@ -.text -.extern __stime -.globl _stime -.balign 2 +#include + +IMPORT(_stime) +ENTRY(stime) + jmp _C_LABEL(_stime) -_stime: - jmp __stime diff --git a/lib/libc/syscall/svrctl.S b/lib/libc/syscall/svrctl.S index 53914debe..d29a15505 100644 --- a/lib/libc/syscall/svrctl.S +++ b/lib/libc/syscall/svrctl.S @@ -1,7 +1,6 @@ -.text -.extern __svrctl -.globl _svrctl -.balign 2 +#include + +IMPORT(_svrctl) +ENTRY(svrctl) + jmp _C_LABEL(_svrctl) -_svrctl: - jmp __svrctl diff --git a/lib/libc/syscall/symlink.S b/lib/libc/syscall/symlink.S index 4c16db2ba..4f4ce5d5e 100644 --- a/lib/libc/syscall/symlink.S +++ b/lib/libc/syscall/symlink.S @@ -1,7 +1,6 @@ -.text -.extern __symlink -.globl _symlink -.balign 2 +#include + +IMPORT(_symlink) +ENTRY(symlink) + jmp _C_LABEL(_symlink) -_symlink: - jmp __symlink diff --git a/lib/libc/syscall/sync.S b/lib/libc/syscall/sync.S index f29208a9d..d7035b3ff 100644 --- a/lib/libc/syscall/sync.S +++ b/lib/libc/syscall/sync.S @@ -1,7 +1,6 @@ -.text -.extern __sync -.globl _sync -.balign 2 +#include + +IMPORT(_sync) +ENTRY(sync) + jmp _C_LABEL(_sync) -_sync: - jmp __sync diff --git a/lib/libc/syscall/sysuname.S b/lib/libc/syscall/sysuname.S index 7add73abf..3cc758502 100644 --- a/lib/libc/syscall/sysuname.S +++ b/lib/libc/syscall/sysuname.S @@ -1,7 +1,6 @@ -.text -.extern __sysuname -.globl _sysuname -.balign 2 +#include + +IMPORT(_sysuname) +ENTRY(sysuname) + jmp _C_LABEL(_sysuname) -_sysuname: - jmp __sysuname diff --git a/lib/libc/syscall/tcdrain.S b/lib/libc/syscall/tcdrain.S index 50ab346b3..cd2250914 100644 --- a/lib/libc/syscall/tcdrain.S +++ b/lib/libc/syscall/tcdrain.S @@ -1,7 +1,6 @@ -.text -.extern __tcdrain -.globl _tcdrain -.balign 2 +#include + +IMPORT(_tcdrain) +ENTRY(tcdrain) + jmp _C_LABEL(_tcdrain) -_tcdrain: - jmp __tcdrain diff --git a/lib/libc/syscall/tcflow.S b/lib/libc/syscall/tcflow.S index 3304165cc..e488fcd61 100644 --- a/lib/libc/syscall/tcflow.S +++ b/lib/libc/syscall/tcflow.S @@ -1,7 +1,6 @@ -.text -.extern __tcflow -.globl _tcflow -.balign 2 +#include + +IMPORT(_tcflow) +ENTRY(tcflow) + jmp _C_LABEL(_tcflow) -_tcflow: - jmp __tcflow diff --git a/lib/libc/syscall/tcflush.S b/lib/libc/syscall/tcflush.S index a6f0b321a..d85fde0a8 100644 --- a/lib/libc/syscall/tcflush.S +++ b/lib/libc/syscall/tcflush.S @@ -1,7 +1,6 @@ -.text -.extern __tcflush -.globl _tcflush -.balign 2 +#include + +IMPORT(_tcflush) +ENTRY(tcflush) + jmp _C_LABEL(_tcflush) -_tcflush: - jmp __tcflush diff --git a/lib/libc/syscall/tcgetattr.S b/lib/libc/syscall/tcgetattr.S index 866c0ae04..a282100b3 100644 --- a/lib/libc/syscall/tcgetattr.S +++ b/lib/libc/syscall/tcgetattr.S @@ -1,7 +1,6 @@ -.text -.extern __tcgetattr -.globl _tcgetattr -.balign 2 +#include + +IMPORT(_tcgetattr) +ENTRY(tcgetattr) + jmp _C_LABEL(_tcgetattr) -_tcgetattr: - jmp __tcgetattr diff --git a/lib/libc/syscall/tcsendbreak.S b/lib/libc/syscall/tcsendbreak.S index 1d14e18ce..6e6d58590 100644 --- a/lib/libc/syscall/tcsendbreak.S +++ b/lib/libc/syscall/tcsendbreak.S @@ -1,7 +1,6 @@ -.text -.extern __tcsendbreak -.globl _tcsendbreak -.balign 2 +#include + +IMPORT(_tcsendbreak) +ENTRY(tcsendbreak) + jmp _C_LABEL(_tcsendbreak) -_tcsendbreak: - jmp __tcsendbreak diff --git a/lib/libc/syscall/tcsetattr.S b/lib/libc/syscall/tcsetattr.S index f1a8bde4d..d8b9a17ff 100644 --- a/lib/libc/syscall/tcsetattr.S +++ b/lib/libc/syscall/tcsetattr.S @@ -1,7 +1,6 @@ -.text -.extern __tcsetattr -.globl _tcsetattr -.balign 2 +#include + +IMPORT(_tcsetattr) +ENTRY(tcsetattr) + jmp _C_LABEL(_tcsetattr) -_tcsetattr: - jmp __tcsetattr diff --git a/lib/libc/syscall/time.S b/lib/libc/syscall/time.S index 0ba1389e4..1a557734a 100644 --- a/lib/libc/syscall/time.S +++ b/lib/libc/syscall/time.S @@ -1,7 +1,6 @@ -.text -.extern __time -.globl _time -.balign 2 +#include + +IMPORT(_time) +ENTRY(time) + jmp _C_LABEL(_time) -_time: - jmp __time diff --git a/lib/libc/syscall/times.S b/lib/libc/syscall/times.S index 5bf1e9b44..2bc0f8cc3 100644 --- a/lib/libc/syscall/times.S +++ b/lib/libc/syscall/times.S @@ -1,7 +1,6 @@ -.text -.extern __times -.globl _times -.balign 2 +#include + +IMPORT(_times) +ENTRY(times) + jmp _C_LABEL(_times) -_times: - jmp __times diff --git a/lib/libc/syscall/truncate.S b/lib/libc/syscall/truncate.S index 19ca7c115..84647d826 100644 --- a/lib/libc/syscall/truncate.S +++ b/lib/libc/syscall/truncate.S @@ -1,13 +1,10 @@ -.text -.extern __truncate -.extern __ftruncate -.globl _truncate -.globl _ftruncate -.balign 2 +#include -_truncate: - jmp __truncate +IMPORT(_truncate) +ENTRY(truncate) + jmp _C_LABEL(_truncate) + +IMPORT(_ftruncate) +ENTRY(ftruncate) + jmp _C_LABEL(_ftruncate) -.balign 2 -_ftruncate: - jmp __ftruncate diff --git a/lib/libc/syscall/umask.S b/lib/libc/syscall/umask.S index ea9440e81..b6e9129e7 100644 --- a/lib/libc/syscall/umask.S +++ b/lib/libc/syscall/umask.S @@ -1,7 +1,6 @@ -.text -.extern __umask -.globl _umask -.balign 2 +#include + +IMPORT(_umask) +ENTRY(umask) + jmp _C_LABEL(_umask) -_umask: - jmp __umask diff --git a/lib/libc/syscall/umount.S b/lib/libc/syscall/umount.S index 017507324..169e6c4fc 100644 --- a/lib/libc/syscall/umount.S +++ b/lib/libc/syscall/umount.S @@ -1,7 +1,6 @@ -.text -.extern __umount -.globl _umount -.balign 2 +#include + +IMPORT(_umount) +ENTRY(umount) + jmp _C_LABEL(_umount) -_umount: - jmp __umount diff --git a/lib/libc/syscall/uname.S b/lib/libc/syscall/uname.S index 90e5e1cd3..ddf7076f3 100644 --- a/lib/libc/syscall/uname.S +++ b/lib/libc/syscall/uname.S @@ -1,7 +1,6 @@ -.text -.extern __uname -.globl _uname -.balign 2 +#include + +IMPORT(_uname) +ENTRY(uname) + jmp _C_LABEL(_uname) -_uname: - jmp __uname diff --git a/lib/libc/syscall/unlink.S b/lib/libc/syscall/unlink.S index c2fd587ef..30dedc1e7 100644 --- a/lib/libc/syscall/unlink.S +++ b/lib/libc/syscall/unlink.S @@ -1,7 +1,6 @@ -.text -.extern __unlink -.globl _unlink -.balign 2 +#include + +IMPORT(_unlink) +ENTRY(unlink) + jmp _C_LABEL(_unlink) -_unlink: - jmp __unlink diff --git a/lib/libc/syscall/utime.S b/lib/libc/syscall/utime.S index caf8ac295..7ae24ab23 100644 --- a/lib/libc/syscall/utime.S +++ b/lib/libc/syscall/utime.S @@ -1,7 +1,6 @@ -.text -.extern __utime -.globl _utime -.balign 2 +#include + +IMPORT(_utime) +ENTRY(utime) + jmp _C_LABEL(_utime) -_utime: - jmp __utime diff --git a/lib/libc/syscall/vm_dmacalls.S b/lib/libc/syscall/vm_dmacalls.S index 9ba1aefcb..fa3635cb0 100644 --- a/lib/libc/syscall/vm_dmacalls.S +++ b/lib/libc/syscall/vm_dmacalls.S @@ -1,15 +1,14 @@ -.text -.extern __vm_adddma -.globl _vm_adddma -.extern __vm_deldma -.globl _vm_deldma -.extern __vm_getdma -.globl _vm_getdma -.balign 2 +#include + +IMPORT(_vm_adddma) +ENTRY(vm_adddma) + jmp _C_LABEL(_vm_adddma) + +IMPORT(_vm_deldma) +ENTRY(vm_deldma) + jmp _C_LABEL(_vm_deldma) + +IMPORT(_vm_getdma) +ENTRY(vm_getdma) + jmp _C_LABEL(_vm_getdma) -_vm_adddma: - jmp __vm_adddma -_vm_deldma: - jmp __vm_deldma -_vm_getdma: - jmp __vm_getdma diff --git a/lib/libc/syscall/vm_getphys.S b/lib/libc/syscall/vm_getphys.S index 1e0ae8955..ed6b2e0f2 100644 --- a/lib/libc/syscall/vm_getphys.S +++ b/lib/libc/syscall/vm_getphys.S @@ -1,7 +1,6 @@ -.text -.extern __vm_getphys -.globl _vm_getphys -.balign 2 +#include + +IMPORT(_vm_getphys) +ENTRY(vm_getphys) + jmp _C_LABEL(_vm_getphys) -_vm_getphys: - jmp __vm_getphys diff --git a/lib/libc/syscall/vm_getrefcount.S b/lib/libc/syscall/vm_getrefcount.S index e7cb9ef7c..80ae3398d 100644 --- a/lib/libc/syscall/vm_getrefcount.S +++ b/lib/libc/syscall/vm_getrefcount.S @@ -1,7 +1,6 @@ -.text -.extern __vm_getrefcount -.globl _vm_getrefcount -.balign 2 +#include + +IMPORT(_vm_getrefcount) +ENTRY(vm_getrefcount) + jmp _C_LABEL(_vm_getrefcount) -_vm_getrefcount: - jmp __vm_getrefcount diff --git a/lib/libc/syscall/vm_memctl.S b/lib/libc/syscall/vm_memctl.S index a56b213b9..7341a4478 100644 --- a/lib/libc/syscall/vm_memctl.S +++ b/lib/libc/syscall/vm_memctl.S @@ -1,7 +1,6 @@ -.text -.extern __vm_memctl -.globl _vm_memctl -.balign 2 +#include + +IMPORT(_vm_memctl) +ENTRY(vm_memctl) + jmp _C_LABEL(_vm_memctl) -_vm_memctl: - jmp __vm_memctl diff --git a/lib/libc/syscall/vm_query_exit.S b/lib/libc/syscall/vm_query_exit.S index e474211cf..c73c95c88 100644 --- a/lib/libc/syscall/vm_query_exit.S +++ b/lib/libc/syscall/vm_query_exit.S @@ -1,7 +1,6 @@ -.text -.extern __vm_query_exit -.globl _vm_query_exit -.balign 2 +#include + +IMPORT(_vm_query_exit) +ENTRY(vm_query_exit) + jmp _C_LABEL(_vm_query_exit) -_vm_query_exit: - jmp __vm_query_exit diff --git a/lib/libc/syscall/vm_remap.S b/lib/libc/syscall/vm_remap.S index c4c68f844..286e65635 100644 --- a/lib/libc/syscall/vm_remap.S +++ b/lib/libc/syscall/vm_remap.S @@ -1,7 +1,6 @@ -.text -.extern __vm_remap -.globl _vm_remap -.balign 2 +#include + +IMPORT(_vm_remap) +ENTRY(vm_remap) + jmp _C_LABEL(_vm_remap) -_vm_remap: - jmp __vm_remap diff --git a/lib/libc/syscall/vm_set_priv.S b/lib/libc/syscall/vm_set_priv.S index 7f865b8ff..9a502d4bc 100644 --- a/lib/libc/syscall/vm_set_priv.S +++ b/lib/libc/syscall/vm_set_priv.S @@ -1,7 +1,6 @@ -.text -.extern __vm_set_priv -.globl _vm_set_priv -.balign 2 +#include + +IMPORT(_vm_set_priv) +ENTRY(vm_set_priv) + jmp _C_LABEL(_vm_set_priv) -_vm_set_priv: - jmp __vm_set_priv diff --git a/lib/libc/syscall/vm_unmap.S b/lib/libc/syscall/vm_unmap.S index c6564c225..5660fea3d 100644 --- a/lib/libc/syscall/vm_unmap.S +++ b/lib/libc/syscall/vm_unmap.S @@ -1,7 +1,6 @@ -.text -.extern __vm_unmap -.globl _vm_unmap -.balign 2 +#include + +IMPORT(_vm_unmap) +ENTRY(vm_unmap) + jmp _C_LABEL(_vm_unmap) -_vm_unmap: - jmp __vm_unmap diff --git a/lib/libc/syscall/vm_update.S b/lib/libc/syscall/vm_update.S index 3f8c7149c..c4f0eb2c3 100644 --- a/lib/libc/syscall/vm_update.S +++ b/lib/libc/syscall/vm_update.S @@ -1,7 +1,6 @@ -.text -.extern __vm_update -.globl _vm_update -.balign 2 +#include + +IMPORT(_vm_update) +ENTRY(vm_update) + jmp _C_LABEL(_vm_update) -_vm_update: - jmp __vm_update diff --git a/lib/libc/syscall/wait.S b/lib/libc/syscall/wait.S index 80b8f2c97..bb0d6f2e8 100644 --- a/lib/libc/syscall/wait.S +++ b/lib/libc/syscall/wait.S @@ -1,7 +1,6 @@ -.text -.extern __wait -.globl _wait -.balign 2 +#include + +IMPORT(_wait) +ENTRY(wait) + jmp _C_LABEL(_wait) -_wait: - jmp __wait diff --git a/lib/libc/syscall/waitpid.S b/lib/libc/syscall/waitpid.S index 2efa266a7..c9ffc8bb6 100644 --- a/lib/libc/syscall/waitpid.S +++ b/lib/libc/syscall/waitpid.S @@ -1,7 +1,6 @@ -.text -.extern __waitpid -.globl _waitpid -.balign 2 +#include + +IMPORT(_waitpid) +ENTRY(waitpid) + jmp _C_LABEL(_waitpid) -_waitpid: - jmp __waitpid diff --git a/lib/libc/syscall/write.S b/lib/libc/syscall/write.S index efb646377..712d4b6e7 100644 --- a/lib/libc/syscall/write.S +++ b/lib/libc/syscall/write.S @@ -1,7 +1,6 @@ -.text -.extern __write -.globl _write -.balign 2 +#include + +IMPORT(_write) +ENTRY(write) + jmp _C_LABEL(_write) -_write: - jmp __write diff --git a/lib/libhgfs/backdoor.S b/lib/libhgfs/backdoor.S index e33ae487c..e7e51e646 100644 --- a/lib/libhgfs/backdoor.S +++ b/lib/libhgfs/backdoor.S @@ -1,8 +1,5 @@ /* Part of libhgfs - (c) 2009, D.C. van Moolenbroek */ - -.globl ___libhgfs_backdoor -.globl ___libhgfs_backdoor_in -.globl ___libhgfs_backdoor_out +#include .text @@ -10,8 +7,7 @@ BD_PORT = 0x5658 IO_PORT = 0x5659 -.balign 16 -___libhgfs_backdoor: +ENTRY(__libhgfs_backdoor) pushl %ebx pushl %esi pushl %edi @@ -37,8 +33,7 @@ ___libhgfs_backdoor: popl %ebx ret -.balign 16 -___libhgfs_backdoor_in: +ENTRY(__libhgfs_backdoor_in) pushl %ebx pushl %esi pushl %edi @@ -71,8 +66,7 @@ ___libhgfs_backdoor_in: popl %ebx ret -.balign 16 -___libhgfs_backdoor_out: +ENTRY(__libhgfs_backdoor_out) pushl %ebx pushl %esi pushl %edi diff --git a/lib/libsys/read_tsc.S b/lib/libsys/read_tsc.S index 143d30d64..81ab97d2a 100644 --- a/lib/libsys/read_tsc.S +++ b/lib/libsys/read_tsc.S @@ -1,14 +1,11 @@ /* */ /* sections */ +#include - -.globl _read_tsc /* read the cycle counter (Pentium and up) */ -.text /**===========================================================================* */ /* PUBLIC void read_tsc(unsigned long *high, unsigned long *low); */ /* Read the cycle counter of the CPU. Pentium and up. */ -.balign 16 -_read_tsc: +ENTRY(read_tsc) push %edx push %eax .byte 0x0f /* this is the RDTSC instruction */ @@ -26,8 +23,7 @@ _read_tsc: /**===========================================================================* */ /* PUBLIC void read_host_time_ns(unsigned long *high, unsigned long *low); */ /* access real time in ns from host in vmware. */ -.balign 16 -_read_host_time_ns: +ENTRY(read_host_time_ns) pushl %edx pushl %eax pushl %ecx diff --git a/servers/vm/arch/i386/util.S b/servers/vm/arch/i386/util.S index fd65e26a4..eb8c6a38d 100644 --- a/servers/vm/arch/i386/util.S +++ b/servers/vm/arch/i386/util.S @@ -1,13 +1,11 @@ -.globl _i386_invlpg - -.text +#include /**===========================================================================* */ /** i386_invlpg * */ /**===========================================================================* */ /* PUBLIC void i386_invlpg(u32_t addr) */ /* Tell the processor to invalidate a tlb entry at virtual address addr. */ -_i386_invlpg: +ENTRY(i386_invlpg) push %ebp mov %esp, %ebp push %eax diff --git a/test/test57loop.S b/test/test57loop.S index 1065ff67c..cd1a55c90 100644 --- a/test/test57loop.S +++ b/test/test57loop.S @@ -1,8 +1,8 @@ +#include -.globl _check_context_loop -.globl _remaining_invocations -.globl _origstate -.globl _newstate +IMPORT(remaining_invocations) +IMPORT(origstate) +IMPORT(newstate) #define JUNK 0xCC0FFEE0 @@ -16,9 +16,8 @@ COPY(dest, 0); COPY(dest, 1); COPY(dest, 2); COPY(dest, 3); \ COPY(dest, 4); COPY(dest, 5); COPY(dest, 6); COPY(dest, 7); -.text /* void check_context_loop() */ -_check_context_loop: +ENTRY(check_context_loop) /* Save original context so we can restore it. */ pusha @@ -40,7 +39,7 @@ _check_context_loop: pusha cont: /* Check if we're done. */ - cmpl $0, (_remaining_invocations) + cmpl $0, (_C_LABEL(remaining_invocations)) jz done /* We're not done. */ @@ -53,11 +52,11 @@ done: * so we can copy it. */ pusha - COPYA(_newstate); + COPYA(_C_LABEL(newstate)); popa /* copy and restore junked state */ - COPYA(_origstate); + COPYA(_C_LABEL(origstate)); popa /* restore original state and return */