summaryrefslogtreecommitdiffstats
path: root/arch/mips/sgi
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-04-05 11:23:36 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-04-05 11:23:36 +0000
commit4318fbda2a7ee51caafdc4eb1f8028a3f0605142 (patch)
treecddb50a81d7d1a628cc400519162080c6d87868e /arch/mips/sgi
parent36ea5120664550fae6d31f1c6f695e4f8975cb06 (diff)
o Merge with Linux 2.1.91.
o First round of bugfixes for the SC/MC CPUs. o FPU context switch fixes. o Lazy context switches. o Faster syscalls. o Removed dead code. o Shitloads of other things I forgot ...
Diffstat (limited to 'arch/mips/sgi')
-rw-r--r--arch/mips/sgi/kernel/indy_hpc.c7
-rw-r--r--arch/mips/sgi/kernel/indy_int.c8
-rw-r--r--arch/mips/sgi/kernel/indy_mc.c7
-rw-r--r--arch/mips/sgi/kernel/indy_sc.c8
-rw-r--r--arch/mips/sgi/kernel/indy_timer.c9
-rw-r--r--arch/mips/sgi/kernel/setup.c9
-rw-r--r--arch/mips/sgi/kernel/system.c9
-rw-r--r--arch/mips/sgi/kernel/time.c5
-rw-r--r--arch/mips/sgi/prom/cmdline.c10
-rw-r--r--arch/mips/sgi/prom/console.c10
-rw-r--r--arch/mips/sgi/prom/env.c10
-rw-r--r--arch/mips/sgi/prom/file.c27
-rw-r--r--arch/mips/sgi/prom/init.c8
-rw-r--r--arch/mips/sgi/prom/memory.c16
-rw-r--r--arch/mips/sgi/prom/misc.c5
-rw-r--r--arch/mips/sgi/prom/printf.c9
-rw-r--r--arch/mips/sgi/prom/salone.c13
-rw-r--r--arch/mips/sgi/prom/tags.c8
-rw-r--r--arch/mips/sgi/prom/time.c10
-rw-r--r--arch/mips/sgi/prom/tree.c26
20 files changed, 122 insertions, 92 deletions
diff --git a/arch/mips/sgi/kernel/indy_hpc.c b/arch/mips/sgi/kernel/indy_hpc.c
index 92d0ba669..eb00fe55c 100644
--- a/arch/mips/sgi/kernel/indy_hpc.c
+++ b/arch/mips/sgi/kernel/indy_hpc.c
@@ -1,8 +1,11 @@
-/* $Id: indy_hpc.c,v 1.4 1996/06/29 07:06:50 dm Exp $
+/*
* indy_hpc.c: Routines for generic manipulation of the HPC controllers.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: indy_hpc.c,v 1.2 1998/03/27 08:53:43 ralf Exp $
*/
+#include <linux/init.h>
#include <asm/addrspace.h>
#include <asm/ptrace.h>
@@ -38,7 +41,7 @@ void sgihpc_write2_modify(int set, int clear)
hpc3mregs->write2 = write2;
}
-void sgihpc_init(void)
+__initfunc(void sgihpc_init(void))
{
unsigned long sid, crev, brev;
diff --git a/arch/mips/sgi/kernel/indy_int.c b/arch/mips/sgi/kernel/indy_int.c
index 0726ee179..950744328 100644
--- a/arch/mips/sgi/kernel/indy_int.c
+++ b/arch/mips/sgi/kernel/indy_int.c
@@ -4,10 +4,10 @@
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
*
- * $Id: indy_int.c,v 1.5 1997/12/01 17:57:38 ralf Exp $
+ * $Id: indy_int.c,v 1.6 1998/03/17 22:07:41 ralf Exp $
*/
#include <linux/config.h>
-
+#include <linux/init.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
@@ -417,7 +417,7 @@ void free_irq(unsigned int irq, void *dev_id)
printk("Trying to free free IRQ%d\n",irq);
}
-void init_IRQ(void)
+__initfunc(void init_IRQ(void))
{
irq_setup();
}
@@ -495,7 +495,7 @@ int probe_irq_off (unsigned long irqs)
return 0;
}
-void sgint_init(void)
+__initfunc(void sgint_init(void))
{
int i;
#ifdef CONFIG_REMOTE_DEBUG
diff --git a/arch/mips/sgi/kernel/indy_mc.c b/arch/mips/sgi/kernel/indy_mc.c
index 449bb5b41..c34cc48f2 100644
--- a/arch/mips/sgi/kernel/indy_mc.c
+++ b/arch/mips/sgi/kernel/indy_mc.c
@@ -1,8 +1,11 @@
-/* $Id: indy_mc.c,v 1.5 1996/06/29 07:06:51 dm Exp $
+/*
* indy_mc.c: Routines for manipulating the INDY memory controller.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: indy_mc.c,v 1.2 1998/03/27 08:53:44 ralf Exp $
*/
+#include <linux/init.h>
#include <asm/addrspace.h>
#include <asm/ptrace.h>
@@ -43,7 +46,7 @@ static inline char *mconfig_string(unsigned long val)
};
}
-void sgimc_init(void)
+__initfunc(void sgimc_init(void))
{
unsigned long tmpreg;
diff --git a/arch/mips/sgi/kernel/indy_sc.c b/arch/mips/sgi/kernel/indy_sc.c
index 3cee74968..b7466339a 100644
--- a/arch/mips/sgi/kernel/indy_sc.c
+++ b/arch/mips/sgi/kernel/indy_sc.c
@@ -4,10 +4,10 @@
* Copyright (C) 1997 Ralf Baechle (ralf@gnu.org),
* derived from r4xx0.c by David S. Miller (dm@engr.sgi.com).
*
- * $Id: indy_sc.c,v 1.5 1998/03/26 07:33:13 ralf Exp $
+ * $Id: indy_sc.c,v 1.2 1998/03/27 04:47:57 ralf Exp $
*/
#include <linux/config.h>
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/mm.h>
@@ -161,7 +161,7 @@ static void indy_sc_disable(void)
" : "=r" (tmp1), "=r" (tmp2), "=r" (tmp3));
}
-static inline int indy_sc_probe(void)
+__initfunc(static inline int indy_sc_probe(void))
{
volatile unsigned int *cpu_control;
unsigned short cmd = 0xc220;
@@ -257,7 +257,7 @@ struct bcache_ops indy_sc_ops = {
indy_sc_wback_invalidate
};
-void indy_sc_init(void)
+__initfunc(void indy_sc_init(void))
{
if (indy_sc_probe()) {
indy_sc_enable();
diff --git a/arch/mips/sgi/kernel/indy_timer.c b/arch/mips/sgi/kernel/indy_timer.c
index 7d9e041f3..a1270e7f3 100644
--- a/arch/mips/sgi/kernel/indy_timer.c
+++ b/arch/mips/sgi/kernel/indy_timer.c
@@ -3,10 +3,10 @@
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
*
- * $Id: indy_timer.c,v 1.6 1998/03/17 22:07:41 ralf Exp $
+ * $Id: indy_timer.c,v 1.7 1998/03/22 23:27:17 ralf Exp $
*/
-
#include <linux/errno.h>
+#include <linux/init.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/param.h>
@@ -195,7 +195,7 @@ static inline unsigned long mktime(unsigned int year, unsigned int mon,
)*60 + sec; /* finally seconds */
}
-unsigned long get_indy_time(void)
+__initfunc(static unsigned long get_indy_time(void))
{
struct indy_clock *clock = INDY_CLOCK_REGS;
unsigned int year, mon, day, hour, min, sec;
@@ -240,7 +240,7 @@ unsigned long get_indy_time(void)
#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
-void indy_timer_init(void)
+__initfunc(void indy_timer_init(void))
{
struct sgi_ioc_timers *p;
volatile unsigned char *tcwp, *tc2p;
@@ -307,4 +307,3 @@ void do_settimeofday(struct timeval *tv)
time_esterror = MAXPHASE;
sti();
}
-
diff --git a/arch/mips/sgi/kernel/setup.c b/arch/mips/sgi/kernel/setup.c
index c8c8afc89..6b2c1846e 100644
--- a/arch/mips/sgi/kernel/setup.c
+++ b/arch/mips/sgi/kernel/setup.c
@@ -3,8 +3,9 @@
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
*
- * $Id: setup.c,v 1.6 1997/12/01 17:57:38 ralf Exp $
+ * $Id: setup.c,v 1.7 1998/03/04 08:47:27 ralf Exp $
*/
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/sched.h>
@@ -50,7 +51,7 @@ static unsigned char sgi_read_status(void)
return sgi_kh->command;
}
-static void sgi_keyboard_setup(void)
+__initfunc(static void sgi_keyboard_setup(void))
{
kbd_read_input = sgi_read_input;
kbd_write_output = sgi_write_output;
@@ -58,12 +59,12 @@ static void sgi_keyboard_setup(void)
kbd_read_status = sgi_read_status;
}
-static void sgi_irq_setup(void)
+__initfunc(static void sgi_irq_setup(void))
{
sgint_init();
}
-void sgi_setup(void)
+__initfunc(void sgi_setup(void))
{
char *ctype;
diff --git a/arch/mips/sgi/kernel/system.c b/arch/mips/sgi/kernel/system.c
index affb009f2..f27d2ce05 100644
--- a/arch/mips/sgi/kernel/system.c
+++ b/arch/mips/sgi/kernel/system.c
@@ -3,8 +3,9 @@
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
*
- * $Id: system.c,v 1.3 1997/09/13 02:19:18 ralf Exp $
+ * $Id: system.c,v 1.4 1997/12/01 17:57:39 ralf Exp $
*/
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/string.h>
@@ -56,7 +57,7 @@ static struct smatch sgi_cputable[] = {
#define NUM_CPUS 9 /* for now */
-static enum sgi_mach string_to_mach(char *s)
+__initfunc(static enum sgi_mach string_to_mach(char *s))
{
int i;
@@ -71,7 +72,7 @@ static enum sgi_mach string_to_mach(char *s)
return (enum sgi_mach) 0;
}
-static int string_to_cpu(char *s)
+__initfunc(static int string_to_cpu(char *s))
{
int i;
@@ -90,7 +91,7 @@ static int string_to_cpu(char *s)
* We' call this early before loadmmu(). If we do the other way around
* the firmware will crash and burn.
*/
-void sgi_sysinit(void)
+__initfunc(void sgi_sysinit(void))
{
pcomponent *p, *toplev, *cpup = 0;
int cputype = -1;
diff --git a/arch/mips/sgi/kernel/time.c b/arch/mips/sgi/kernel/time.c
index 1f5137c27..7dc5a4d53 100644
--- a/arch/mips/sgi/kernel/time.c
+++ b/arch/mips/sgi/kernel/time.c
@@ -1,13 +1,14 @@
-/* $Id: time.c,v 1.1 1996/06/08 12:07:08 dm Exp $
+/* $Id: time.c,v 1.2 1998/03/27 08:53:45 ralf Exp $
* time.c: Generic SGI time_init() code, this will dispatch to the
* appropriate per-architecture time/counter init code.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
*/
+#include <linux/init.h>
extern void indy_timer_init(void);
-void time_init(void)
+__initfunc(void time_init(void))
{
/* XXX assume INDY for now XXX */
indy_timer_init();
diff --git a/arch/mips/sgi/prom/cmdline.c b/arch/mips/sgi/prom/cmdline.c
index 35b6b48ac..43f1c315c 100644
--- a/arch/mips/sgi/prom/cmdline.c
+++ b/arch/mips/sgi/prom/cmdline.c
@@ -1,9 +1,11 @@
-/* $Id: cmdline.c,v 1.1.1.1 1997/06/01 03:16:40 ralf Exp $
+/*
* cmdline.c: Kernel command line creation using ARCS argc/argv.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: cmdline.c,v 1.3 1998/03/27 08:53:46 ralf Exp $
*/
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/string.h>
@@ -14,7 +16,7 @@
extern char arcs_cmdline[CL_SIZE];
-char *prom_getcmdline(void)
+__initfunc(char *prom_getcmdline(void))
{
return &(arcs_cmdline[0]);
}
@@ -29,7 +31,7 @@ static char *ignored[] = {
};
#define NENTS(foo) ((sizeof((foo)) / (sizeof((foo[0])))))
-void prom_init_cmdline(void)
+__initfunc(void prom_init_cmdline(void))
{
char *cp;
int actr, i;
diff --git a/arch/mips/sgi/prom/console.c b/arch/mips/sgi/prom/console.c
index 3f4d69f45..bfbba24e4 100644
--- a/arch/mips/sgi/prom/console.c
+++ b/arch/mips/sgi/prom/console.c
@@ -1,12 +1,14 @@
-/* $Id: console.c,v 1.1 1996/06/04 00:57:05 dm Exp $
+/*
* console.c: SGI arcs console code.
*
* Copyright (C) 1996 David S. Miller (dm@sgi.com)
+ *
+ * $Id: console.c,v 1.2 1998/03/27 08:53:46 ralf Exp $
*/
-
+#include <linux/init.h>
#include <asm/sgialib.h>
-void prom_putchar(char c)
+__initfunc(void prom_putchar(char c))
{
long cnt;
char it = c;
@@ -14,7 +16,7 @@ void prom_putchar(char c)
romvec->write(1, &it, 1, &cnt);
}
-char prom_getchar(void)
+__initfunc(char prom_getchar(void))
{
long cnt;
char c;
diff --git a/arch/mips/sgi/prom/env.c b/arch/mips/sgi/prom/env.c
index 5aff47efd..c972c8400 100644
--- a/arch/mips/sgi/prom/env.c
+++ b/arch/mips/sgi/prom/env.c
@@ -1,20 +1,22 @@
-/* $Id: env.c,v 1.2 1996/06/08 04:48:41 dm Exp $
+/*
* env.c: ARCS environment variable routines.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: env.c,v 1.2 1998/03/27 08:53:46 ralf Exp $
*/
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/string.h>
#include <asm/sgialib.h>
-char *prom_getenv(char *name)
+__initfunc(char *prom_getenv(char *name))
{
return romvec->get_evar(name);
}
-long prom_setenv(char *name, char *value)
+__initfunc(long prom_setenv(char *name, char *value))
{
return romvec->set_evar(name, value);
}
diff --git a/arch/mips/sgi/prom/file.c b/arch/mips/sgi/prom/file.c
index b62d33dda..b8911d595 100644
--- a/arch/mips/sgi/prom/file.c
+++ b/arch/mips/sgi/prom/file.c
@@ -1,58 +1,59 @@
-/* $Id: file.c,v 1.1 1996/06/08 04:47:22 dm Exp $
+/*
* file.c: ARCS firmware interface to files.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: file.c,v 1.2 1998/03/27 08:53:47 ralf Exp $
*/
-
+#include <linux/init.h>
#include <asm/sgialib.h>
-long prom_getvdirent(unsigned long fd, struct linux_vdirent *ent, unsigned long num,
- unsigned long *cnt)
+__initfunc(long prom_getvdirent(unsigned long fd, struct linux_vdirent *ent, unsigned long num, unsigned long *cnt))
{
return romvec->get_vdirent(fd, ent, num, cnt);
}
-long prom_open(char *name, enum linux_omode md, unsigned long *fd)
+__initfunc(long prom_open(char *name, enum linux_omode md, unsigned long *fd))
{
return romvec->open(name, md, fd);
}
-long prom_close(unsigned long fd)
+__initfunc(long prom_close(unsigned long fd))
{
return romvec->close(fd);
}
-long prom_read(unsigned long fd, void *buf, unsigned long num, unsigned long *cnt)
+__initfunc(long prom_read(unsigned long fd, void *buf, unsigned long num, unsigned long *cnt))
{
return romvec->read(fd, buf, num, cnt);
}
-long prom_getrstatus(unsigned long fd)
+__initfunc(long prom_getrstatus(unsigned long fd))
{
return romvec->get_rstatus(fd);
}
-long prom_write(unsigned long fd, void *buf, unsigned long num, unsigned long *cnt)
+__initfunc(long prom_write(unsigned long fd, void *buf, unsigned long num, unsigned long *cnt))
{
return romvec->write(fd, buf, num, cnt);
}
-long prom_seek(unsigned long fd, struct linux_bigint *off, enum linux_seekmode sm)
+__initfunc(long prom_seek(unsigned long fd, struct linux_bigint *off, enum linux_seekmode sm))
{
return romvec->seek(fd, off, sm);
}
-long prom_mount(char *name, enum linux_mountops op)
+__initfunc(long prom_mount(char *name, enum linux_mountops op))
{
return romvec->mount(name, op);
}
-long prom_getfinfo(unsigned long fd, struct linux_finfo *buf)
+__initfunc(long prom_getfinfo(unsigned long fd, struct linux_finfo *buf))
{
return romvec->get_finfo(fd, buf);
}
-long prom_setfinfo(unsigned long fd, unsigned long flags, unsigned long msk)
+__initfunc(long prom_setfinfo(unsigned long fd, unsigned long flags, unsigned long msk))
{
return romvec->set_finfo(fd, flags, msk);
}
diff --git a/arch/mips/sgi/prom/init.c b/arch/mips/sgi/prom/init.c
index 6b6167efd..c18d5deb2 100644
--- a/arch/mips/sgi/prom/init.c
+++ b/arch/mips/sgi/prom/init.c
@@ -1,9 +1,11 @@
-/* $Id: init.c,v 1.6 1996/06/10 16:38:33 dm Exp $
+/*
* init.c: PROM library initialisation code.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: init.c,v 1.2 1998/03/27 08:53:47 ralf Exp $
*/
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <asm/sgialib.h>
@@ -19,7 +21,7 @@ unsigned short prom_vers, prom_rev;
extern void prom_testtree(void);
-int prom_init(int argc, char **argv, char **envp)
+__initfunc(int prom_init(int argc, char **argv, char **envp))
{
struct linux_promblock *pb;
diff --git a/arch/mips/sgi/prom/memory.c b/arch/mips/sgi/prom/memory.c
index cb392a805..b6a212f87 100644
--- a/arch/mips/sgi/prom/memory.c
+++ b/arch/mips/sgi/prom/memory.c
@@ -1,10 +1,12 @@
-/* $Id: memory.c,v 1.5 1996/06/10 16:38:33 dm Exp $
+/*
* memory.c: PROM library functions for acquiring/using memory descriptors
* given to us from the ARCS firmware.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: memory.c,v 1.2 1998/03/27 08:53:47 ralf Exp $
*/
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/sched.h>
@@ -18,7 +20,7 @@
/* #define DEBUG */
-struct linux_mdesc *prom_getmdesc(struct linux_mdesc *curr)
+__initfunc(struct linux_mdesc *prom_getmdesc(struct linux_mdesc *curr))
{
return romvec->get_mdesc(curr);
}
@@ -38,12 +40,12 @@ static char *mtypes[8] = {
static struct prom_pmemblock prom_pblocks[PROM_MAX_PMEMBLOCKS];
-struct prom_pmemblock *prom_getpblock_array(void)
+__initfunc(struct prom_pmemblock *prom_getpblock_array(void))
{
return &prom_pblocks[0];
}
-static void prom_setup_memupper(void)
+__initfunc(static void prom_setup_memupper(void))
{
struct prom_pmemblock *p, *highest;
@@ -60,7 +62,7 @@ static void prom_setup_memupper(void)
#endif
}
-void prom_meminit(void)
+__initfunc(void prom_meminit(void))
{
struct linux_mdesc *p;
int totram;
@@ -104,7 +106,7 @@ void prom_meminit(void)
}
/* Called from mem_init() to fixup the mem_map page settings. */
-void prom_fixup_mem_map(unsigned long start, unsigned long end)
+__initfunc(void prom_fixup_mem_map(unsigned long start, unsigned long end))
{
struct prom_pmemblock *p;
int i, nents;
diff --git a/arch/mips/sgi/prom/misc.c b/arch/mips/sgi/prom/misc.c
index b6ccd60c1..8d7c300c7 100644
--- a/arch/mips/sgi/prom/misc.c
+++ b/arch/mips/sgi/prom/misc.c
@@ -2,8 +2,11 @@
* misc.c: Miscellaneous ARCS PROM routines.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: misc.c,v 1.5 1998/03/27 08:53:47 ralf Exp $
*/
#include <linux/config.h>
+#include <linux/init.h>
#include <linux/kernel.h>
#include <asm/bcache.h>
@@ -82,7 +85,7 @@ struct linux_sysid *prom_getsysid(void)
return romvec->get_sysid();
}
-void prom_cacheflush(void)
+__initfunc(void prom_cacheflush(void))
{
romvec->cache_flush();
}
diff --git a/arch/mips/sgi/prom/printf.c b/arch/mips/sgi/prom/printf.c
index 02e7e4734..dbc0c8dc1 100644
--- a/arch/mips/sgi/prom/printf.c
+++ b/arch/mips/sgi/prom/printf.c
@@ -1,18 +1,19 @@
-/* $Id: printf.c,v 1.1 1996/06/04 00:57:06 dm Exp $
+/*
* printf.c: Putting things on the screen using SGI arcs
* PROM facilities.
*
* Copyright (C) 1996 David S. Miller (dm@sgi.com)
+ *
+ * $Id: printf.c,v 1.2 1998/03/27 08:53:48 ralf Exp $
*/
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <asm/sgialib.h>
static char ppbuf[1024];
-void
-prom_printf(char *fmt, ...)
+__initfunc(void prom_printf(char *fmt, ...))
{
va_list args;
char ch, *bptr;
diff --git a/arch/mips/sgi/prom/salone.c b/arch/mips/sgi/prom/salone.c
index 4f120af3a..f363aedeb 100644
--- a/arch/mips/sgi/prom/salone.c
+++ b/arch/mips/sgi/prom/salone.c
@@ -1,24 +1,25 @@
-/* $Id: salone.c,v 1.1 1996/06/08 04:47:22 dm Exp $
+/*
* salone.c: Routines to load into memory and execute stand-along
* program images using ARCS PROM firmware.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: salone.c,v 1.2 1998/03/27 08:53:48 ralf Exp $
*/
-
+#include <linux/init.h>
#include <asm/sgialib.h>
-long prom_load(char *name, unsigned long end, unsigned long *pc, unsigned long *eaddr)
+__initfunc(long prom_load(char *name, unsigned long end, unsigned long *pc, unsigned long *eaddr))
{
return romvec->load(name, end, pc, eaddr);
}
-long prom_invoke(unsigned long pc, unsigned long sp, long argc,
- char **argv, char **envp)
+__initfunc(long prom_invoke(unsigned long pc, unsigned long sp, long argc, char **argv, char **envp))
{
return romvec->invoke(pc, sp, argc, argv, envp);
}
-long prom_exec(char *name, long argc, char **argv, char **envp)
+__initfunc(long prom_exec(char *name, long argc, char **argv, char **envp))
{
return romvec->exec(name, argc, argv, envp);
}
diff --git a/arch/mips/sgi/prom/tags.c b/arch/mips/sgi/prom/tags.c
index d408822d0..1de56376d 100644
--- a/arch/mips/sgi/prom/tags.c
+++ b/arch/mips/sgi/prom/tags.c
@@ -1,10 +1,12 @@
-/* $Id: tags.c,v 1.5 1996/06/24 07:12:22 dm Exp $
+/*
* tags.c: Initialize the arch tags the way the MIPS kernel setup
* expects.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: tags.c,v 1.2 1998/03/27 08:53:48 ralf Exp $
*/
-
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/string.h>
@@ -43,7 +45,7 @@ tag_def taglist_sgi_indy[] = {
/* XXX COLOSTOMY BAG!!!! XXX */
};
-void prom_setup_archtags(void)
+__initfunc(void prom_setup_archtags(void))
{
tag_def *tdp = &taglist_sgi_indy[0];
tag *tp;
diff --git a/arch/mips/sgi/prom/time.c b/arch/mips/sgi/prom/time.c
index 9a836b810..616e253bf 100644
--- a/arch/mips/sgi/prom/time.c
+++ b/arch/mips/sgi/prom/time.c
@@ -1,17 +1,19 @@
-/* $Id: time.c,v 1.1 1996/06/08 04:47:23 dm Exp $
+/*
* time.c: Extracting time information from ARCS prom.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: time.c,v 1.2 1998/03/27 08:53:49 ralf Exp $
*/
-
+#include <linux/init.h>
#include <asm/sgialib.h>
-struct linux_tinfo *prom_gettinfo(void)
+__initfunc(struct linux_tinfo *prom_gettinfo(void))
{
return romvec->get_tinfo();
}
-unsigned long prom_getrtime(void)
+__initfunc(unsigned long prom_getrtime(void))
{
return romvec->get_rtime();
}
diff --git a/arch/mips/sgi/prom/tree.c b/arch/mips/sgi/prom/tree.c
index 1cefd4964..414e1dacd 100644
--- a/arch/mips/sgi/prom/tree.c
+++ b/arch/mips/sgi/prom/tree.c
@@ -1,48 +1,50 @@
-/* $Id: tree.c,v 1.4 1996/06/08 04:48:41 dm Exp $
+/*
* tree.c: PROM component device tree code.
*
* Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
+ *
+ * $Id: tree.c,v 1.2 1998/03/27 08:53:49 ralf Exp $
*/
-
+#include <linux/init.h>
#include <asm/sgialib.h>
#define DEBUG_PROM_TREE
-pcomponent *prom_getsibling(pcomponent *this)
+__initfunc(pcomponent *prom_getsibling(pcomponent *this))
{
if(this == PROM_NULL_COMPONENT)
return PROM_NULL_COMPONENT;
return romvec->next_component(this);
}
-pcomponent *prom_getchild(pcomponent *this)
+__initfunc(pcomponent *prom_getchild(pcomponent *this))
{
return romvec->child_component(this);
}
-pcomponent *prom_getparent(pcomponent *child)
+__initfunc(pcomponent *prom_getparent(pcomponent *child))
{
if(child == PROM_NULL_COMPONENT)
return PROM_NULL_COMPONENT;
return romvec->parent_component(child);
}
-long prom_getcdata(void *buffer, pcomponent *this)
+__initfunc(long prom_getcdata(void *buffer, pcomponent *this))
{
return romvec->component_data(buffer, this);
}
-pcomponent *prom_childadd(pcomponent *this, pcomponent *tmp, void *data)
+__initfunc(pcomponent *prom_childadd(pcomponent *this, pcomponent *tmp, void *data))
{
return romvec->child_add(this, tmp, data);
}
-long prom_delcomponent(pcomponent *this)
+__initfunc(long prom_delcomponent(pcomponent *this))
{
return romvec->comp_del(this);
}
-pcomponent *prom_componentbypath(char *path)
+__initfunc(pcomponent *prom_componentbypath(char *path))
{
return romvec->component_by_path(path);
}
@@ -72,7 +74,7 @@ static char *iflags[] = {
"input", "output"
};
-static void dump_component(pcomponent *p)
+__initfunc(static void dump_component(pcomponent *p))
{
prom_printf("[%p]:class<%s>type<%s>flags<%s>ver<%d>rev<%d>",
p, classes[p->class], types[p->type],
@@ -81,7 +83,7 @@ static void dump_component(pcomponent *p)
p->key, p->amask, (int)p->cdsize, (int)p->ilen, p->iname);
}
-static void traverse(pcomponent *p, int op)
+__initfunc(static void traverse(pcomponent *p, int op))
{
dump_component(p);
if(prom_getchild(p))
@@ -90,7 +92,7 @@ static void traverse(pcomponent *p, int op)
traverse(prom_getsibling(p), 1);
}
-void prom_testtree(void)
+__initfunc(void prom_testtree(void))
{
pcomponent *p;