diff options
Diffstat (limited to 'linux')
-rw-r--r-- | linux/dev/arch/i386/kernel/irq.c | 13 | ||||
-rw-r--r-- | linux/dev/drivers/block/floppy.c | 5 | ||||
-rw-r--r-- | linux/dev/drivers/block/genhd.c | 3 | ||||
-rw-r--r-- | linux/dev/glue/block.c | 10 | ||||
-rw-r--r-- | linux/dev/glue/glue.h | 44 | ||||
-rw-r--r-- | linux/dev/glue/kmem.c | 4 | ||||
-rw-r--r-- | linux/dev/glue/misc.c | 6 | ||||
-rw-r--r-- | linux/dev/glue/net.c | 6 | ||||
-rw-r--r-- | linux/dev/init/main.c | 26 | ||||
-rw-r--r-- | linux/dev/kernel/sched.c | 13 | ||||
-rw-r--r-- | linux/dev/kernel/softirq.c | 2 | ||||
-rw-r--r-- | linux/src/drivers/block/floppy.c | 4 | ||||
-rw-r--r-- | linux/src/init/main.c | 3 |
13 files changed, 71 insertions, 68 deletions
diff --git a/linux/dev/arch/i386/kernel/irq.c b/linux/dev/arch/i386/kernel/irq.c index 7faaa62..d996c25 100644 --- a/linux/dev/arch/i386/kernel/irq.c +++ b/linux/dev/arch/i386/kernel/irq.c @@ -47,10 +47,8 @@ #include <asm/io.h> #include <asm/hardirq.h> -extern void linux_timer_intr (void); -extern spl_t splhigh (void); -extern spl_t spl0 (void); -extern void form_pic_mask (void); +#include <linux/dev/glue/glue.h> +#include <machine/machspl.h> #if 0 /* XXX: This is the way it's done in linux 2.2. GNU Mach currently uses intr_count. It should be made using local_{bh/irq}_count instead (through hardirq_enter/exit) for SMP support. */ @@ -95,12 +93,6 @@ static struct linux_action *irq_action[16] = NULL, NULL, NULL, NULL }; -extern spl_t curr_ipl; -extern int curr_pic_mask; -extern int pic_mask[]; - -extern void intnull (), prtnull (); - /* * Generic interrupt handler for Linux devices. * Set up a fake `struct pt_regs' then call the real handler. @@ -446,7 +438,6 @@ static void show(char * str) int i; unsigned long *stack; int cpu = smp_processor_id(); - extern char *get_options(char *str, int *ints); printk("\n%s, CPU %d:\n", str, cpu); printk("irq: %d [%d %d]\n", diff --git a/linux/dev/drivers/block/floppy.c b/linux/dev/drivers/block/floppy.c index d3fcd6a..d297e61 100644 --- a/linux/dev/drivers/block/floppy.c +++ b/linux/dev/drivers/block/floppy.c @@ -177,6 +177,8 @@ static inline int __get_order(unsigned long size); #include <linux/blk.h> #include <linux/cdrom.h> /* for the compatibility eject ioctl */ +#include <linux/dev/glue/glue.h> + #ifndef FLOPPY_MOTOR_MASK #define FLOPPY_MOTOR_MASK 0xf0 @@ -437,7 +439,6 @@ static int probing = 0; static volatile int command_status = FD_COMMAND_NONE, fdc_busy = 0; static struct wait_queue *fdc_wait = NULL, *command_done = NULL; #ifdef MACH -extern int issig (void); #define NO_SIGNAL (! issig () || ! interruptible) #else #define NO_SIGNAL (!(current->signal & ~current->blocked) || !interruptible) @@ -4172,8 +4173,6 @@ static void floppy_release_irq_and_dma(void) #ifdef MODULE -extern char *get_options(char *str, int *ints); - char *floppy=NULL; static void parse_floppy_cfg_string(char *cfg) diff --git a/linux/dev/drivers/block/genhd.c b/linux/dev/drivers/block/genhd.c index 68a27d5..84b3792 100644 --- a/linux/dev/drivers/block/genhd.c +++ b/linux/dev/drivers/block/genhd.c @@ -39,6 +39,7 @@ #ifdef MACH #include <machine/spl.h> +#include <linux/dev/glue/glue.h> #endif #define SYS_IND(p) get_unaligned(&p->sys_ind) @@ -770,8 +771,6 @@ void device_setup(void) struct gendisk *p; int nr=0; #ifdef MACH - extern int linux_intr_pri; - linux_intr_pri = SPL5; #endif diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c index f28644e..c995638 100644 --- a/linux/dev/glue/block.c +++ b/linux/dev/glue/block.c @@ -61,6 +61,7 @@ #include <device/disk_status.h> #include <device/device_reply.user.h> #include <device/device_emul.h> +#include <device/ds_routines.h> /* TODO. This should be fixed to not be i386 specific. */ #include <i386at/disk.h> @@ -78,9 +79,7 @@ #include <linux/hdreg.h> #include <asm/io.h> -extern int linux_auto_config; -extern int linux_intr_pri; -extern int linux_to_mach_error (int); +#include <linux/dev/glue/glue.h> /* This task queue is not used in Mach: just for fixing undefined symbols. */ DECLARE_TASK_QUEUE (tq_disk); @@ -193,9 +192,6 @@ int read_ahead[MAX_BLKDEV] = {0, }; This is unused in Mach. It is here to make drivers compile. */ struct wait_queue *wait_for_request = NULL; -/* Map for allocating device memory. */ -extern vm_map_t device_io_map; - /* Initialize block drivers. */ int blk_dev_init () @@ -276,8 +272,6 @@ unregister_blkdev (unsigned major, const char *name) void set_blocksize (kdev_t dev, int size) { - extern int *blksize_size[]; - if (! blksize_size[MAJOR (dev)]) return; diff --git a/linux/dev/glue/glue.h b/linux/dev/glue/glue.h new file mode 100644 index 0000000..5d4f6d8 --- /dev/null +++ b/linux/dev/glue/glue.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2011 Free Software Foundation + * + * This program is free software ; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation ; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY ; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the program ; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef LINUX_DEV_GLUE_GLUE_H +#define LINUX_DEV_GLUE_GLUE_H + +#include <vm/vm_types.h> +#include <mach/machine/vm_types.h> + +extern int linux_auto_config; +extern int linux_intr_pri; + +extern void *alloc_contig_mem (unsigned, unsigned, unsigned, vm_page_t *); +extern void free_contig_mem (vm_page_t); +extern void init_IRQ (void); +extern void restore_IRQ (void); +extern void linux_kmem_init (void); +extern void linux_net_emulation_init (void); +extern void device_setup (void); +extern void linux_timer_intr (void); +extern void linux_bad_intr (int); +extern void linux_sched_init (void); +extern void pcmcia_init (void); +extern void linux_soft_intr (void); +extern int issig (void); +extern int linux_to_mach_error (int); +extern char *get_options(char *str, int *ints); + +#endif /* LINUX_DEV_GLUE_GLUE_H */ diff --git a/linux/dev/glue/kmem.c b/linux/dev/glue/kmem.c index 8c21ce7..d1784a5 100644 --- a/linux/dev/glue/kmem.c +++ b/linux/dev/glue/kmem.c @@ -29,6 +29,7 @@ #include <kern/assert.h> #include <kern/kalloc.h> +#include <kern/printf.h> #include <vm/vm_page.h> #include <vm/vm_kern.h> @@ -40,8 +41,7 @@ #include <asm/system.h> -extern void *alloc_contig_mem (unsigned, unsigned, unsigned, vm_page_t *); -extern int printf (const char *, ...); +#include <linux/dev/glue/glue.h> /* Amount of memory to reserve for Linux memory allocator. We reserve 64K chunks to stay within DMA limits. diff --git a/linux/dev/glue/misc.c b/linux/dev/glue/misc.c index b467650..98c8248 100644 --- a/linux/dev/glue/misc.c +++ b/linux/dev/glue/misc.c @@ -53,6 +53,7 @@ #include <sys/types.h> #include <mach/vm_param.h> #include <kern/thread.h> +#include <kern/printf.h> #include <vm/vm_map.h> #include <vm/vm_page.h> #include <device/device_types.h> @@ -66,10 +67,7 @@ #include <linux/blk.h> #include <linux/proc_fs.h> #include <linux/kernel_stat.h> - -extern boolean_t vm_map_lookup_entry (register vm_map_t, register vm_offset_t, - vm_map_entry_t *); -extern int printf (const char *, ...); +#include <linux/dev/glue/glue.h> int (*dispatch_scsi_info_ptr) (int ino, char *buffer, char **start, off_t offset, int length, int inout) = 0; diff --git a/linux/dev/glue/net.c b/linux/dev/glue/net.c index acb31ae..91ebf96 100644 --- a/linux/dev/glue/net.c +++ b/linux/dev/glue/net.c @@ -69,6 +69,8 @@ #include <mach/vm_param.h> #include <mach/notify.h> +#include <kern/printf.h> + #include <ipc/ipc_port.h> #include <ipc/ipc_space.h> @@ -84,6 +86,7 @@ #include <device/net_io.h> #include <device/device_reply.user.h> #include <device/device_emul.h> +#include <device/ds_routines.h> #define MACH_INCLUDE #include <linux/kernel.h> @@ -97,7 +100,7 @@ #include <linux/etherdevice.h> #include <linux/wireless.h> -extern int linux_intr_pri; +#include <linux/dev/glue/glue.h> /* One of these is associated with each instance of a device. */ struct net_data @@ -248,7 +251,6 @@ void dev_kfree_skb (struct sk_buff *skb, int mode) { unsigned flags; - extern void *io_done_list; /* Queue sk_buff on done list if there is a page list attached or we need to send a reply. diff --git a/linux/dev/init/main.c b/linux/dev/init/main.c index 9ed35d3..3a88983 100644 --- a/linux/dev/init/main.c +++ b/linux/dev/init/main.c @@ -39,6 +39,7 @@ #include <machine/spl.h> #include <machine/pmap.h> #include <machine/vm_param.h> +#include <machine/model_dep.h> #define MACH_INCLUDE #include <linux/sched.h> @@ -47,6 +48,7 @@ #include <linux/delay.h> #include <linux/ioport.h> #include <linux/string.h> +#include <linux/dev/glue/glue.h> #include <asm/system.h> #include <asm/io.h> @@ -83,30 +85,6 @@ struct drive_info_struct */ static void calibrate_delay (void); -extern vm_offset_t phys_last_addr; - -extern void *alloc_contig_mem (unsigned, unsigned, unsigned, vm_page_t *); -extern void free_contig_mem (vm_page_t); -extern void init_IRQ (void); -extern void restore_IRQ (void); -extern void startrtclock (void); -extern void linux_version_init (void); -extern void linux_kmem_init (void); -extern unsigned long pci_init (unsigned long, unsigned long); -extern void linux_net_emulation_init (void); -extern void device_setup (void); -extern void linux_printk (char *,...); -extern int linux_timer_intr (void); -extern spl_t spl0 (void); -extern spl_t splhigh (void); -extern void form_pic_mask (void); -extern int linux_bad_intr (int); -extern int prtnull (); -extern int intnull (); -extern void linux_sched_init (void); -extern void pcmcia_init (void); - - /* * Amount of contiguous memory to allocate for initialization. */ diff --git a/linux/dev/kernel/sched.c b/linux/dev/kernel/sched.c index 7b5c5e4..0d2567f 100644 --- a/linux/dev/kernel/sched.c +++ b/linux/dev/kernel/sched.c @@ -34,6 +34,9 @@ #include <kern/thread.h> #include <kern/sched_prim.h> +#include <kern/printf.h> + +#include <machine/machspl.h> #define MACH_INCLUDE #include <linux/sched.h> @@ -41,21 +44,13 @@ #include <linux/fs.h> #include <linux/blkdev.h> #include <linux/interrupt.h> +#include <linux/dev/glue/glue.h> #include <asm/system.h> #include <asm/atomic.h> int securelevel = 0; -extern void *alloc_contig_mem (unsigned, unsigned, unsigned, vm_page_t *); -extern void free_contig_mem (vm_page_t); -extern spl_t splhigh (void); -extern spl_t splx (spl_t); -extern void linux_soft_intr (void); -extern int issig (void); -extern int printf (const char *, ...); -extern int linux_auto_config; - static void timer_bh (void); DECLARE_TASK_QUEUE (tq_timer); diff --git a/linux/dev/kernel/softirq.c b/linux/dev/kernel/softirq.c index 96102a7..65a0962 100644 --- a/linux/dev/kernel/softirq.c +++ b/linux/dev/kernel/softirq.c @@ -13,6 +13,8 @@ #include <linux/interrupt.h> #include <asm/system.h> +#include <linux/dev/glue/glue.h> + int bh_mask_count[32]; unsigned long bh_active = 0; unsigned long bh_mask = 0; diff --git a/linux/src/drivers/block/floppy.c b/linux/src/drivers/block/floppy.c index 0314a0b..1b96c44 100644 --- a/linux/src/drivers/block/floppy.c +++ b/linux/src/drivers/block/floppy.c @@ -177,6 +177,8 @@ static inline int __get_order(unsigned long size); #include <linux/blk.h> #include <linux/cdrom.h> /* for the compatibility eject ioctl */ +#include <linux/dev/glue/glue.h> + #ifndef FLOPPY_MOTOR_MASK #define FLOPPY_MOTOR_MASK 0xf0 @@ -4167,8 +4169,6 @@ static void floppy_release_irq_and_dma(void) #ifdef MODULE -extern char *get_options(char *str, int *ints); - char *floppy=NULL; static void parse_floppy_cfg_string(char *cfg) diff --git a/linux/src/init/main.c b/linux/src/init/main.c index d41ec60..1aa15b9 100644 --- a/linux/src/init/main.c +++ b/linux/src/init/main.c @@ -42,6 +42,8 @@ #include <asm/bugs.h> +#include <linux/dev/glue/glue.h> + /* * Versions of gcc older than that listed below may actually compile * and link okay, but the end product can have subtle run time bugs. @@ -64,7 +66,6 @@ extern int bdflush(void *); extern int kswapd(void *); extern void kswapd_setup(void); -extern void init_IRQ(void); extern void init_modules(void); extern long console_init(long, long); extern long kmalloc_init(long,long); |