summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/dev/arch/i386/kernel/irq.c13
-rw-r--r--linux/dev/drivers/block/floppy.c5
-rw-r--r--linux/dev/drivers/block/genhd.c3
-rw-r--r--linux/dev/glue/block.c10
-rw-r--r--linux/dev/glue/glue.h44
-rw-r--r--linux/dev/glue/kmem.c4
-rw-r--r--linux/dev/glue/misc.c6
-rw-r--r--linux/dev/glue/net.c6
-rw-r--r--linux/dev/init/main.c26
-rw-r--r--linux/dev/kernel/sched.c13
-rw-r--r--linux/dev/kernel/softirq.c2
-rw-r--r--linux/src/drivers/block/floppy.c4
-rw-r--r--linux/src/init/main.c3
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);