mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 20:01:55 +00:00
dbc11f539d
On Tue, Oct 31, Hugh Dickins wrote: > +++ linux/include/asm-powerpc/current.h 2006-10-30 19:27:05.000000000 +0000 > +static inline struct task_struct *get_current(void) > +{ > + struct task_struct *task; > + > + __asm__ __volatile__("ld %0,%1(13)" > + : "=r" (task) > + : "i" (offsetof(struct paca_struct, __current))); This breaks compile of 2.6.18.8: CC [M] drivers/media/video/pwc/pwc-uncompress.o In file included from /home/olaf/kernel/linux-2.6.18.8/drivers/media/video/pwc/pwc-uncompress.c:29: include2/asm/current.h: In function 'get_current': include2/asm/current.h:23: warning: implicit declaration of function 'offsetof' include2/asm/current.h:23: error: expected expression before 'struct' make[5]: *** [drivers/media/video/pwc/pwc-uncompress.o] Error 1 Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
41 lines
835 B
C
41 lines
835 B
C
#ifndef _ASM_POWERPC_CURRENT_H
|
|
#define _ASM_POWERPC_CURRENT_H
|
|
#ifdef __KERNEL__
|
|
|
|
/*
|
|
* 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.
|
|
*/
|
|
|
|
struct task_struct;
|
|
|
|
#ifdef __powerpc64__
|
|
#include <linux/stddef.h>
|
|
#include <asm/paca.h>
|
|
|
|
static inline struct task_struct *get_current(void)
|
|
{
|
|
struct task_struct *task;
|
|
|
|
__asm__ __volatile__("ld %0,%1(13)"
|
|
: "=r" (task)
|
|
: "i" (offsetof(struct paca_struct, __current)));
|
|
|
|
return task;
|
|
}
|
|
#define current get_current()
|
|
|
|
#else
|
|
|
|
/*
|
|
* We keep `current' in r2 for speed.
|
|
*/
|
|
register struct task_struct *current asm ("r2");
|
|
|
|
#endif
|
|
|
|
#endif /* __KERNEL__ */
|
|
#endif /* _ASM_POWERPC_CURRENT_H */
|