Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40234401 authored by David Howells's avatar David Howells Committed by Linus Torvalds
Browse files

[PATCH] frv: implement and export various things required by modules



Export a number of features required to build all the modules.  It also
implements the following simple features:

 (*) csum_partial_copy_from_user() for MMU as well as no-MMU.

 (*) __ucmpdi2().

so that they can be exported too.

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8369ce4c
Loading
Loading
Loading
Loading
+18 −7
Original line number Original line Diff line number Diff line
@@ -16,10 +16,11 @@
#include <asm/semaphore.h>
#include <asm/semaphore.h>
#include <asm/checksum.h>
#include <asm/checksum.h>
#include <asm/hardirq.h>
#include <asm/hardirq.h>
#include <asm/current.h>
#include <asm/cacheflush.h>


extern void dump_thread(struct pt_regs *, struct user *);
extern void dump_thread(struct pt_regs *, struct user *);
extern long __memcpy_user(void *dst, const void *src, size_t count);
extern long __memcpy_user(void *dst, const void *src, size_t count);
extern long __memset_user(void *dst, const void *src, size_t count);


/* platform dependent support */
/* platform dependent support */


@@ -50,7 +51,11 @@ EXPORT_SYMBOL(disable_irq);
EXPORT_SYMBOL(__res_bus_clock_speed_HZ);
EXPORT_SYMBOL(__res_bus_clock_speed_HZ);
EXPORT_SYMBOL(__page_offset);
EXPORT_SYMBOL(__page_offset);
EXPORT_SYMBOL(__memcpy_user);
EXPORT_SYMBOL(__memcpy_user);
EXPORT_SYMBOL(flush_dcache_page);
EXPORT_SYMBOL(__memset_user);
EXPORT_SYMBOL(frv_dcache_writeback);
EXPORT_SYMBOL(frv_cache_invalidate);
EXPORT_SYMBOL(frv_icache_invalidate);
EXPORT_SYMBOL(frv_cache_wback_inv);


#ifndef CONFIG_MMU
#ifndef CONFIG_MMU
EXPORT_SYMBOL(memory_start);
EXPORT_SYMBOL(memory_start);
@@ -72,6 +77,9 @@ EXPORT_SYMBOL(memcmp);
EXPORT_SYMBOL(memscan);
EXPORT_SYMBOL(memscan);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(memmove);


EXPORT_SYMBOL(__outsl_ns);
EXPORT_SYMBOL(__insl_ns);

EXPORT_SYMBOL(get_wchan);
EXPORT_SYMBOL(get_wchan);


#ifdef CONFIG_FRV_OUTOFLINE_ATOMIC_OPS
#ifdef CONFIG_FRV_OUTOFLINE_ATOMIC_OPS
@@ -80,14 +88,13 @@ EXPORT_SYMBOL(atomic_test_and_OR_mask);
EXPORT_SYMBOL(atomic_test_and_XOR_mask);
EXPORT_SYMBOL(atomic_test_and_XOR_mask);
EXPORT_SYMBOL(atomic_add_return);
EXPORT_SYMBOL(atomic_add_return);
EXPORT_SYMBOL(atomic_sub_return);
EXPORT_SYMBOL(atomic_sub_return);
EXPORT_SYMBOL(__xchg_8);
EXPORT_SYMBOL(__xchg_16);
EXPORT_SYMBOL(__xchg_32);
EXPORT_SYMBOL(__xchg_32);
EXPORT_SYMBOL(__cmpxchg_8);
EXPORT_SYMBOL(__cmpxchg_16);
EXPORT_SYMBOL(__cmpxchg_32);
EXPORT_SYMBOL(__cmpxchg_32);
#endif
#endif


EXPORT_SYMBOL(__debug_bug_printk);
EXPORT_SYMBOL(__delay_loops_MHz);

/*
/*
 * libgcc functions - functions that are used internally by the
 * libgcc functions - functions that are used internally by the
 * compiler...  (prototypes are not correct though, but that
 * compiler...  (prototypes are not correct though, but that
@@ -101,6 +108,8 @@ extern void __divdi3(void);
extern void __lshrdi3(void);
extern void __lshrdi3(void);
extern void __moddi3(void);
extern void __moddi3(void);
extern void __muldi3(void);
extern void __muldi3(void);
extern void __mulll(void);
extern void __umulll(void);
extern void __negdi2(void);
extern void __negdi2(void);
extern void __ucmpdi2(void);
extern void __ucmpdi2(void);
extern void __udivdi3(void);
extern void __udivdi3(void);
@@ -116,8 +125,10 @@ EXPORT_SYMBOL(__ashrdi3);
EXPORT_SYMBOL(__lshrdi3);
EXPORT_SYMBOL(__lshrdi3);
//EXPORT_SYMBOL(__moddi3);
//EXPORT_SYMBOL(__moddi3);
EXPORT_SYMBOL(__muldi3);
EXPORT_SYMBOL(__muldi3);
EXPORT_SYMBOL(__mulll);
EXPORT_SYMBOL(__umulll);
EXPORT_SYMBOL(__negdi2);
EXPORT_SYMBOL(__negdi2);
//EXPORT_SYMBOL(__ucmpdi2);
EXPORT_SYMBOL(__ucmpdi2);
//EXPORT_SYMBOL(__udivdi3);
//EXPORT_SYMBOL(__udivdi3);
//EXPORT_SYMBOL(__udivmoddi4);
//EXPORT_SYMBOL(__udivmoddi4);
//EXPORT_SYMBOL(__umoddi3);
//EXPORT_SYMBOL(__umoddi3);
+17 −0
Original line number Original line Diff line number Diff line
@@ -32,6 +32,7 @@
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/proc_fs.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#include <linux/module.h>


#include <asm/atomic.h>
#include <asm/atomic.h>
#include <asm/io.h>
#include <asm/io.h>
@@ -178,6 +179,8 @@ void disable_irq_nosync(unsigned int irq)
	spin_unlock_irqrestore(&level->lock, flags);
	spin_unlock_irqrestore(&level->lock, flags);
}
}


EXPORT_SYMBOL(disable_irq_nosync);

/**
/**
 *	disable_irq - disable an irq and wait for completion
 *	disable_irq - disable an irq and wait for completion
 *	@irq: Interrupt to disable
 *	@irq: Interrupt to disable
@@ -204,6 +207,8 @@ void disable_irq(unsigned int irq)
#endif
#endif
}
}


EXPORT_SYMBOL(disable_irq);

/**
/**
 *	enable_irq - enable handling of an irq
 *	enable_irq - enable handling of an irq
 *	@irq: Interrupt to enable
 *	@irq: Interrupt to enable
@@ -268,6 +273,8 @@ void enable_irq(unsigned int irq)
	spin_unlock_irqrestore(&level->lock, flags);
	spin_unlock_irqrestore(&level->lock, flags);
}
}


EXPORT_SYMBOL(enable_irq);

/*****************************************************************************/
/*****************************************************************************/
/*
/*
 * handles all normal device IRQ's
 * handles all normal device IRQ's
@@ -425,6 +432,8 @@ int request_irq(unsigned int irq,
	return retval;
	return retval;
}
}


EXPORT_SYMBOL(request_irq);

/**
/**
 *	free_irq - free an interrupt
 *	free_irq - free an interrupt
 *	@irq: Interrupt line to free
 *	@irq: Interrupt line to free
@@ -496,6 +505,8 @@ void free_irq(unsigned int irq, void *dev_id)
	}
	}
}
}


EXPORT_SYMBOL(free_irq);

/*
/*
 * IRQ autodetection code..
 * IRQ autodetection code..
 *
 *
@@ -519,6 +530,8 @@ unsigned long probe_irq_on(void)
	return 0;
	return 0;
}
}


EXPORT_SYMBOL(probe_irq_on);

/*
/*
 * Return a mask of triggered interrupts (this
 * Return a mask of triggered interrupts (this
 * can handle only legacy ISA interrupts).
 * can handle only legacy ISA interrupts).
@@ -542,6 +555,8 @@ unsigned int probe_irq_mask(unsigned long xmask)
	return 0;
	return 0;
}
}


EXPORT_SYMBOL(probe_irq_mask);

/*
/*
 * Return the one interrupt that triggered (this can
 * Return the one interrupt that triggered (this can
 * handle any interrupt source).
 * handle any interrupt source).
@@ -571,6 +586,8 @@ int probe_irq_off(unsigned long xmask)
	return -1;
	return -1;
}
}


EXPORT_SYMBOL(probe_irq_off);

/* this was setup_x86_irq but it seems pretty generic */
/* this was setup_x86_irq but it seems pretty generic */
int setup_irq(unsigned int irq, struct irqaction *new)
int setup_irq(unsigned int irq, struct irqaction *new)
{
{
+2 −0
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@


#include <linux/config.h>
#include <linux/config.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/pm.h>
#include <linux/pm.h>
#include <linux/pm_legacy.h>
#include <linux/pm_legacy.h>
#include <linux/sched.h>
#include <linux/sched.h>
@@ -27,6 +28,7 @@
#include "local.h"
#include "local.h"


void (*pm_power_off)(void);
void (*pm_power_off)(void);
EXPORT_SYMBOL(pm_power_off);


extern void frv_change_cmode(int);
extern void frv_change_cmode(int);


+3 −0
Original line number Original line Diff line number Diff line
@@ -189,6 +189,8 @@ void do_gettimeofday(struct timeval *tv)
	tv->tv_usec = usec;
	tv->tv_usec = usec;
}
}


EXPORT_SYMBOL(do_gettimeofday);

int do_settimeofday(struct timespec *tv)
int do_settimeofday(struct timespec *tv)
{
{
	time_t wtm_sec, sec = tv->tv_sec;
	time_t wtm_sec, sec = tv->tv_sec;
@@ -218,6 +220,7 @@ int do_settimeofday(struct timespec *tv)
	clock_was_set();
	clock_was_set();
	return 0;
	return 0;
}
}

EXPORT_SYMBOL(do_settimeofday);
EXPORT_SYMBOL(do_settimeofday);


/*
/*
+3 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/linkage.h>
#include <linux/linkage.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/module.h>


#include <asm/setup.h>
#include <asm/setup.h>
#include <asm/fpu.h>
#include <asm/fpu.h>
@@ -250,6 +251,8 @@ void dump_stack(void)
	show_stack(NULL, NULL);
	show_stack(NULL, NULL);
}
}


EXPORT_SYMBOL(dump_stack);

void show_stack(struct task_struct *task, unsigned long *sp)
void show_stack(struct task_struct *task, unsigned long *sp)
{
{
}
}
Loading