Merge HEAD from master.kernel.org:/pub/scm/linux/kernel/git/paulus/ppc64-2.6
This commit is contained in:
@@ -5,6 +5,6 @@
|
||||
#ifndef _8253PIT_H
|
||||
#define _8253PIT_H
|
||||
|
||||
#define PIT_TICK_RATE 1193182UL
|
||||
#define PIT_TICK_RATE 1193182UL
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1 @@
|
||||
#include <asm-generic/cputime.h>
|
||||
@@ -0,0 +1 @@
|
||||
#include <asm-generic/emergency-restart.h>
|
||||
@@ -0,0 +1 @@
|
||||
#include <asm-generic/percpu.h>
|
||||
@@ -0,0 +1 @@
|
||||
#include <asm-generic/resource.h>
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef __PPC_CPUTIME_H
|
||||
#define __PPC_CPUTIME_H
|
||||
|
||||
#include <asm-generic/cputime.h>
|
||||
|
||||
#endif /* __PPC_CPUTIME_H */
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef _ASM_EMERGENCY_RESTART_H
|
||||
#define _ASM_EMERGENCY_RESTART_H
|
||||
|
||||
#include <asm-generic/emergency-restart.h>
|
||||
|
||||
#endif /* _ASM_EMERGENCY_RESTART_H */
|
||||
@@ -1 +0,0 @@
|
||||
#include <asm-generic/hdreg.h>
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef __PPC_LOCAL_H
|
||||
#define __PPC_LOCAL_H
|
||||
|
||||
#include <asm-generic/local.h>
|
||||
|
||||
#endif /* __PPC_LOCAL_H */
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef __ARCH_PPC_PERCPU__
|
||||
#define __ARCH_PPC_PERCPU__
|
||||
|
||||
#include <asm-generic/percpu.h>
|
||||
|
||||
#endif /* __ARCH_PPC_PERCPU__ */
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef _PPC_RESOURCE_H
|
||||
#define _PPC_RESOURCE_H
|
||||
|
||||
#include <asm-generic/resource.h>
|
||||
|
||||
#endif
|
||||
@@ -1,10 +0,0 @@
|
||||
/*
|
||||
* 8253/8254 Programmable Interval Timer
|
||||
*/
|
||||
|
||||
#ifndef _8253PIT_H
|
||||
#define _8253PIT_H
|
||||
|
||||
#define PIT_TICK_RATE 1193182UL
|
||||
|
||||
#endif
|
||||
@@ -1,23 +0,0 @@
|
||||
#ifndef AGP_H
|
||||
#define AGP_H 1
|
||||
|
||||
#include <asm/io.h>
|
||||
|
||||
/* nothing much needed here */
|
||||
|
||||
#define map_page_into_agp(page)
|
||||
#define unmap_page_from_agp(page)
|
||||
#define flush_agp_mappings()
|
||||
#define flush_agp_cache() mb()
|
||||
|
||||
/* Convert a physical address to an address suitable for the GART. */
|
||||
#define phys_to_gart(x) (x)
|
||||
#define gart_to_phys(x) (x)
|
||||
|
||||
/* GATT allocation. Returns/accepts GATT kernel virtual address. */
|
||||
#define alloc_gatt_pages(order) \
|
||||
((char *)__get_free_pages(GFP_KERNEL, (order)))
|
||||
#define free_gatt_pages(table, order) \
|
||||
free_pages((unsigned long)(table), (order))
|
||||
|
||||
#endif
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef __PPC_CPUTIME_H
|
||||
#define __PPC_CPUTIME_H
|
||||
|
||||
#include <asm-generic/cputime.h>
|
||||
|
||||
#endif /* __PPC_CPUTIME_H */
|
||||
@@ -1 +0,0 @@
|
||||
#include <asm-generic/div64.h>
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef _ASM_EMERGENCY_RESTART_H
|
||||
#define _ASM_EMERGENCY_RESTART_H
|
||||
|
||||
#include <asm-generic/emergency-restart.h>
|
||||
|
||||
#endif /* _ASM_EMERGENCY_RESTART_H */
|
||||
@@ -1,18 +0,0 @@
|
||||
#ifndef _PPC64_ERRNO_H
|
||||
#define _PPC64_ERRNO_H
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <asm-generic/errno.h>
|
||||
|
||||
#undef EDEADLOCK
|
||||
#define EDEADLOCK 58 /* File locking deadlock error */
|
||||
|
||||
#define _LAST_ERRNO 516
|
||||
|
||||
#endif
|
||||
@@ -1 +0,0 @@
|
||||
#include <asm-generic/hdreg.h>
|
||||
@@ -1,74 +0,0 @@
|
||||
#ifndef _PPC64_IOCTL_H
|
||||
#define _PPC64_IOCTL_H
|
||||
|
||||
|
||||
/*
|
||||
* This was copied from the alpha as it's a bit cleaner there.
|
||||
* -- Cort
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define _IOC_NRBITS 8
|
||||
#define _IOC_TYPEBITS 8
|
||||
#define _IOC_SIZEBITS 13
|
||||
#define _IOC_DIRBITS 3
|
||||
|
||||
#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
|
||||
#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1)
|
||||
#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1)
|
||||
#define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1)
|
||||
|
||||
#define _IOC_NRSHIFT 0
|
||||
#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS)
|
||||
#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS)
|
||||
#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS)
|
||||
|
||||
/*
|
||||
* Direction bits _IOC_NONE could be 0, but OSF/1 gives it a bit.
|
||||
* And this turns out useful to catch old ioctl numbers in header
|
||||
* files for us.
|
||||
*/
|
||||
#define _IOC_NONE 1U
|
||||
#define _IOC_READ 2U
|
||||
#define _IOC_WRITE 4U
|
||||
|
||||
#define _IOC(dir,type,nr,size) \
|
||||
(((dir) << _IOC_DIRSHIFT) | \
|
||||
((type) << _IOC_TYPESHIFT) | \
|
||||
((nr) << _IOC_NRSHIFT) | \
|
||||
((size) << _IOC_SIZESHIFT))
|
||||
|
||||
/* provoke compile error for invalid uses of size argument */
|
||||
extern unsigned int __invalid_size_argument_for_IOC;
|
||||
#define _IOC_TYPECHECK(t) \
|
||||
((sizeof(t) == sizeof(t[1]) && \
|
||||
sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
|
||||
sizeof(t) : __invalid_size_argument_for_IOC)
|
||||
|
||||
/* used to create numbers */
|
||||
#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0)
|
||||
#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size)))
|
||||
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
|
||||
#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
|
||||
#define _IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
|
||||
#define _IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size))
|
||||
#define _IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))
|
||||
|
||||
/* used to decode them.. */
|
||||
#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
|
||||
#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
|
||||
#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
|
||||
#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
|
||||
|
||||
/* various drivers, such as the pcmcia stuff, need these... */
|
||||
#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT)
|
||||
#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT)
|
||||
#define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
|
||||
#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT)
|
||||
#define IOCSIZE_SHIFT (_IOC_SIZESHIFT)
|
||||
|
||||
#endif /* _PPC64_IOCTL_H */
|
||||
@@ -1,114 +0,0 @@
|
||||
#ifndef _ASM_PPC64_IOCTLS_H
|
||||
#define _ASM_PPC64_IOCTLS_H
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <asm/ioctl.h>
|
||||
|
||||
#define FIOCLEX _IO('f', 1)
|
||||
#define FIONCLEX _IO('f', 2)
|
||||
#define FIOASYNC _IOW('f', 125, int)
|
||||
#define FIONBIO _IOW('f', 126, int)
|
||||
#define FIONREAD _IOR('f', 127, int)
|
||||
#define TIOCINQ FIONREAD
|
||||
#define FIOQSIZE _IOR('f', 128, loff_t)
|
||||
|
||||
#define TIOCGETP _IOR('t', 8, struct sgttyb)
|
||||
#define TIOCSETP _IOW('t', 9, struct sgttyb)
|
||||
#define TIOCSETN _IOW('t', 10, struct sgttyb) /* TIOCSETP wo flush */
|
||||
|
||||
#define TIOCSETC _IOW('t', 17, struct tchars)
|
||||
#define TIOCGETC _IOR('t', 18, struct tchars)
|
||||
#define TCGETS _IOR('t', 19, struct termios)
|
||||
#define TCSETS _IOW('t', 20, struct termios)
|
||||
#define TCSETSW _IOW('t', 21, struct termios)
|
||||
#define TCSETSF _IOW('t', 22, struct termios)
|
||||
|
||||
#define TCGETA _IOR('t', 23, struct termio)
|
||||
#define TCSETA _IOW('t', 24, struct termio)
|
||||
#define TCSETAW _IOW('t', 25, struct termio)
|
||||
#define TCSETAF _IOW('t', 28, struct termio)
|
||||
|
||||
#define TCSBRK _IO('t', 29)
|
||||
#define TCXONC _IO('t', 30)
|
||||
#define TCFLSH _IO('t', 31)
|
||||
|
||||
#define TIOCSWINSZ _IOW('t', 103, struct winsize)
|
||||
#define TIOCGWINSZ _IOR('t', 104, struct winsize)
|
||||
#define TIOCSTART _IO('t', 110) /* start output, like ^Q */
|
||||
#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */
|
||||
#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */
|
||||
|
||||
#define TIOCGLTC _IOR('t', 116, struct ltchars)
|
||||
#define TIOCSLTC _IOW('t', 117, struct ltchars)
|
||||
#define TIOCSPGRP _IOW('t', 118, int)
|
||||
#define TIOCGPGRP _IOR('t', 119, int)
|
||||
|
||||
#define TIOCEXCL 0x540C
|
||||
#define TIOCNXCL 0x540D
|
||||
#define TIOCSCTTY 0x540E
|
||||
|
||||
#define TIOCSTI 0x5412
|
||||
#define TIOCMGET 0x5415
|
||||
#define TIOCMBIS 0x5416
|
||||
#define TIOCMBIC 0x5417
|
||||
#define TIOCMSET 0x5418
|
||||
# define TIOCM_LE 0x001
|
||||
# define TIOCM_DTR 0x002
|
||||
# define TIOCM_RTS 0x004
|
||||
# define TIOCM_ST 0x008
|
||||
# define TIOCM_SR 0x010
|
||||
# define TIOCM_CTS 0x020
|
||||
# define TIOCM_CAR 0x040
|
||||
# define TIOCM_RNG 0x080
|
||||
# define TIOCM_DSR 0x100
|
||||
# define TIOCM_CD TIOCM_CAR
|
||||
# define TIOCM_RI TIOCM_RNG
|
||||
|
||||
#define TIOCGSOFTCAR 0x5419
|
||||
#define TIOCSSOFTCAR 0x541A
|
||||
#define TIOCLINUX 0x541C
|
||||
#define TIOCCONS 0x541D
|
||||
#define TIOCGSERIAL 0x541E
|
||||
#define TIOCSSERIAL 0x541F
|
||||
#define TIOCPKT 0x5420
|
||||
# define TIOCPKT_DATA 0
|
||||
# define TIOCPKT_FLUSHREAD 1
|
||||
# define TIOCPKT_FLUSHWRITE 2
|
||||
# define TIOCPKT_STOP 4
|
||||
# define TIOCPKT_START 8
|
||||
# define TIOCPKT_NOSTOP 16
|
||||
# define TIOCPKT_DOSTOP 32
|
||||
|
||||
|
||||
#define TIOCNOTTY 0x5422
|
||||
#define TIOCSETD 0x5423
|
||||
#define TIOCGETD 0x5424
|
||||
#define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
|
||||
#define TIOCSBRK 0x5427 /* BSD compatibility */
|
||||
#define TIOCCBRK 0x5428 /* BSD compatibility */
|
||||
#define TIOCGSID 0x5429 /* Return the session ID of FD */
|
||||
#define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
|
||||
#define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
|
||||
|
||||
#define TIOCSERCONFIG 0x5453
|
||||
#define TIOCSERGWILD 0x5454
|
||||
#define TIOCSERSWILD 0x5455
|
||||
#define TIOCGLCKTRMIOS 0x5456
|
||||
#define TIOCSLCKTRMIOS 0x5457
|
||||
#define TIOCSERGSTRUCT 0x5458 /* For debugging only */
|
||||
#define TIOCSERGETLSR 0x5459 /* Get line status register */
|
||||
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
||||
# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
|
||||
#define TIOCSERGETMULTI 0x545A /* Get multiport config */
|
||||
#define TIOCSERSETMULTI 0x545B /* Set multiport config */
|
||||
|
||||
#define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
|
||||
#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
|
||||
|
||||
#endif /* _ASM_PPC64_IOCTLS_H */
|
||||
@@ -1 +0,0 @@
|
||||
#include <asm-generic/ipc.h>
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef __ASM_LINKAGE_H
|
||||
#define __ASM_LINKAGE_H
|
||||
|
||||
/* Nothing to see here... */
|
||||
|
||||
#endif
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* linux/include/asm-ppc/namei.h
|
||||
* Adapted from linux/include/asm-alpha/namei.h
|
||||
*
|
||||
* Included from linux/fs/namei.c
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __PPC64_NAMEI_H
|
||||
#define __PPC64_NAMEI_H
|
||||
|
||||
/* This dummy routine maybe changed to something useful
|
||||
* for /usr/gnemul/ emulation stuff.
|
||||
* Look at asm-sparc/namei.h for details.
|
||||
*/
|
||||
|
||||
#define __emul_prefix() NULL
|
||||
|
||||
#endif /* __PPC64_NAMEI_H */
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef _ASM_PPC64_PARAM_H
|
||||
#define _ASM_PPC64_PARAM_H
|
||||
|
||||
#include <linux/config.h>
|
||||
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -9,7 +11,7 @@
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
# define HZ 1000 /* Internal kernel timer frequency */
|
||||
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
|
||||
# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
|
||||
# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
|
||||
#endif
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef __ARCH_PPC64_PERCPU__
|
||||
#define __ARCH_PPC64_PERCPU__
|
||||
|
||||
#include <asm-generic/percpu.h>
|
||||
|
||||
#endif /* __ARCH_PPC64_PERCPU__ */
|
||||
@@ -489,8 +489,10 @@ extern pgd_t swapper_pg_dir[];
|
||||
|
||||
extern void paging_init(void);
|
||||
|
||||
#ifdef CONFIG_HUGETLB_PAGE
|
||||
#define hugetlb_free_pgd_range(tlb, addr, end, floor, ceiling) \
|
||||
free_pgd_range(tlb, addr, end, floor, ceiling)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This gets called at the end of handling a page fault, when
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
#ifndef __PPC64_POLL_H
|
||||
#define __PPC64_POLL_H
|
||||
|
||||
/*
|
||||
* Copyright (C) 2001 PPC64 Team, IBM Corp
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define POLLIN 0x0001
|
||||
#define POLLPRI 0x0002
|
||||
#define POLLOUT 0x0004
|
||||
#define POLLERR 0x0008
|
||||
#define POLLHUP 0x0010
|
||||
#define POLLNVAL 0x0020
|
||||
#define POLLRDNORM 0x0040
|
||||
#define POLLRDBAND 0x0080
|
||||
#define POLLWRNORM 0x0100
|
||||
#define POLLWRBAND 0x0200
|
||||
#define POLLMSG 0x0400
|
||||
#define POLLREMOVE 0x1000
|
||||
|
||||
struct pollfd {
|
||||
int fd;
|
||||
short events;
|
||||
short revents;
|
||||
};
|
||||
|
||||
#endif /* __PPC64_POLL_H */
|
||||
@@ -268,6 +268,7 @@
|
||||
#define PV_970FX 0x003C
|
||||
#define PV_630 0x0040
|
||||
#define PV_630p 0x0041
|
||||
#define PV_970MP 0x0044
|
||||
#define PV_BE 0x0070
|
||||
|
||||
/* Platforms supported by PPC64 */
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#ifndef _PPC64_RESOURCE_H
|
||||
#define _PPC64_RESOURCE_H
|
||||
|
||||
#include <asm-generic/resource.h>
|
||||
|
||||
#endif /* _PPC64_RESOURCE_H */
|
||||
@@ -1,13 +0,0 @@
|
||||
#ifndef _PPC64_SHMPARAM_H
|
||||
#define _PPC64_SHMPARAM_H
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
|
||||
|
||||
#endif /* _PPC64_SHMPARAM_H */
|
||||
@@ -1,35 +0,0 @@
|
||||
#ifndef _PPC64_STRING_H_
|
||||
#define _PPC64_STRING_H_
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define __HAVE_ARCH_STRCPY
|
||||
#define __HAVE_ARCH_STRNCPY
|
||||
#define __HAVE_ARCH_STRLEN
|
||||
#define __HAVE_ARCH_STRCMP
|
||||
#define __HAVE_ARCH_STRCAT
|
||||
#define __HAVE_ARCH_MEMSET
|
||||
#define __HAVE_ARCH_MEMCPY
|
||||
#define __HAVE_ARCH_MEMMOVE
|
||||
#define __HAVE_ARCH_MEMCMP
|
||||
#define __HAVE_ARCH_MEMCHR
|
||||
|
||||
extern int strcasecmp(const char *, const char *);
|
||||
extern int strncasecmp(const char *, const char *, int);
|
||||
extern char * strcpy(char *,const char *);
|
||||
extern char * strncpy(char *,const char *, __kernel_size_t);
|
||||
extern __kernel_size_t strlen(const char *);
|
||||
extern int strcmp(const char *,const char *);
|
||||
extern char * strcat(char *, const char *);
|
||||
extern void * memset(void *,int,__kernel_size_t);
|
||||
extern void * memcpy(void *,const void *,__kernel_size_t);
|
||||
extern void * memmove(void *,const void *,__kernel_size_t);
|
||||
extern int memcmp(const void *,const void *,__kernel_size_t);
|
||||
extern void * memchr(const void *,int,__kernel_size_t);
|
||||
|
||||
#endif /* _PPC64_STRING_H_ */
|
||||
@@ -1,21 +0,0 @@
|
||||
#ifndef __PPC64_UNALIGNED_H
|
||||
#define __PPC64_UNALIGNED_H
|
||||
|
||||
/*
|
||||
* The PowerPC can do unaligned accesses itself in big endian mode.
|
||||
*
|
||||
* The strange macros are there to make sure these can't
|
||||
* be misused in a way that makes them not work on other
|
||||
* architectures where unaligned accesses aren't as simple.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#define get_unaligned(ptr) (*(ptr))
|
||||
|
||||
#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
|
||||
|
||||
#endif /* __PPC64_UNALIGNED_H */
|
||||
+49
-56
@@ -19,13 +19,15 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
#include <asm/hvcall.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/scatterlist.h>
|
||||
/*
|
||||
|
||||
/*
|
||||
* Architecture-specific constants for drivers to
|
||||
* extract attributes of the device using vio_get_attribute()
|
||||
*/
|
||||
*/
|
||||
#define VETH_MAC_ADDR "local-mac-address"
|
||||
#define VETH_MCAST_FILTER_SIZE "ibm,mac-address-filters"
|
||||
|
||||
@@ -37,54 +39,8 @@
|
||||
#define VIO_IRQ_DISABLE 0UL
|
||||
#define VIO_IRQ_ENABLE 1UL
|
||||
|
||||
struct vio_dev;
|
||||
struct vio_driver;
|
||||
struct vio_device_id;
|
||||
struct iommu_table;
|
||||
|
||||
int vio_register_driver(struct vio_driver *drv);
|
||||
void vio_unregister_driver(struct vio_driver *drv);
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
struct vio_dev * __devinit vio_register_device_node(
|
||||
struct device_node *node_vdev);
|
||||
#endif
|
||||
void __devinit vio_unregister_device(struct vio_dev *dev);
|
||||
struct vio_dev *vio_find_node(struct device_node *vnode);
|
||||
|
||||
const void * vio_get_attribute(struct vio_dev *vdev, void* which, int* length);
|
||||
int vio_get_irq(struct vio_dev *dev);
|
||||
int vio_enable_interrupts(struct vio_dev *dev);
|
||||
int vio_disable_interrupts(struct vio_dev *dev);
|
||||
extern struct vio_dev * __devinit vio_register_device_common(
|
||||
struct vio_dev *viodev, char *name, char *type,
|
||||
uint32_t unit_address, struct iommu_table *iommu_table);
|
||||
|
||||
extern struct dma_mapping_ops vio_dma_ops;
|
||||
|
||||
extern struct bus_type vio_bus_type;
|
||||
|
||||
struct vio_device_id {
|
||||
char *type;
|
||||
char *compat;
|
||||
};
|
||||
|
||||
struct vio_driver {
|
||||
struct list_head node;
|
||||
char *name;
|
||||
const struct vio_device_id *id_table; /* NULL if wants all devices */
|
||||
int (*probe) (struct vio_dev *dev, const struct vio_device_id *id); /* New device inserted */
|
||||
int (*remove) (struct vio_dev *dev); /* Device removed (NULL if not a hot-plug capable driver) */
|
||||
unsigned long driver_data;
|
||||
|
||||
struct device_driver driver;
|
||||
};
|
||||
|
||||
static inline struct vio_driver *to_vio_driver(struct device_driver *drv)
|
||||
{
|
||||
return container_of(drv, struct vio_driver, driver);
|
||||
}
|
||||
|
||||
/*
|
||||
* The vio_dev structure is used to describe virtual I/O devices.
|
||||
*/
|
||||
@@ -92,22 +48,59 @@ struct vio_dev {
|
||||
struct iommu_table *iommu_table; /* vio_map_* uses this */
|
||||
char *name;
|
||||
char *type;
|
||||
uint32_t unit_address;
|
||||
uint32_t unit_address;
|
||||
unsigned int irq;
|
||||
|
||||
struct device dev;
|
||||
};
|
||||
|
||||
struct vio_driver {
|
||||
struct list_head node;
|
||||
char *name;
|
||||
const struct vio_device_id *id_table;
|
||||
int (*probe)(struct vio_dev *dev, const struct vio_device_id *id);
|
||||
int (*remove)(struct vio_dev *dev);
|
||||
unsigned long driver_data;
|
||||
struct device_driver driver;
|
||||
};
|
||||
|
||||
struct vio_bus_ops {
|
||||
int (*match)(const struct vio_device_id *id, const struct vio_dev *dev);
|
||||
void (*unregister_device)(struct vio_dev *);
|
||||
void (*release_device)(struct device *);
|
||||
};
|
||||
|
||||
extern struct dma_mapping_ops vio_dma_ops;
|
||||
extern struct bus_type vio_bus_type;
|
||||
extern struct vio_dev vio_bus_device;
|
||||
|
||||
extern int vio_register_driver(struct vio_driver *drv);
|
||||
extern void vio_unregister_driver(struct vio_driver *drv);
|
||||
|
||||
extern struct vio_dev * __devinit vio_register_device(struct vio_dev *viodev);
|
||||
extern void __devinit vio_unregister_device(struct vio_dev *dev);
|
||||
|
||||
extern int vio_bus_init(struct vio_bus_ops *);
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
struct device_node;
|
||||
|
||||
extern struct vio_dev * __devinit vio_register_device_node(
|
||||
struct device_node *node_vdev);
|
||||
extern struct vio_dev *vio_find_node(struct device_node *vnode);
|
||||
extern const void *vio_get_attribute(struct vio_dev *vdev, void *which,
|
||||
int *length);
|
||||
extern int vio_enable_interrupts(struct vio_dev *dev);
|
||||
extern int vio_disable_interrupts(struct vio_dev *dev);
|
||||
#endif
|
||||
|
||||
static inline struct vio_driver *to_vio_driver(struct device_driver *drv)
|
||||
{
|
||||
return container_of(drv, struct vio_driver, driver);
|
||||
}
|
||||
|
||||
static inline struct vio_dev *to_vio_dev(struct device *dev)
|
||||
{
|
||||
return container_of(dev, struct vio_dev, dev);
|
||||
}
|
||||
|
||||
extern int vio_bus_init(int (*is_match)(const struct vio_device_id *id,
|
||||
const struct vio_dev *dev),
|
||||
void (*)(struct vio_dev *),
|
||||
void (*)(struct device *));
|
||||
|
||||
#endif /* _ASM_VIO_H */
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
#include <asm-generic/xor.h>
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Device tables which are exported to userspace via
|
||||
* scripts/table2alias.c. You must keep that file in sync with this
|
||||
* scripts/mod/file2alias.c. You must keep that file in sync with this
|
||||
* header.
|
||||
*/
|
||||
|
||||
@@ -190,6 +190,11 @@ struct of_device_id
|
||||
#endif
|
||||
};
|
||||
|
||||
/* VIO */
|
||||
struct vio_device_id {
|
||||
char type[32];
|
||||
char compat[32];
|
||||
};
|
||||
|
||||
/* PCMCIA */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user