summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-02-27 01:22:53 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-02-27 01:22:53 -0800
commitd6ae6e4140f2b685c23f056d79cc374740240f56 (patch)
tree617820d3de91cf73a3fbd10ea452af9a9143ec8f /include/linux
parent08c7694de859c164ec9ebc6598ccda4955d6580a (diff)
parent116cd69c5c4199a89306e5548b49e87737be971a (diff)
Merge bk://kernel.bkbits.net/gregkh/linux/pci-2.6
into ppc970.osdl.org:/home/torvalds/v2.5/linux
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/cache.h4
-rw-r--r--include/linux/cyclades.h7
-rw-r--r--include/linux/devpts_fs.h16
-rw-r--r--include/linux/dvb/video.h3
-rw-r--r--include/linux/etherdevice.h6
-rw-r--r--include/linux/eventpoll.h7
-rw-r--r--include/linux/fb.h132
-rw-r--r--include/linux/fs.h3
-rw-r--r--include/linux/futex.h4
-rw-r--r--include/linux/hfs_fs.h348
-rw-r--r--include/linux/hfs_fs_i.h45
-rw-r--r--include/linux/hfs_fs_sb.h53
-rw-r--r--include/linux/hfs_sysdep.h238
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/ioctl32.h2
-rw-r--r--include/linux/isicom.h1
-rw-r--r--include/linux/jhash.h4
-rw-r--r--include/linux/kallsyms.h8
-rw-r--r--include/linux/libata.h1
-rw-r--r--include/linux/major.h3
-rw-r--r--include/linux/mm.h2
-rw-r--r--include/linux/module.h27
-rw-r--r--include/linux/msg.h5
-rw-r--r--include/linux/netdevice.h5
-rw-r--r--include/linux/netfilter_ipv4/ip_conntrack_amanda.h13
-rw-r--r--include/linux/nfs.h2
-rw-r--r--include/linux/nfs4.h3
-rw-r--r--include/linux/nfsd/nfsd.h5
-rw-r--r--include/linux/nfsd/nfsfh.h8
-rw-r--r--include/linux/nfsd/state.h15
-rw-r--r--include/linux/nfsd/syscall.h1
-rw-r--r--include/linux/nfsd/xdr4.h30
-rw-r--r--include/linux/nfsd_idmap.h54
-rw-r--r--include/linux/pci_ids.h7
-rw-r--r--include/linux/preempt.h3
-rw-r--r--include/linux/sched.h4
-rw-r--r--include/linux/sem.h6
-rw-r--r--include/linux/serial.h1
-rw-r--r--include/linux/shm.h3
-rw-r--r--include/linux/socket.h4
-rw-r--r--include/linux/sunrpc/auth_gss.h2
-rw-r--r--include/linux/sunrpc/gss_api.h3
-rw-r--r--include/linux/sunrpc/svc.h1
-rw-r--r--include/linux/sunrpc/svcauth.h7
-rw-r--r--include/linux/sunrpc/svcauth_gss.h35
-rw-r--r--include/linux/suspend.h6
-rw-r--r--include/linux/syscalls.h476
-rw-r--r--include/linux/sysctl.h2
-rw-r--r--include/linux/tty_driver.h1
49 files changed, 753 insertions, 865 deletions
diff --git a/include/linux/cache.h b/include/linux/cache.h
index 3db3832f35cb..4d767b93738a 100644
--- a/include/linux/cache.h
+++ b/include/linux/cache.h
@@ -26,13 +26,9 @@
#endif
#ifndef __cacheline_aligned
-#ifdef MODULE
-#define __cacheline_aligned ____cacheline_aligned
-#else
#define __cacheline_aligned \
__attribute__((__aligned__(SMP_CACHE_BYTES), \
__section__(".data.cacheline_aligned")))
-#endif
#endif /* __cacheline_aligned */
#ifndef __cacheline_aligned_in_smp
diff --git a/include/linux/cyclades.h b/include/linux/cyclades.h
index 0be662bf061d..cc598507b813 100644
--- a/include/linux/cyclades.h
+++ b/include/linux/cyclades.h
@@ -7,6 +7,10 @@
*
* This file contains the general definitions for the cyclades.c driver
*$Log: cyclades.h,v $
+ *Revision 3.1 2002/01/29 11:36:16 henrique
+ *added throttle field on struct cyclades_port to indicate whether the
+ *port is throttled or not
+ *
*Revision 3.1 2000/04/19 18:52:52 ivan
*converted address fields to unsigned long and added fields for physical
*addresses on cyclades_card structure;
@@ -141,7 +145,7 @@ struct CYZ_BOOT_CTRL {
/****************** ****************** *******************/
/*
* The data types defined below are used in all ZFIRM interface
- * data structures. They accommodate differences between HW
+ * data structures. They accomodate differences between HW
* architectures and compilers.
*/
@@ -604,6 +608,7 @@ struct cyclades_port {
wait_queue_head_t close_wait;
wait_queue_head_t shutdown_wait;
wait_queue_head_t delta_msr_wait;
+ int throttle;
};
/*
diff --git a/include/linux/devpts_fs.h b/include/linux/devpts_fs.h
index 734f7ea9e835..b672ddc00735 100644
--- a/include/linux/devpts_fs.h
+++ b/include/linux/devpts_fs.h
@@ -11,22 +11,22 @@
* ------------------------------------------------------------------------- */
#ifndef _LINUX_DEVPTS_FS_H
-#define _LINUX_DEVPTS_FS_H 1
+#define _LINUX_DEVPTS_FS_H
#include <linux/errno.h>
-#if CONFIG_UNIX98_PTYS
+#ifdef CONFIG_UNIX98_PTYS
-int devpts_pty_new(struct tty_struct *); /* mknod in devpts */
-struct tty_struct *devpts_get_tty(int); /* get tty structure */
-void devpts_pty_kill(int); /* unlink */
+int devpts_pty_new(struct tty_struct *tty); /* mknod in devpts */
+struct tty_struct *devpts_get_tty(int number); /* get tty structure */
+void devpts_pty_kill(int number); /* unlink */
#else
/* Dummy stubs in the no-pty case */
-static inline int devpts_pty_new(struct tty_struct *) { return -EINVAL; }
-static inline struct tty_struct *devpts_get_tty(int) { return NULL; }
-static inline void devpts_pty_kill(int) { }
+static inline int devpts_pty_new(struct tty_struct *tty) { return -EINVAL; }
+static inline struct tty_struct *devpts_get_tty(int number) { return NULL; }
+static inline void devpts_pty_kill(int number) { }
#endif
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index 6727f422da61..09a4286fb02b 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -81,9 +81,11 @@ typedef enum {
struct video_event {
int32_t type;
#define VIDEO_EVENT_SIZE_CHANGED 1
+#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
time_t timestamp;
union {
video_size_t size;
+ unsigned int frame_rate; /* in frames per 1000sec */
} u;
};
@@ -194,6 +196,7 @@ typedef uint16_t video_attributes_t;
#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
#define VIDEO_SET_ATTRIBUTES _IO('o', 53)
#define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
+#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
#endif /*_DVBVIDEO_H_*/
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index 416017dc3927..462f7234695f 100644
--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
@@ -38,12 +38,6 @@ extern int eth_header_cache(struct neighbour *neigh,
struct hh_cache *hh);
extern int eth_header_parse(struct sk_buff *skb,
unsigned char *haddr);
-extern struct net_device *__init_etherdev(struct net_device *dev, int sizeof_priv);
-static inline struct net_device *init_etherdev(struct net_device *dev,
- int sizeof_priv)
-{
- return __init_etherdev(dev, sizeof_priv);
-}
extern struct net_device *alloc_etherdev(int sizeof_priv);
static inline void eth_copy_and_sum (struct sk_buff *dest, unsigned char *src, int len, int base)
diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h
index 136c6315e6af..1289f0ec4c00 100644
--- a/include/linux/eventpoll.h
+++ b/include/linux/eventpoll.h
@@ -49,13 +49,6 @@ struct epoll_event {
struct file;
-/* Kernel space functions implementing the user space "epoll" API */
-asmlinkage long sys_epoll_create(int size);
-asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
- struct epoll_event __user *event);
-asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
- int maxevents, int timeout);
-
#ifdef CONFIG_EPOLL
/* Used to initialize the epoll bits inside the "struct file" */
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 574808f1450d..91972971f387 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -371,16 +371,16 @@ extern int fb_unregister_client(struct notifier_block *nb);
#define FB_PIXMAP_SYNC 256 /* set if GPU can DMA */
struct fb_pixmap {
- u8 *addr; /* pointer to memory */
- u32 size; /* size of buffer in bytes */
- u32 offset; /* current offset to buffer */
- u32 buf_align; /* byte alignment of each bitmap */
- u32 scan_align; /* alignment per scanline */
- u32 access_align; /* alignment per read/write */
- u32 flags; /* see FB_PIXMAP_* */
- /* access methods */
- void (*outbuf)(u8 *dst, u8 *addr, unsigned int size);
- u8 (*inbuf) (u8 *addr);
+ u8 *addr; /* pointer to memory */
+ u32 size; /* size of buffer in bytes */
+ u32 offset; /* current offset to buffer */
+ u32 buf_align; /* byte alignment of each bitmap */
+ u32 scan_align; /* alignment per scanline */
+ u32 access_align; /* alignment per read/write */
+ u32 flags; /* see FB_PIXMAP_* */
+ /* access methods */
+ void (*outbuf)(struct fb_info *info, u8 *addr, u8 *src, unsigned int size);
+ u8 (*inbuf) (struct fb_info *info, u8 *addr);
};
/*
@@ -388,64 +388,53 @@ struct fb_pixmap {
*/
struct fb_ops {
- /* open/release and usage marking */
- struct module *owner;
- int (*fb_open)(struct fb_info *info, int user);
- int (*fb_release)(struct fb_info *info, int user);
+ /* open/release and usage marking */
+ struct module *owner;
+ int (*fb_open)(struct fb_info *info, int user);
+ int (*fb_release)(struct fb_info *info, int user);
- /* For framebuffers with strange non linear layouts */
- ssize_t(*fb_read) (struct file * file, char *buf, size_t count,
- loff_t * ppos);
- ssize_t(*fb_write) (struct file * file, const char *buf,
- size_t count, loff_t * ppos);
+ /* For framebuffers with strange non linear layouts */
+ ssize_t (*fb_read)(struct file *file, char *buf, size_t count, loff_t *ppos);
+ ssize_t (*fb_write)(struct file *file, const char *buf, size_t count, loff_t *ppos);
/* checks var and eventually tweaks it to something supported,
* DO NOT MODIFY PAR */
- int (*fb_check_var) (struct fb_var_screeninfo * var,
- struct fb_info * info);
+ int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info);
/* set the video mode according to info->var */
- int (*fb_set_par)(struct fb_info *info);
-
- /* set color register */
- int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green,
- unsigned blue, unsigned transp,
- struct fb_info * info);
-
- /* blank display */
- int (*fb_blank)(int blank, struct fb_info *info);
-
- /* pan display */
- int (*fb_pan_display) (struct fb_var_screeninfo * var,
- struct fb_info * info);
-
- /* draws a rectangle */
- void (*fb_fillrect) (struct fb_info * info,
- const struct fb_fillrect * rect);
- /* Copy data from area to another */
- void (*fb_copyarea) (struct fb_info * info,
- const struct fb_copyarea * region);
- /* Draws a image to the display */
- void (*fb_imageblit) (struct fb_info * info,
- const struct fb_image * image);
-
- /* Draws cursor */
- int (*fb_cursor) (struct fb_info * info,
- struct fb_cursor * cursor);
-
- /* Rotates the display */
- void (*fb_rotate)(struct fb_info *info, int angle);
-
- /* wait for blit idle, optional */
- int (*fb_sync)(struct fb_info *info);
-
- /* perform fb specific ioctl (optional) */
- int (*fb_ioctl) (struct inode * inode, struct file * file,
- unsigned int cmd, unsigned long arg,
- struct fb_info * info);
-
- /* perform fb specific mmap */
- int (*fb_mmap) (struct fb_info * info, struct file * file,
- struct vm_area_struct * vma);
+ int (*fb_set_par)(struct fb_info *info);
+
+ /* set color register */
+ int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green,
+ unsigned blue, unsigned transp, struct fb_info *info);
+
+ /* blank display */
+ int (*fb_blank)(int blank, struct fb_info *info);
+
+ /* pan display */
+ int (*fb_pan_display)(struct fb_var_screeninfo *var, struct fb_info *info);
+
+ /* Draws a rectangle */
+ void (*fb_fillrect) (struct fb_info *info, const struct fb_fillrect *rect);
+ /* Copy data from area to another */
+ void (*fb_copyarea) (struct fb_info *info, const struct fb_copyarea *region);
+ /* Draws a image to the display */
+ void (*fb_imageblit) (struct fb_info *info, const struct fb_image *image);
+
+ /* Draws cursor */
+ int (*fb_cursor) (struct fb_info *info, struct fb_cursor *cursor);
+
+ /* Rotates the display */
+ void (*fb_rotate)(struct fb_info *info, int angle);
+
+ /* wait for blit idle, optional */
+ int (*fb_sync)(struct fb_info *info);
+
+ /* perform fb specific ioctl (optional) */
+ int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int cmd,
+ unsigned long arg, struct fb_info *info);
+
+ /* perform fb specific mmap */
+ int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma);
};
struct fb_info {
@@ -459,6 +448,7 @@ struct fb_info {
struct fb_cursor cursor; /* Current cursor */
struct work_struct queue; /* Framebuffer event queue */
struct fb_pixmap pixmap; /* Image Hardware Mapper */
+ struct fb_pixmap sprite; /* Cursor hardware Mapper */
struct fb_cmap cmap; /* Current cmap */
struct fb_ops *fbops;
char *screen_base; /* Virtual address */
@@ -537,14 +527,16 @@ extern int register_framebuffer(struct fb_info *fb_info);
extern int unregister_framebuffer(struct fb_info *fb_info);
extern int fb_prepare_logo(struct fb_info *fb_info);
extern int fb_show_logo(struct fb_info *fb_info);
-extern u32 fb_get_buffer_offset(struct fb_info *info, u32 size);
-extern void move_buf_unaligned(struct fb_info *info, u8 * dst, u8 * src,
- u32 d_pitch, u32 height, u32 mask,
- u32 shift_high, u32 shift_low, u32 mod,
- u32 idx);
-extern void move_buf_aligned(struct fb_info *info, u8 * dst, u8 * src,
- u32 d_pitch, u32 s_pitch, u32 height);
+extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size);
+extern void fb_move_buf_unaligned(struct fb_info *info, struct fb_pixmap *buf,
+ u8 *dst, u32 d_pitch, u8 *src, u32 idx,
+ u32 height, u32 shift_high, u32 shift_low, u32 mod);
+extern void fb_move_buf_aligned(struct fb_info *info, struct fb_pixmap *buf,
+ u8 *dst, u32 d_pitch, u8 *src, u32 s_pitch,
+ u32 height);
+extern void fb_load_cursor_image(struct fb_info *);
extern void fb_set_suspend(struct fb_info *info, int state);
+
extern struct fb_info *registered_fb[FB_MAX];
extern int num_registered_fb;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index dd3186163c0d..025fdc3b379b 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1118,10 +1118,7 @@ static inline int break_lease(struct inode *inode, unsigned int mode)
/* fs/open.c */
-asmlinkage long sys_open(const char __user *, int, int);
-asmlinkage long sys_close(unsigned int); /* yes, it's really unsigned */
extern int do_truncate(struct dentry *, loff_t start);
-
extern struct file *filp_open(const char *, int, int);
extern struct file * dentry_open(struct dentry *, struct vfsmount *, int);
extern int filp_close(struct file *, fl_owner_t id);
diff --git a/include/linux/futex.h b/include/linux/futex.h
index ef87c1b0d637..87f4b2541bd3 100644
--- a/include/linux/futex.h
+++ b/include/linux/futex.h
@@ -10,10 +10,6 @@
#define FUTEX_REQUEUE (3)
-asmlinkage long sys_futex(u32 __user *uaddr, int op, int val,
- struct timespec __user *utime, u32 __user *uaddr2);
-
-
long do_futex(unsigned long uaddr, int op, int val,
unsigned long timeout, unsigned long uaddr2, int val2);
diff --git a/include/linux/hfs_fs.h b/include/linux/hfs_fs.h
deleted file mode 100644
index 6cddc472d859..000000000000
--- a/include/linux/hfs_fs.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * linux/include/linux/hfs_fs.h
- *
- * Copyright (C) 1995-1997 Paul H. Hargrove
- * This file may be distributed under the terms of the GNU General Public License.
- *
- * The source code distribution of the Columbia AppleTalk Package for
- * UNIX, version 6.0, (CAP) was used as a specification of the
- * location and format of files used by CAP's Aufs. No code from CAP
- * appears in hfs_fs. hfs_fs is not a work ``derived'' from CAP in
- * the sense of intellectual property law.
- *
- * The source code distributions of Netatalk, versions 1.3.3b2 and
- * 1.4b2, were used as a specification of the location and format of
- * files used by Netatalk's afpd. No code from Netatalk appears in
- * hfs_fs. hfs_fs is not a work ``derived'' from Netatalk in the
- * sense of intellectual property law.
- */
-
-#ifndef _LINUX_HFS_FS_H
-#define _LINUX_HFS_FS_H
-
-#include <linux/hfs_sysdep.h>
-
-/* magic numbers for Apple Double header files */
-#define HFS_DBL_MAGIC 0x00051607
-#define HFS_SNGL_MAGIC 0x00051600
-#define HFS_HDR_VERSION_1 0x00010000
-#define HFS_HDR_VERSION_2 0x00020000
-
-/* magic numbers for various internal structures */
-#define HFS_INO_MAGIC 0x4821
-#define HFS_SB_MAGIC 0x4822
-
-/* The space used for the AppleDouble or AppleSingle headers */
-#define HFS_DBL_HDR_LEN 1024
-
-/* The space used for the Netatalk header */
-#define HFS_NAT_HDR_LEN 1024 /* 589 for an exact match */
-
-/* Macros to extract CNID and file "type" from the Linux inode number */
-#define HFS_CNID(X) ((X) & 0x3FFFFFFF)
-#define HFS_ITYPE(X) ((X) & 0xC0000000)
-
-/* Macros to enumerate types */
-#define HFS_ITYPE_TO_INT(X) ((X) >> 30)
-#define HFS_INT_TO_ITYPE(X) ((X) << 30)
-
-/* generic ITYPEs */
-#define HFS_ITYPE_0 0x00000000
-#define HFS_ITYPE_1 0x40000000
-#define HFS_ITYPE_2 0x80000000
-#define HFS_ITYPE_3 0xC0000000
-#define HFS_ITYPE_NORM HFS_ITYPE_0 /* "normal" directory or file */
-
-/* ITYPEs for CAP */
-#define HFS_CAP_NORM HFS_ITYPE_0 /* data fork or normal directory */
-#define HFS_CAP_DATA HFS_ITYPE_0 /* data fork of file */
-#define HFS_CAP_NDIR HFS_ITYPE_0 /* normal directory */
-#define HFS_CAP_FNDR HFS_ITYPE_1 /* finder info for file or dir */
-#define HFS_CAP_RSRC HFS_ITYPE_2 /* resource fork of file */
-#define HFS_CAP_RDIR HFS_ITYPE_2 /* .resource directory */
-#define HFS_CAP_FDIR HFS_ITYPE_3 /* .finderinfo directory */
-
-/* ITYPEs for Apple Double */
-#define HFS_DBL_NORM HFS_ITYPE_0 /* data fork or directory */
-#define HFS_DBL_DATA HFS_ITYPE_0 /* data fork of file */
-#define HFS_DBL_DIR HFS_ITYPE_0 /* directory */
-#define HFS_DBL_HDR HFS_ITYPE_1 /* AD header of file or dir */
-
-/* ITYPEs for netatalk */
-#define HFS_NAT_NORM HFS_ITYPE_0 /* data fork or directory */
-#define HFS_NAT_DATA HFS_ITYPE_0 /* data fork of file */
-#define HFS_NAT_NDIR HFS_ITYPE_0 /* normal directory */
-#define HFS_NAT_HDR HFS_ITYPE_1 /* AD header of file or dir */
-#define HFS_NAT_HDIR HFS_ITYPE_2 /* directory holding AD headers */
-
-/* ITYPEs for Apple Single */
-#define HFS_SGL_NORM HFS_ITYPE_0 /* AppleSingle file or directory */
-#define HFS_SGL_SNGL HFS_ITYPE_0 /* AppleSingle file */
-#define HFS_SGL_DIR HFS_ITYPE_0 /* directory */
-#define HFS_SGL_DINF HFS_ITYPE_1 /* %DirInfo for directory */
-
-/* IDs for elements of an AppleDouble or AppleSingle header */
-#define HFS_HDR_DATA 1 /* data fork */
-#define HFS_HDR_RSRC 2 /* resource fork */
-#define HFS_HDR_FNAME 3 /* full (31-character) name */
-#define HFS_HDR_COMNT 4 /* comment */
-#define HFS_HDR_BWICN 5 /* b/w icon */
-#define HFS_HDR_CICON 6 /* color icon info */
-#define HFS_HDR_OLDI 7 /* old file info */
-#define HFS_HDR_DATES 8 /* file dates info */
-#define HFS_HDR_FINFO 9 /* Finder info */
-#define HFS_HDR_MACI 10 /* Macintosh info */
-#define HFS_HDR_PRODOSI 11 /* ProDOS info */
-#define HFS_HDR_MSDOSI 12 /* MSDOS info */
-#define HFS_HDR_SNAME 13 /* short name */
-#define HFS_HDR_AFPI 14 /* AFP file info */
-#define HFS_HDR_DID 15 /* directory id */
-#define HFS_HDR_MAX 16
-
-/*
- * There are three time systems. All three are based on seconds since
- * a particular time/date.
- * Unix: unsigned lil-endian since 00:00 GMT, Jan. 1, 1970
- * mac: unsigned big-endian since 00:00 GMT, Jan. 1, 1904
- * header: SIGNED big-endian since 00:00 GMT, Jan. 1, 2000
- *
- */
-#define hfs_h_to_mtime(ARG) htonl((hfs_s32)ntohl(ARG)+3029529600U)
-#define hfs_m_to_htime(ARG) ((hfs_s32)htonl(ntohl(ARG)-3029529600U))
-#define hfs_h_to_utime(ARG) ((hfs_s32)hfs_to_utc(ntohl(ARG)+946684800U))
-#define hfs_u_to_htime(ARG) ((hfs_s32)htonl(hfs_from_utc(ARG)-946684800U))
-#define hfs_u_to_mtime(ARG) htonl(hfs_from_utc(ARG)+2082844800U)
-#define hfs_m_to_utime(ARG) (hfs_to_utc(ntohl(ARG)-2082844800U))
-
-/*======== Data structures kept in memory ========*/
-
-/*
- * A descriptor for a single entry within the header of an
- * AppleDouble or AppleSingle header file.
- * An array of these make up a table of contents for the file.
- */
-struct hfs_hdr_descr {
- hfs_u32 id; /* The Apple assigned ID for the entry type */
- hfs_u32 offset; /* The offset to reach the entry */
- hfs_u32 length; /* The length of the entry */
-};
-
-/*
- * The info needed to reconstruct a given header layout
- */
-struct hfs_hdr_layout {
- hfs_u32 magic; /* AppleSingle or AppleDouble */
- hfs_u32 version; /* 0x00010000 or 0x00020000 */
- hfs_u16 entries; /* How many entries used */
- struct hfs_hdr_descr
- descr[HFS_HDR_MAX]; /* Descriptors */
- struct hfs_hdr_descr
- *order[HFS_HDR_MAX]; /* 'descr' ordered by offset */
-};
-
-/* header layout for netatalk's v1 appledouble file format */
-struct hfs_nat_hdr {
- hfs_lword_t magic;
- hfs_lword_t version;
- hfs_byte_t homefs[16];
- hfs_word_t entries;
- hfs_byte_t descrs[12*5];
- hfs_byte_t real_name[255]; /* id=3 */
- hfs_byte_t comment[200]; /* id=4 XXX: not yet implemented */
- hfs_byte_t old_info[16]; /* id=7 */
- hfs_u8 finderinfo[32]; /* id=9 */
-};
-
-/*
- * Default header layout for Netatalk and AppleDouble
- */
-struct hfs_dbl_hdr {
- hfs_lword_t magic;
- hfs_lword_t version;
- hfs_byte_t filler[16];
- hfs_word_t entries;
- hfs_byte_t descrs[12*HFS_HDR_MAX];
- hfs_byte_t real_name[255]; /* id=3 */
- hfs_byte_t comment[200]; /* id=4 XXX: not yet implemented */
- hfs_u32 create_time; /* \ */
- hfs_u32 modify_time; /* | id=8 (or 7) */
- hfs_u32 backup_time; /* | */
- hfs_u32 access_time; /* / (attributes with id=7) */
- hfs_u8 finderinfo[32]; /* id=9 */
- hfs_u32 fileinfo; /* id=10 */
- hfs_u32 cnid; /* id=15 */
- hfs_u8 short_name[12]; /* id=13 */
- hfs_u8 prodosi[8]; /* id=11 */
-};
-
-
-/* finder metadata for CAP */
-struct hfs_cap_info {
- hfs_byte_t fi_fndr[32]; /* Finder's info */
- hfs_word_t fi_attr; /* AFP attributes (f=file/d=dir) */
-#define HFS_AFP_INV 0x001 /* Invisible bit (f/d) */
-#define HFS_AFP_EXPFOLDER 0x002 /* exported folder (d) */
-#define HFS_AFP_MULTI 0x002 /* Multiuser bit (f) */
-#define HFS_AFP_SYS 0x004 /* System bit (f/d) */
-#define HFS_AFP_DOPEN 0x008 /* data fork already open (f) */
-#define HFS_AFP_MOUNTED 0x008 /* mounted folder (d) */
-#define HFS_AFP_ROPEN 0x010 /* resource fork already open (f) */
-#define HFS_AFP_INEXPFOLDER 0x010 /* folder in shared area (d) */
-#define HFS_AFP_WRI 0x020 /* Write inhibit bit (readonly) (f) */
-#define HFS_AFP_BACKUP 0x040 /* backup needed bit (f/d) */
-#define HFS_AFP_RNI 0x080 /* Rename inhibit bit (f/d) */
-#define HFS_AFP_DEI 0x100 /* Delete inhibit bit (f/d) */
-#define HFS_AFP_NOCOPY 0x400 /* Copy protect bit (f) */
-#define HFS_AFP_RDONLY ( HFS_AFP_WRI|HFS_AFP_RNI|HFS_AFP_DEI)
- hfs_byte_t fi_magic1; /* Magic number: */
-#define HFS_CAP_MAGIC1 0xFF
- hfs_byte_t fi_version; /* Version of this structure: */
-#define HFS_CAP_VERSION 0x10
- hfs_byte_t fi_magic; /* Another magic number: */
-#define HFS_CAP_MAGIC 0xDA
- hfs_byte_t fi_bitmap; /* Bitmap of which names are valid: */
-#define HFS_CAP_SHORTNAME 0x01
-#define HFS_CAP_LONGNAME 0x02
- hfs_byte_t fi_shortfilename[12+1]; /* "short name" (unused) */
- hfs_byte_t fi_macfilename[32+1]; /* Original (Macintosh) name */
- hfs_byte_t fi_comln; /* Length of comment (always 0) */
- hfs_byte_t fi_comnt[200]; /* Finder comment (unused) */
- /* optional: used by aufs only if compiled with USE_MAC_DATES */
- hfs_byte_t fi_datemagic; /* Magic number for dates extension: */
-#define HFS_CAP_DMAGIC 0xDA
- hfs_byte_t fi_datevalid; /* Bitmap of which dates are valid: */
-#define HFS_CAP_MDATE 0x01
-#define HFS_CAP_CDATE 0x02
- hfs_lword_t fi_ctime; /* Creation date (in AFP format) */
- hfs_lword_t fi_mtime; /* Modify date (in AFP format) */
- hfs_lword_t fi_utime; /* Un*x time of last mtime change */
- hfs_byte_t pad;
-};
-
-#ifdef __KERNEL__
-
-typedef ssize_t hfs_rwret_t;
-typedef size_t hfs_rwarg_t;
-
-#include <asm/uaccess.h>
-
-/* Some forward declarations */
-struct hfs_fork;
-struct hfs_cat_key;
-struct hfs_cat_entry;
-extern struct hfs_cat_entry *hfs_cat_get(struct hfs_mdb *,
- const struct hfs_cat_key *);
-
-/* dir.c */
-extern int hfs_create(struct inode *, struct dentry *, int, struct nameidata *);
-extern int hfs_mkdir(struct inode *, struct dentry *, int);
-extern int hfs_unlink(struct inode *, struct dentry *);
-extern int hfs_rmdir(struct inode *, struct dentry *);
-extern int hfs_rename(struct inode *, struct dentry *,
- struct inode *, struct dentry *);
-
-/* dir_cap.c */
-extern const struct hfs_name hfs_cap_reserved1[];
-extern const struct hfs_name hfs_cap_reserved2[];
-extern struct inode_operations hfs_cap_ndir_inode_operations;
-extern struct inode_operations hfs_cap_fdir_inode_operations;
-extern struct inode_operations hfs_cap_rdir_inode_operations;
-extern struct file_operations hfs_cap_dir_operations;
-extern void hfs_cap_drop_dentry(struct dentry *, const ino_t);
-
-/* dir_dbl.c */
-extern const struct hfs_name hfs_dbl_reserved1[];
-extern const struct hfs_name hfs_dbl_reserved2[];
-extern struct inode_operations hfs_dbl_dir_inode_operations;
-extern struct file_operations hfs_dbl_dir_operations;
-extern void hfs_dbl_drop_dentry(struct dentry *, const ino_t);
-
-/* dir_nat.c */
-extern const struct hfs_name hfs_nat_reserved1[];
-extern const struct hfs_name hfs_nat_reserved2[];
-extern struct inode_operations hfs_nat_ndir_inode_operations;
-extern struct inode_operations hfs_nat_hdir_inode_operations;
-extern struct file_operations hfs_nat_dir_operations;
-extern void hfs_nat_drop_dentry(struct dentry *, const ino_t);
-
-/* file.c */
-extern hfs_s32 hfs_do_read(struct inode *, struct hfs_fork *, hfs_u32,
- char __user *, hfs_u32);
-extern hfs_s32 hfs_do_write(struct inode *, struct hfs_fork *, hfs_u32,
- const char __user *, hfs_u32);
-extern void hfs_file_fix_mode(struct hfs_cat_entry *entry);
-extern struct inode_operations hfs_file_inode_operations;
-extern struct file_operations hfs_file_operations;
-
-/* file_cap.c */
-extern struct inode_operations hfs_cap_info_inode_operations;
-extern struct file_operations hfs_cap_info_operations;
-
-/* file_hdr.c */
-extern struct inode_operations hfs_hdr_inode_operations;
-extern struct file_operations hfs_hdr_operations;
-extern const struct hfs_hdr_layout hfs_dbl_fil_hdr_layout;
-extern const struct hfs_hdr_layout hfs_dbl_dir_hdr_layout;
-extern const struct hfs_hdr_layout hfs_nat_hdr_layout;
-extern const struct hfs_hdr_layout hfs_nat2_hdr_layout;
-extern const struct hfs_hdr_layout hfs_sngl_hdr_layout;
-extern void hdr_truncate(struct inode *,size_t);
-
-/* inode.c */
-extern void hfs_put_inode(struct inode *);
-extern int hfs_notify_change(struct dentry *, struct iattr *);
-extern int hfs_notify_change_cap(struct dentry *, struct iattr *);
-extern int hfs_notify_change_hdr(struct dentry *, struct iattr *);
-extern struct inode *hfs_iget(struct hfs_cat_entry *, ino_t, struct dentry *);
-
-extern void hfs_cap_ifill(struct inode *, ino_t, const int);
-extern void hfs_dbl_ifill(struct inode *, ino_t, const int);
-extern void hfs_nat_ifill(struct inode *, ino_t, const int);
-extern void hfs_sngl_ifill(struct inode *, ino_t, const int);
-
-/* super.c */
-extern int hfs_fill_super(struct super_block *,void *,int);
-
-/* trans.c */
-extern void hfs_colon2mac(struct hfs_name *, const char *, int);
-extern void hfs_prcnt2mac(struct hfs_name *, const char *, int);
-extern void hfs_triv2mac(struct hfs_name *, const char *, int);
-extern void hfs_latin2mac(struct hfs_name *, const char *, int);
-extern int hfs_mac2cap(char *, const struct hfs_name *);
-extern int hfs_mac2nat(char *, const struct hfs_name *);
-extern int hfs_mac2latin(char *, const struct hfs_name *);
-extern int hfs_mac2seven(char *, const struct hfs_name *);
-extern int hfs_mac2eight(char *, const struct hfs_name *);
-extern int hfs_mac2alpha(char *, const struct hfs_name *);
-extern int hfs_mac2triv(char *, const struct hfs_name *);
-extern void hfs_tolower(unsigned char *, int);
-
-#include <linux/hfs_fs_i.h>
-#include <linux/hfs_fs_sb.h>
-
-static inline struct hfs_inode_info *HFS_I(struct inode *inode)
-{
- return container_of(inode, struct hfs_inode_info, vfs_inode);
-}
-
-static inline struct hfs_sb_info *HFS_SB(struct super_block *sb)
-{
- return sb->s_fs_info;
-}
-
-static inline void hfs_nameout(struct inode *dir, struct hfs_name *out,
- const char *in, int len) {
- HFS_SB(dir->i_sb)->s_nameout(out, in, len);
-}
-
-static inline int hfs_namein(struct inode *dir, char *out,
- const struct hfs_name *in) {
- int len = HFS_SB(dir->i_sb)->s_namein(out, in);
- if (HFS_SB(dir->i_sb)->s_lowercase) {
- hfs_tolower(out, len);
- }
- return len;
-}
-
-#endif /* __KERNEL__ */
-#endif
diff --git a/include/linux/hfs_fs_i.h b/include/linux/hfs_fs_i.h
deleted file mode 100644
index 119cc5200197..000000000000
--- a/include/linux/hfs_fs_i.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * linux/include/linux/hfs_fs_i.h
- *
- * Copyright (C) 1995, 1996 Paul H. Hargrove
- * This file may be distributed under the terms of the GNU General Public License.
- *
- * This file defines the type (struct hfs_inode_info) and the two
- * subordinate types hfs_extent and hfs_file.
- */
-
-#ifndef _LINUX_HFS_FS_I_H
-#define _LINUX_HFS_FS_I_H
-
-/*
- * struct hfs_inode_info
- *
- * The HFS-specific part of a Linux (struct inode)
- */
-struct hfs_inode_info {
- int magic; /* A magic number */
-
- loff_t mmu_private;
- struct hfs_cat_entry *entry;
-
- /* For a regular or header file */
- struct hfs_fork *fork;
- int convert;
-
- /* For a directory */
- ino_t file_type;
- char dir_size;
-
- /* For header files */
- const struct hfs_hdr_layout *default_layout;
- struct hfs_hdr_layout *layout;
-
- /* to deal with localtime ugliness */
- int tz_secondswest;
-
- /* for dentry cleanup */
- void (*d_drop_op)(struct dentry *, const ino_t);
- struct inode vfs_inode;
-};
-
-#endif
diff --git a/include/linux/hfs_fs_sb.h b/include/linux/hfs_fs_sb.h
deleted file mode 100644
index 037ebd428b91..000000000000
--- a/include/linux/hfs_fs_sb.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * linux/include/linux/hfs_fs_sb.h
- *
- * Copyright (C) 1995-1997 Paul H. Hargrove
- * This file may be distributed under the terms of the GNU General Public License.
- *
- * This file defines the type (struct hfs_sb_info) which contains the
- * HFS-specific information in the in-core superblock.
- */
-
-#ifndef _LINUX_HFS_FS_SB_H
-#define _LINUX_HFS_FS_SB_H
-
-/* forward declaration: */
-struct hfs_name;
-
-typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
-typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
-typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);
-
-/*
- * struct hfs_sb_info
- *
- * The HFS-specific part of a Linux (struct super_block)
- */
-struct hfs_sb_info {
- int magic; /* A magic number */
- struct hfs_mdb *s_mdb; /* The HFS MDB */
- int s_quiet; /* Silent failure when
- changing owner or mode? */
- int s_lowercase; /* Map names to lowercase? */
- int s_afpd; /* AFPD compatible mode? */
- int s_version; /* version info */
- hfs_namein_fn s_namein; /* The function used to
- map Mac filenames to
- Linux filenames */
- hfs_nameout_fn s_nameout; /* The function used to
- map Linux filenames
- to Mac filenames */
- hfs_ifill_fn s_ifill; /* The function used
- to fill in inode fields */
- const struct hfs_name *s_reserved1; /* Reserved names */
- const struct hfs_name *s_reserved2; /* Reserved names */
- __u32 s_type; /* Type for new files */
- __u32 s_creator; /* Creator for new files */
- umode_t s_umask; /* The umask applied to the
- permissions on all files */
- uid_t s_uid; /* The uid of all files */
- gid_t s_gid; /* The gid of all files */
- char s_conv; /* Type of text conversion */
-};
-
-#endif
diff --git a/include/linux/hfs_sysdep.h b/include/linux/hfs_sysdep.h
deleted file mode 100644
index 4c4e3eba0963..000000000000
--- a/include/linux/hfs_sysdep.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * linux/include/linux/hfs_sysdep.h
- *
- * Copyright (C) 1996-1997 Paul H. Hargrove
- * This file may be distributed under the terms of the GNU General Public License.
- *
- * This file contains constants, types and inline
- * functions for various system dependent things.
- *
- * "XXX" in a comment is a note to myself to consider changing something.
- *
- * In function preconditions the term "valid" applied to a pointer to
- * a structure means that the pointer is non-NULL and the structure it
- * points to has all fields initialized to consistent values.
- */
-
-#ifndef _HFS_SYSDEP_H
-#define _HFS_SYSDEP_H
-
-#include <linux/slab.h>
-#include <linux/types.h>
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/buffer_head.h>
-
-#include <asm/byteorder.h>
-#include <asm/unaligned.h>
-
-extern struct timezone sys_tz;
-
-/* Typedefs for integer types by size and signedness */
-typedef __u8 hfs_u8;
-typedef __u16 hfs_u16;
-typedef __u32 hfs_u32;
-typedef __s8 hfs_s8;
-typedef __s16 hfs_s16;
-typedef __s32 hfs_s32;
-
-/* Typedefs for unaligned integer types */
-typedef unsigned char hfs_byte_t;
-typedef unsigned char hfs_word_t[2];
-typedef unsigned char hfs_lword_t[4];
-
-/* these funny looking things are GCC variable argument macros */
-#define hfs_warn(format, args...) printk(KERN_WARNING format , ## args)
-#define hfs_error(format, args...) printk(KERN_ERR format , ## args)
-
-
-#if defined(DEBUG_ALL) || defined(DEBUG_MEM)
-extern long int hfs_alloc;
-#endif
-
-static inline void *hfs_malloc(unsigned int size) {
-#if defined(DEBUG_ALL) || defined(DEBUG_MEM)
- hfs_warn("%ld bytes allocation at %s:%u\n",
- (hfs_alloc += size), __FILE__, __LINE__);
-#endif
- return kmalloc(size, GFP_KERNEL);
-}
-
-static inline void hfs_free(void *ptr, unsigned int size) {
- kfree(ptr);
-#if defined(DEBUG_ALL) || defined(DEBUG_MEM)
- hfs_warn("%ld bytes allocation at %s:%u\n",
- (hfs_alloc -= ptr ? size : 0), __FILE__, __LINE__);
-#endif
-}
-
-
-/* handle conversion between times.
- *
- * NOTE: hfs+ doesn't need this. also, we don't use tz_dsttime as that's
- * not a good thing to do. instead, we depend upon tz_minuteswest
- * having the correct daylight savings correction.
- */
-static inline hfs_u32 hfs_from_utc(hfs_s32 time)
-{
- return time - sys_tz.tz_minuteswest*60;
-}
-
-static inline hfs_s32 hfs_to_utc(hfs_u32 time)
-{
- return time + sys_tz.tz_minuteswest*60;
-}
-
-static inline hfs_u32 hfs_time(void) {
- return htonl(hfs_from_utc(get_seconds())+2082844800U);
-}
-
-
-/*
- * hfs_wait_queue
- */
-typedef wait_queue_head_t hfs_wait_queue;
-
-static inline void hfs_init_waitqueue(hfs_wait_queue *queue) {
- init_waitqueue_head(queue);
-}
-
-static inline void hfs_sleep_on(hfs_wait_queue *queue) {
- sleep_on(queue);
-}
-
-static inline void hfs_wake_up(hfs_wait_queue *queue) {
- wake_up(queue);
-}
-
-static inline void hfs_relinquish(void) {
- schedule();
-}
-
-
-/*
- * hfs_sysmdb
- */
-typedef struct super_block *hfs_sysmdb;
-
-static inline void hfs_mdb_dirty(hfs_sysmdb sys_mdb) {
- sys_mdb->s_dirt = 1;
-}
-
-static inline const char *hfs_mdb_name(hfs_sysmdb sys_mdb) {
- return sys_mdb->s_id;
-}
-
-
-/*
- * hfs_sysentry
- */
-typedef struct dentry *hfs_sysentry[4];
-
-/*
- * hfs_buffer
- */
-typedef struct buffer_head *hfs_buffer;
-
-#define HFS_BAD_BUFFER NULL
-
-/* In sysdep.c, since it needs HFS_SECTOR_SIZE */
-extern hfs_buffer hfs_buffer_get(hfs_sysmdb, int, int);
-
-static inline int hfs_buffer_ok(hfs_buffer buffer) {
- return (buffer != NULL);
-}
-
-static inline void hfs_buffer_put(hfs_buffer buffer) {
- brelse(buffer);
-}
-
-static inline void hfs_buffer_dirty(hfs_buffer buffer) {
- mark_buffer_dirty(buffer);
-}
-
-static inline void hfs_buffer_sync(hfs_buffer buffer) {
- if (buffer_dirty(buffer))
- sync_dirty_buffer(buffer);
-}
-
-static inline void *hfs_buffer_data(const hfs_buffer buffer) {
- return buffer->b_data;
-}
-
-
-/*
- * bit operations
- */
-
-#undef BITNR
-#if defined(__BIG_ENDIAN)
-# define BITNR(X) ((X)^31)
-# if !defined(__constant_htonl)
-# define __constant_htonl(x) (x)
-# endif
-# if !defined(__constant_htons)
-# define __constant_htons(x) (x)
-# endif
-#elif defined(__LITTLE_ENDIAN)
-# define BITNR(X) ((X)^7)
-# if !defined(__constant_htonl)
-# define __constant_htonl(x) \
- ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
- (((unsigned long int)(x) & 0x0000ff00U) << 8) | \
- (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \
- (((unsigned long int)(x) & 0xff000000U) >> 24)))
-# endif
-# if !defined(__constant_htons)
-# define __constant_htons(x) \
- ((unsigned short int)((((unsigned short int)(x) & 0x00ff) << 8) | \
- (((unsigned short int)(x) & 0xff00) >> 8)))
-# endif
-#else
-# error "Don't know if bytes are big- or little-endian!"
-#endif
-
-static inline int hfs_clear_bit(int bitnr, hfs_u32 *lword) {
- return test_and_clear_bit(BITNR(bitnr), (unsigned long *)lword);
-}
-
-static inline int hfs_set_bit(int bitnr, hfs_u32 *lword) {
- return test_and_set_bit(BITNR(bitnr), (unsigned long *)lword);
-}
-
-static inline int hfs_test_bit(int bitnr, const hfs_u32 *lword) {
- /* the kernel should declare the second arg of test_bit as const */
- return test_bit(BITNR(bitnr), (unsigned long *)lword);
-}
-
-#undef BITNR
-
-/*
- * HFS structures have fields aligned to 16-bit boundaries.
- * So, 16-bit get/put are easy while 32-bit get/put need
- * some care on architectures like the DEC Alpha.
- *
- * In what follows:
- * ns = 16-bit integer in network byte-order w/ 16-bit alignment
- * hs = 16-bit integer in host byte-order w/ 16-bit alignment
- * nl = 32-bit integer in network byte-order w/ unknown alignment
- * hl = 32-bit integer in host byte-order w/ unknown alignment
- * anl = 32-bit integer in network byte-order w/ 32-bit alignment
- * ahl = 32-bit integer in host byte-order w/ 32-bit alignment
- * Example: hfs_get_hl() gets an unaligned 32-bit integer converting
- * it to host byte-order.
- */
-#define hfs_get_hs(addr) ntohs(*((hfs_u16 *)(addr)))
-#define hfs_get_ns(addr) (*((hfs_u16 *)(addr)))
-#define hfs_get_hl(addr) ntohl(get_unaligned((hfs_u32 *)(addr)))
-#define hfs_get_nl(addr) get_unaligned((hfs_u32 *)(addr))
-#define hfs_get_ahl(addr) ntohl(*((hfs_u32 *)(addr)))
-#define hfs_get_anl(addr) (*((hfs_u32 *)(addr)))
-#define hfs_put_hs(val, addr) ((void)(*((hfs_u16 *)(addr)) = ntohs(val)))
-#define hfs_put_ns(val, addr) ((void)(*((hfs_u16 *)(addr)) = (val)))
-#define hfs_put_hl(val, addr) put_unaligned(htonl(val), (hfs_u32 *)(addr))
-#define hfs_put_nl(val, addr) put_unaligned((val), (hfs_u32 *)(addr))
-#define hfs_put_ahl(val, addr) ((void)(*((hfs_u32 *)(addr)) = ntohl(val)))
-#define hfs_put_anl(val, addr) ((void)(*((hfs_u32 *)(addr)) = (val)))
-
-#endif
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 44c824b50c3c..d166358e626c 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -224,7 +224,7 @@ typedef unsigned char byte; /* used everywhere */
* allowing each to have about 256 entries (8 bytes each) from this.
*/
#define PRD_BYTES 8
-#define PRD_ENTRIES (PAGE_SIZE / (2 * PRD_BYTES))
+#define PRD_ENTRIES 256
/*
* Some more useful definitions
diff --git a/include/linux/ioctl32.h b/include/linux/ioctl32.h
index d03489f00793..e5bff65d3074 100644
--- a/include/linux/ioctl32.h
+++ b/include/linux/ioctl32.h
@@ -3,8 +3,6 @@
struct file;
-extern long sys_ioctl(unsigned int, unsigned int, unsigned long);
-
/*
* Register an 32bit ioctl translation handler for ioctl cmd.
*
diff --git a/include/linux/isicom.h b/include/linux/isicom.h
index c24383215978..a5a3eea548e8 100644
--- a/include/linux/isicom.h
+++ b/include/linux/isicom.h
@@ -73,7 +73,6 @@ typedef struct {
#define PORT_COUNT (BOARD_COUNT*16)
#define SERIAL_TYPE_NORMAL 1
-#define SERIAL_TYPE_CALLOUT 2
/* character sizes */
diff --git a/include/linux/jhash.h b/include/linux/jhash.h
index 83f6af2ebcaa..82c7ae412eec 100644
--- a/include/linux/jhash.h
+++ b/include/linux/jhash.h
@@ -41,10 +41,10 @@
* of bytes. No alignment or length assumptions are made about
* the input key.
*/
-static inline u32 jhash(void *key, u32 length, u32 initval)
+static inline u32 jhash(const void *key, u32 length, u32 initval)
{
u32 a, b, c, len;
- u8 *k = key;
+ const u8 *k = key;
len = length;
a = b = JHASH_GOLDEN_RATIO;
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index d2a90b7766a1..87b9bbbb485e 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -8,6 +8,9 @@
#include <linux/config.h>
#ifdef CONFIG_KALLSYMS
+/* Lookup the address for a symbol. Returns 0 if not found. */
+unsigned long kallsyms_lookup_name(const char *name);
+
/* Lookup an address. modname is set to NULL if it's in the kernel. */
const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
@@ -19,6 +22,11 @@ extern void __print_symbol(const char *fmt, unsigned long address);
#else /* !CONFIG_KALLSYMS */
+static inline unsigned long kallsyms_lookup_name(const char *name)
+{
+ return 0;
+}
+
static inline const char *kallsyms_lookup(unsigned long addr,
unsigned long *symbolsize,
unsigned long *offset,
diff --git a/include/linux/libata.h b/include/linux/libata.h
index deddc267392c..37d958f2554e 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -70,6 +70,7 @@
enum {
/* various global constants */
+ LIBATA_MAX_PRD = ATA_MAX_PRD / 2,
ATA_MAX_PORTS = 8,
ATA_DEF_QUEUE = 1,
ATA_MAX_QUEUE = 1,
diff --git a/include/linux/major.h b/include/linux/major.h
index 39a77a2c7035..61fbc15f613b 100644
--- a/include/linux/major.h
+++ b/include/linux/major.h
@@ -126,6 +126,9 @@
#define COMPAQ_CISS_MAJOR6 110
#define COMPAQ_CISS_MAJOR7 111
+#define VIODASD_MAJOR 112
+#define VIOCD_MAJOR 113
+
#define ATARAID_MAJOR 114
#define SCSI_DISK8_MAJOR 128
diff --git a/include/linux/mm.h b/include/linux/mm.h
index d21630b8f96d..d9c541550efd 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -455,8 +455,6 @@ extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, un
extern int handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access);
extern int make_pages_present(unsigned long addr, unsigned long end);
extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
-extern long sys_remap_file_pages(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long nonblock);
-extern long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
void put_dirty_page(struct task_struct *tsk, struct page *page,
unsigned long address, pgprot_t prot);
diff --git a/include/linux/module.h b/include/linux/module.h
index 95cbc9b4936f..4c9b53d5d51c 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -127,6 +127,24 @@ extern const struct gtype##_id __mod_##gtype##_table \
#define MODULE_DEVICE_TABLE(type,name) \
MODULE_GENERIC_TABLE(type##_device,name)
+/* Version of form [<epoch>:]<version>[-<extra-version>].
+ Or for CVS/RCS ID version, everything but the number is stripped.
+ <epoch>: A (small) unsigned integer which allows you to start versions
+ anew. If not mentioned, it's zero. eg. "2:1.0" is after
+ "1:2.0".
+ <version>: The <version> may contain only alphanumerics and the
+ character `.'. Ordered by numeric sort for numeric parts,
+ ascii sort for ascii parts (as per RPM or DEB algorithm).
+ <extraversion>: Like <version>, but inserted for local
+ customizations, eg "rh3" or "rusty1".
+
+ Using this automatically adds a checksum of the .c files and the
+ local headers to the end. Use MODULE_VERSION("") if you want just
+ this. Macro includes room for this.
+*/
+#define MODULE_VERSION(_version) \
+ MODULE_INFO(version, _version "\0xxxxxxxxxxxxxxxxxxxxxxxx")
+
/* Given an address, look for it in the exception tables */
const struct exception_table_entry *search_exception_tables(unsigned long add);
@@ -282,6 +300,10 @@ struct module *module_get_kallsym(unsigned int symnum,
unsigned long *value,
char *type,
char namebuf[128]);
+
+/* Look for this name: can be of form module:name. */
+unsigned long module_kallsyms_lookup_name(const char *name);
+
int is_exported(const char *name, const struct module *mod);
extern void __module_put_and_exit(struct module *mod, long code)
@@ -434,6 +456,11 @@ static inline struct module *module_get_kallsym(unsigned int symnum,
return NULL;
}
+static inline unsigned long module_kallsyms_lookup_name(const char *name)
+{
+ return 0;
+}
+
static inline int is_exported(const char *name, const struct module *mod)
{
return 0;
diff --git a/include/linux/msg.h b/include/linux/msg.h
index 56a3f89602c3..b235e862a3dd 100644
--- a/include/linux/msg.h
+++ b/include/linux/msg.h
@@ -94,11 +94,6 @@ struct msg_queue {
struct list_head q_senders;
};
-asmlinkage long sys_msgget (key_t key, int msgflg);
-asmlinkage long sys_msgsnd (int msqid, struct msgbuf __user *msgp, size_t msgsz, int msgflg);
-asmlinkage long sys_msgrcv (int msqid, struct msgbuf __user *msgp, size_t msgsz, long msgtyp, int msgflg);
-asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf);
-
#endif /* __KERNEL__ */
#endif /* _LINUX_MSG_H */
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index ebc9426684ba..fd5ae72d8ae9 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -525,11 +525,6 @@ extern struct net_device *__dev_get_by_flags(unsigned short flags,
unsigned short mask);
extern struct net_device *dev_get_by_name(const char *name);
extern struct net_device *__dev_get_by_name(const char *name);
-extern struct net_device *__dev_alloc(const char *name, int *err);
-static inline __deprecated struct net_device *dev_alloc(const char *name, int *err)
-{
- return __dev_alloc(name, err);
-}
extern int dev_alloc_name(struct net_device *dev, const char *name);
extern int dev_open(struct net_device *dev);
extern int dev_close(struct net_device *dev);
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_amanda.h b/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
index 50726ea6b641..75ee293bd088 100644
--- a/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
+++ b/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
@@ -2,20 +2,11 @@
#define _IP_CONNTRACK_AMANDA_H
/* AMANDA tracking. */
-#ifdef __KERNEL__
-
-#include <linux/netfilter_ipv4/lockhelp.h>
-
-/* Protects amanda part of conntracks */
-DECLARE_LOCK_EXTERN(ip_amanda_lock);
-
-#endif
-
struct ip_ct_amanda_expect
{
u_int16_t port; /* port number of this expectation */
- u_int16_t offset; /* offset of the port specification in ctrl packet */
- u_int16_t len; /* the length of the port number specification */
+ u_int16_t offset; /* offset of port in ctrl packet */
+ u_int16_t len; /* length of the port number string */
};
#endif /* _IP_CONNTRACK_AMANDA_H */
diff --git a/include/linux/nfs.h b/include/linux/nfs.h
index 64e8b9b4d39e..b30265f03e00 100644
--- a/include/linux/nfs.h
+++ b/include/linux/nfs.h
@@ -92,7 +92,7 @@
NFSERR_NOT_SAME = 10027, /* v4 */
NFSERR_LOCK_RANGE = 10028, /* v4 */
NFSERR_SYMLINK = 10029, /* v4 */
- NFSERR_READDIR_NOSPC = 10030, /* v4 */
+ NFSERR_RESTOREFH = 10030, /* v4 */
NFSERR_LEASE_MOVED = 10031, /* v4 */
NFSERR_ATTRNOTSUPP = 10032, /* v4 */
NFSERR_NO_GRACE = 10033, /* v4 */
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h
index 35baf20a5b5c..e8ea2239a213 100644
--- a/include/linux/nfs4.h
+++ b/include/linux/nfs4.h
@@ -37,6 +37,7 @@
#define NFS4_SHARE_ACCESS_BOTH 0x0003
#define NFS4_SHARE_DENY_READ 0x0001
#define NFS4_SHARE_DENY_WRITE 0x0002
+#define NFS4_SHARE_DENY_BOTH 0x0003
#define NFS4_SET_TO_SERVER_TIME 0
#define NFS4_SET_TO_CLIENT_TIME 1
@@ -86,6 +87,8 @@ enum nfs_opnum4 {
OP_SETCLIENTID_CONFIRM = 36,
OP_VERIFY = 37,
OP_WRITE = 38,
+ OP_RELEASE_LOCKOWNER = 39,
+ OP_ILLEGAL = 10044,
};
enum nfsstat4 {
diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h
index 9a23efb48ec5..6e6a66208308 100644
--- a/include/linux/nfsd/nfsd.h
+++ b/include/linux/nfsd/nfsd.h
@@ -190,9 +190,12 @@ void nfsd_lockd_shutdown(void);
#define nfserr_bad_seqid __constant_htonl(NFSERR_BAD_SEQID)
#define nfserr_symlink __constant_htonl(NFSERR_SYMLINK)
#define nfserr_not_same __constant_htonl(NFSERR_NOT_SAME)
-#define nfserr_readdir_nospc __constant_htonl(NFSERR_READDIR_NOSPC)
+#define nfserr_restorefh __constant_htonl(NFSERR_RESTOREFH)
+#define nfserr_attrnotsupp __constant_htonl(NFSERR_ATTRNOTSUPP)
#define nfserr_bad_xdr __constant_htonl(NFSERR_BAD_XDR)
#define nfserr_openmode __constant_htonl(NFSERR_OPENMODE)
+#define nfserr_locks_held __constant_htonl(NFSERR_LOCKS_HELD)
+#define nfserr_op_illegal __constant_htonl(NFSERR_OP_ILLEGAL)
/* error codes for internal use */
/* if a request fails due to kmalloc failure, it gets dropped.
diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h
index 7a0ff0c14337..06281634b083 100644
--- a/include/linux/nfsd/nfsfh.h
+++ b/include/linux/nfsd/nfsfh.h
@@ -209,14 +209,6 @@ fh_copy(struct svc_fh *dst, struct svc_fh *src)
return dst;
}
-static __inline__ void
-fh_dup2(struct svc_fh *dst, struct svc_fh *src)
-{
- fh_put(dst);
- dget(src->fh_dentry);
- *dst = *src;
-}
-
static __inline__ struct svc_fh *
fh_init(struct svc_fh *fhp, int maxsize)
{
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h
index b48b36201585..4598b9756668 100644
--- a/include/linux/nfsd/state.h
+++ b/include/linux/nfsd/state.h
@@ -113,6 +113,8 @@ struct nfs4_replay {
unsigned int rp_buflen;
char *rp_buf;
unsigned intrp_allocated;
+ int rp_openfh_len;
+ char rp_openfh[NFS4_FHSIZE];
char rp_ibuf[NFSD4_REPLAY_ISIZE];
};
@@ -128,12 +130,15 @@ struct nfs4_replay {
* so_perfilestate: heads the list of nfs4_stateid (either open or lock)
* and is used to ensure no dangling nfs4_stateid references when we
* release a stateowner.
+* so_perlockowner: (open) nfs4_stateid->st_perlockowner entry - used when
+* close is called to reap associated byte-range locks
*/
struct nfs4_stateowner {
struct list_head so_idhash; /* hash by so_id */
struct list_head so_strhash; /* hash by op_name */
struct list_head so_perclient; /* nfs4_client->cl_perclient */
struct list_head so_perfilestate; /* list: nfs4_stateid */
+ struct list_head so_perlockowner; /* nfs4_stateid->st_perlockowner */
int so_is_open_owner; /* 1=openowner,0=lockowner */
u32 so_id;
struct nfs4_client * so_client;
@@ -164,21 +169,23 @@ struct nfs4_file {
* st_hash: stateid_hashtbl[] entry or lockstateid_hashtbl entry
* st_perfile: file_hashtbl[] entry.
* st_perfile_state: nfs4_stateowner->so_perfilestate
-* st_share_access: used only for open stateid
-* st_share_deny: used only for open stateid
+* st_perlockowner: (open stateid) list of lock nfs4_stateowners
+* st_access_bmap: used only for open stateid
+* st_deny_bmap: used only for open stateid
*/
struct nfs4_stateid {
struct list_head st_hash;
struct list_head st_perfile;
struct list_head st_perfilestate;
+ struct list_head st_perlockowner;
struct nfs4_stateowner * st_stateowner;
struct nfs4_file * st_file;
stateid_t st_stateid;
struct file st_vfs_file;
int st_vfs_set;
- unsigned int st_share_access;
- unsigned int st_share_deny;
+ unsigned long st_access_bmap;
+ unsigned long st_deny_bmap;
};
/* flags for preprocess_seqid_op() */
diff --git a/include/linux/nfsd/syscall.h b/include/linux/nfsd/syscall.h
index b6fa4d1839e3..e65c9db6d13f 100644
--- a/include/linux/nfsd/syscall.h
+++ b/include/linux/nfsd/syscall.h
@@ -115,7 +115,6 @@ union nfsctl_res {
/*
* Kernel syscall implementation.
*/
-extern asmlinkage long sys_nfsservctl(int, struct nfsctl_arg __user *, void __user *);
extern int exp_addclient(struct nfsctl_client *ncp);
extern int exp_delclient(struct nfsctl_client *ncp);
extern int exp_export(struct nfsctl_export *nxp);
diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h
index 5140f2061b30..df35cb397dc6 100644
--- a/include/linux/nfsd/xdr4.h
+++ b/include/linux/nfsd/xdr4.h
@@ -54,10 +54,10 @@ typedef struct {
struct nfsd4_change_info {
u32 atomic;
- u32 before_size;
- u32 before_ctime;
- u32 after_size;
- u32 after_ctime;
+ u32 before_ctime_sec;
+ u32 before_ctime_nsec;
+ u32 after_ctime_sec;
+ u32 after_ctime_nsec;
};
struct nfsd4_access {
@@ -263,6 +263,10 @@ struct nfsd4_readdir {
u32 * offset;
};
+struct nfsd4_release_lockowner {
+ clientid_t rl_clientid;
+ struct xdr_netobj rl_owner;
+};
struct nfsd4_readlink {
struct svc_rqst *rl_rqstp; /* request */
struct svc_fh * rl_fhp; /* request */
@@ -359,6 +363,7 @@ struct nfsd4_op {
struct nfsd4_setclientid_confirm setclientid_confirm;
struct nfsd4_verify verify;
struct nfsd4_write write;
+ struct nfsd4_release_lockowner release_lockowner;
} u;
struct nfs4_replay * replay;
};
@@ -375,7 +380,9 @@ struct nfsd4_compoundargs {
struct tmpbuf *next;
void *buf;
} *to_free;
-
+
+ struct svc_rqst *rqstp;
+
u32 taglen;
char * tag;
u32 minorversion;
@@ -404,10 +411,10 @@ set_change_info(struct nfsd4_change_info *cinfo, struct svc_fh *fhp)
{
BUG_ON(!fhp->fh_pre_saved || !fhp->fh_post_saved);
cinfo->atomic = 1;
- cinfo->before_size = fhp->fh_pre_size;
- cinfo->before_ctime = fhp->fh_pre_ctime.tv_sec;
- cinfo->after_size = fhp->fh_post_size;
- cinfo->after_ctime = fhp->fh_post_ctime.tv_sec;
+ cinfo->before_ctime_sec = fhp->fh_pre_ctime.tv_sec;
+ cinfo->before_ctime_nsec = fhp->fh_pre_ctime.tv_nsec;
+ cinfo->after_ctime_sec = fhp->fh_post_ctime.tv_sec;
+ cinfo->after_ctime_nsec = fhp->fh_post_ctime.tv_nsec;
}
int nfs4svc_encode_voidres(struct svc_rqst *, u32 *, void *);
@@ -419,7 +426,7 @@ void nfsd4_encode_operation(struct nfsd4_compoundres *, struct nfsd4_op *);
void nfsd4_encode_replay(struct nfsd4_compoundres *resp, struct nfsd4_op *op);
int nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp,
struct dentry *dentry, u32 *buffer, int *countp,
- u32 *bmval);
+ u32 *bmval, struct svc_rqst *);
extern int nfsd4_setclientid(struct svc_rqst *rqstp,
struct nfsd4_setclientid *setclid);
extern int nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
@@ -439,6 +446,9 @@ extern int nfsd4_lockt(struct svc_rqst *rqstp, struct svc_fh *current_fh,
struct nfsd4_lockt *lockt);
extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh,
struct nfsd4_locku *locku);
+extern int
+nfsd4_release_lockowner(struct svc_rqst *rqstp,
+ struct nfsd4_release_lockowner *rlockowner);
#endif
/*
diff --git a/include/linux/nfsd_idmap.h b/include/linux/nfsd_idmap.h
new file mode 100644
index 000000000000..9bb7f30e923b
--- /dev/null
+++ b/include/linux/nfsd_idmap.h
@@ -0,0 +1,54 @@
+/*
+ * include/linux/nfsd_idmap.h
+ *
+ * Mapping of UID to name and vice versa.
+ *
+ * Copyright (c) 2002, 2003 The Regents of the University of
+ * Michigan. All rights reserved.
+> *
+ * Marius Aamodt Eriksen <marius@umich.edu>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef LINUX_NFSD_IDMAP_H
+#define LINUX_NFSD_IDMAP_H
+
+#include <linux/in.h>
+#include <linux/sunrpc/svc.h>
+
+/* XXX from linux/nfs_idmap.h */
+#define IDMAP_NAMESZ 128
+
+void nfsd_idmap_init(void);
+void nfsd_idmap_shutdown(void);
+
+int nfsd_map_name_to_uid(struct svc_rqst *, const char *, size_t, __u32 *);
+int nfsd_map_name_to_gid(struct svc_rqst *, const char *, size_t, __u32 *);
+int nfsd_map_uid_to_name(struct svc_rqst *, __u32, char *);
+int nfsd_map_gid_to_name(struct svc_rqst *, __u32, char *);
+
+#endif /* LINUX_NFSD_IDMAP_H */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 4a1c573bf04f..04e8ae630629 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1050,6 +1050,8 @@
#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
#define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
+#define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1
+#define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1
#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
@@ -1928,6 +1930,7 @@
#define PCI_DEVICE_ID_GENROCO_HFP832 0x0003
#define PCI_VENDOR_ID_INTEL 0x8086
+#define PCI_DEVICE_ID_INTEL_EESSC 0x0008
#define PCI_DEVICE_ID_INTEL_21145 0x0039
#define PCI_DEVICE_ID_INTEL_82375 0x0482
#define PCI_DEVICE_ID_INTEL_82424 0x0483
@@ -2051,6 +2054,10 @@
#define PCI_DEVICE_ID_INTEL_82865_IG 0x2572
#define PCI_DEVICE_ID_INTEL_82875_HB 0x2578
#define PCI_DEVICE_ID_INTEL_82875_IG 0x257b
+#define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640
+#define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641
+#define PCI_DEVICE_ID_INTEL_ICH6_2 0x266f
+#define PCI_DEVICE_ID_INTEL_ICH6_3 0x266e
#define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340
#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575
#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
index 0bd40fb2048f..a7ad90136d64 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -7,6 +7,7 @@
*/
#include <linux/config.h>
+#include <linux/linkage.h>
#define preempt_count() (current_thread_info()->preempt_count)
@@ -22,7 +23,7 @@ do { \
#ifdef CONFIG_PREEMPT
-extern void preempt_schedule(void);
+asmlinkage void preempt_schedule(void);
#define preempt_disable() \
do { \
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 40170aa312a1..9dd6606bb9cc 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -610,8 +610,6 @@ extern void FASTCALL(wake_up_forked_process(struct task_struct * tsk));
extern void FASTCALL(sched_fork(task_t * p));
extern void FASTCALL(sched_exit(task_t * p));
-asmlinkage long sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru);
-
extern int in_group_p(gid_t);
extern int in_egroup_p(gid_t);
@@ -735,8 +733,6 @@ extern task_t *child_reaper;
extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *);
extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
extern struct task_struct * copy_process(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *);
-extern asmlinkage long sys_sched_setscheduler(pid_t pid, int policy,
- struct sched_param __user *parm);
#ifdef CONFIG_SMP
extern void wait_task_inactive(task_t * p);
diff --git a/include/linux/sem.h b/include/linux/sem.h
index 6e13e5efc163..b337c509ac29 100644
--- a/include/linux/sem.h
+++ b/include/linux/sem.h
@@ -134,12 +134,6 @@ struct sysv_sem {
struct sem_undo_list *undo_list;
};
-asmlinkage long sys_semget (key_t key, int nsems, int semflg);
-asmlinkage long sys_semop (int semid, struct sembuf __user *sops, unsigned nsops);
-asmlinkage long sys_semctl (int semid, int semnum, int cmd, union semun arg);
-asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
- unsigned nsops, const struct timespec __user *timeout);
-
void exit_sem(struct task_struct *p);
#endif /* __KERNEL__ */
diff --git a/include/linux/serial.h b/include/linux/serial.h
index 465f19a0d53d..9a07d00106f9 100644
--- a/include/linux/serial.h
+++ b/include/linux/serial.h
@@ -131,7 +131,6 @@ struct serial_uart_config {
/* Internal flags used only by kernel/chr_drv/serial.c */
#define ASYNC_INITIALIZED 0x80000000 /* Serial port was initialized */
-#define ASYNC_CALLOUT_ACTIVE 0x40000000 /* Call out device is active */
#define ASYNC_NORMAL_ACTIVE 0x20000000 /* Normal device is active */
#define ASYNC_BOOT_AUTOCONF 0x10000000 /* Autoconfigure port on bootup */
#define ASYNC_CLOSING 0x08000000 /* Serial port is closing */
diff --git a/include/linux/shm.h b/include/linux/shm.h
index 1f2b5ee10897..9a00f5ff6c58 100644
--- a/include/linux/shm.h
+++ b/include/linux/shm.h
@@ -100,9 +100,6 @@ static inline long do_shmat(int shmid, char __user *shmaddr,
return -ENOSYS;
}
#endif
-asmlinkage long sys_shmget (key_t key, size_t size, int flag);
-asmlinkage long sys_shmdt (char __user *shmaddr);
-asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf);
#endif /* __KERNEL__ */
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 0010dee5f9a2..3a18d6e0a51d 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -245,10 +245,6 @@ struct ucred {
#define MSG_CMSG_COMPAT 0 /* We never have 32 bit fixups */
#endif
-extern asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags);
-extern asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags);
-
-
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
#define SOL_IP 0
diff --git a/include/linux/sunrpc/auth_gss.h b/include/linux/sunrpc/auth_gss.h
index 1006c4fd6a99..adaff41d3a5e 100644
--- a/include/linux/sunrpc/auth_gss.h
+++ b/include/linux/sunrpc/auth_gss.h
@@ -62,8 +62,6 @@ struct rpc_gss_init_res {
struct xdr_netobj gr_token; /* token */
};
-#define GSS_SEQ_WIN 5
-
/* The gss_cl_ctx struct holds all the information the rpcsec_gss client
* code needs to know about a single security context. In particular,
* gc_gss_ctx is the context handle that is used to do gss-api calls, while
diff --git a/include/linux/sunrpc/gss_api.h b/include/linux/sunrpc/gss_api.h
index cbb60ac22fd4..e24f9c0bafd1 100644
--- a/include/linux/sunrpc/gss_api.h
+++ b/include/linux/sunrpc/gss_api.h
@@ -120,6 +120,9 @@ int gss_mech_unregister_all(void);
* reference count. */
struct gss_api_mech * gss_mech_get_by_OID(struct xdr_netobj *);
+/* Similar, but get by name like "krb5", "spkm", etc., instead of OID. */
+struct gss_api_mech *gss_mech_get_by_name(char *);
+
/* Just increments the mechanism's reference count and returns its input: */
struct gss_api_mech * gss_mech_get(struct gss_api_mech *);
diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
index 8886ee64fe69..980f2a4e4899 100644
--- a/include/linux/sunrpc/svc.h
+++ b/include/linux/sunrpc/svc.h
@@ -135,6 +135,7 @@ struct svc_rqst {
void * rq_argp; /* decoded arguments */
void * rq_resp; /* xdr'd results */
+ void * rq_auth_data; /* flavor-specific data */
int rq_reserved; /* space on socket outq
* reserved for this request
diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h
index 51c14facffe3..36bcc5ed72d0 100644
--- a/include/linux/sunrpc/svcauth.h
+++ b/include/linux/sunrpc/svcauth.h
@@ -20,7 +20,7 @@
struct svc_cred {
uid_t cr_uid;
gid_t cr_gid;
- gid_t cr_groups[SVC_CRED_NGROUPS];
+ struct group_info *cr_group_info;
};
struct svc_rqst; /* forward decl */
@@ -66,6 +66,10 @@ struct auth_domain {
* GARBAGE - rpc garbage_args error
* SYSERR - rpc system_err error
* DENIED - authp holds reason for denial.
+ * COMPLETE - the reply is encoded already and ready to be sent; no
+ * further processing is necessary. (This is used for processing
+ * null procedure calls which are used to set up encryption
+ * contexts.)
*
* accept is passed the proc number so that it can accept NULL rpc requests
* even if it cannot authenticate the client (as is sometimes appropriate).
@@ -98,6 +102,7 @@ extern struct auth_ops *authtab[RPC_AUTH_MAXFLAVOR];
#define SVC_DROP 6
#define SVC_DENIED 7
#define SVC_PENDING 8
+#define SVC_COMPLETE 9
extern int svc_authenticate(struct svc_rqst *rqstp, u32 *authp);
diff --git a/include/linux/sunrpc/svcauth_gss.h b/include/linux/sunrpc/svcauth_gss.h
new file mode 100644
index 000000000000..73ca6ef2c4a8
--- /dev/null
+++ b/include/linux/sunrpc/svcauth_gss.h
@@ -0,0 +1,35 @@
+/*
+ * linux/include/linux/svcauth_gss.h
+ *
+ * Bruce Fields <bfields@umich.edu>
+ * Copyright (c) 2002 The Regents of the Unviersity of Michigan
+ *
+ * $Id$
+ *
+ */
+
+#ifndef _LINUX_SUNRPC_SVCAUTH_GSS_H
+#define _LINUX_SUNRPC_SVCAUTH_GSS_H
+
+#ifdef __KERNEL__
+#include <linux/sched.h>
+#include <linux/sunrpc/types.h>
+#include <linux/sunrpc/xdr.h>
+#include <linux/sunrpc/svcauth.h>
+#include <linux/sunrpc/svcsock.h>
+#include <linux/sunrpc/auth_gss.h>
+
+int gss_svc_init(void);
+int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name);
+
+
+struct gss_svc_data {
+ /* decoded gss client cred: */
+ struct rpc_gss_wire_cred clcred;
+ /* pointer to the beginning of the procedure-specific results, which
+ * may be encrypted/checksummed in svcauth_gss_release: */
+ u32 *body_start;
+};
+
+#endif /* __KERNEL__ */
+#endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index d0cdc77fa44e..810947658d59 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -81,4 +81,10 @@ static inline void thaw_processes(void)
}
#endif /* CONFIG_PM */
+asmlinkage void do_magic(int is_resume);
+asmlinkage void do_magic_resume_1(void);
+asmlinkage void do_magic_resume_2(void);
+asmlinkage void do_magic_suspend_1(void);
+asmlinkage void do_magic_suspend_2(void);
+
#endif /* _LINUX_SWSUSP_H */
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
new file mode 100644
index 000000000000..6355db655a7f
--- /dev/null
+++ b/include/linux/syscalls.h
@@ -0,0 +1,476 @@
+/*
+ * syscalls.h - Linux syscall interfaces (non-arch-specific)
+ *
+ * Copyright (c) 2004 Randy Dunlap
+ * Copyright (c) 2004 Open Source Development Labs
+ *
+ * This file is released under the GPLv2.
+ * See the file COPYING for more details.
+ */
+
+#ifndef _LINUX_SYSCALLS_H
+#define _LINUX_SYSCALLS_H
+
+struct epoll_event;
+struct iattr;
+struct inode;
+struct iocb;
+struct io_event;
+struct iovec;
+struct itimerspec;
+struct itimerval;
+struct linux_dirent;
+struct linux_dirent64;
+struct list_head;
+struct msgbuf;
+struct msghdr;
+struct msqid_ds;
+struct new_utsname;
+struct nfsctl_arg;
+struct __old_kernel_stat;
+struct pollfd;
+struct rlimit;
+struct rusage;
+struct sched_param;
+struct semaphore;
+struct sembuf;
+struct shmid_ds;
+struct sockaddr;
+struct stat;
+struct stat64;
+struct statfs;
+struct statfs64;
+struct __sysctl_args;
+struct sysinfo;
+struct timespec;
+struct timeval;
+struct timex;
+struct timezone;
+struct tms;
+struct utimbuf;
+
+#include <linux/config.h>
+#include <linux/types.h>
+#include <linux/aio_abi.h>
+#include <linux/capability.h>
+#include <linux/list.h>
+#include <linux/sem.h>
+#include <asm/semaphore.h>
+#include <asm/siginfo.h>
+#include <asm/signal.h>
+#include <linux/quota.h>
+
+asmlinkage long sys_time(int *tloc);
+asmlinkage long sys_stime(time_t *tptr);
+asmlinkage long sys_gettimeofday(struct timeval __user *tv,
+ struct timezone __user *tz);
+asmlinkage long sys_settimeofday(struct timeval __user *tv,
+ struct timezone __user *tz);
+asmlinkage long sys_adjtimex(struct timex __user *txc_p);
+
+asmlinkage long sys_times(struct tms __user *tbuf);
+
+asmlinkage long sys_gettid(void);
+asmlinkage long sys_nanosleep(struct timespec *rqtp, struct timespec *rmtp);
+asmlinkage unsigned long sys_alarm(unsigned int seconds);
+asmlinkage long sys_getpid(void);
+asmlinkage long sys_getppid(void);
+asmlinkage long sys_getuid(void);
+asmlinkage long sys_geteuid(void);
+asmlinkage long sys_getgid(void);
+asmlinkage long sys_getegid(void);
+asmlinkage long sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
+asmlinkage long sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
+asmlinkage long sys_getpgid(pid_t pid);
+asmlinkage long sys_getpgrp(void);
+asmlinkage long sys_getsid(pid_t pid);
+asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist);
+
+asmlinkage long sys_setregid(gid_t rgid, gid_t egid);
+asmlinkage long sys_setgid(gid_t gid);
+asmlinkage long sys_setreuid(uid_t ruid, uid_t euid);
+asmlinkage long sys_setuid(uid_t uid);
+asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid);
+asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid);
+asmlinkage long sys_setfsuid(uid_t uid);
+asmlinkage long sys_setfsgid(gid_t gid);
+asmlinkage long sys_setpgid(pid_t pid, pid_t pgid);
+asmlinkage long sys_setsid(void);
+asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist);
+
+asmlinkage long sys_acct(const char *name);
+asmlinkage long sys_capget(cap_user_header_t header,
+ cap_user_data_t dataptr);
+asmlinkage long sys_capset(cap_user_header_t header,
+ const cap_user_data_t data);
+asmlinkage long sys_personality(u_long personality);
+
+asmlinkage long sys_sigpending(old_sigset_t __user *set);
+asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set,
+ old_sigset_t __user *oset);
+asmlinkage long sys_getitimer(int which, struct itimerval __user *value);
+asmlinkage long sys_setitimer(int which,
+ struct itimerval __user *value,
+ struct itimerval __user *ovalue);
+asmlinkage long sys_timer_gettime(timer_t timer_id,
+ struct itimerspec __user *setting);
+asmlinkage long sys_timer_getoverrun(timer_t timer_id);
+asmlinkage long sys_timer_settime(timer_t timer_id, int flags,
+ const struct itimerspec __user *new_setting,
+ struct itimerspec __user *old_setting);
+asmlinkage long sys_timer_delete(timer_t timer_id);
+asmlinkage long sys_clock_settime(clockid_t which_clock,
+ const struct timespec __user *tp);
+asmlinkage long sys_clock_gettime(clockid_t which_clock,
+ struct timespec __user *tp);
+asmlinkage long sys_clock_getres(clockid_t which_clock,
+ struct timespec __user *tp);
+asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags,
+ const struct timespec __user *rqtp,
+ struct timespec __user *rmtp);
+
+asmlinkage long sys_nice(int increment);
+asmlinkage long sys_sched_setscheduler(pid_t pid, int policy,
+ struct sched_param __user *param);
+asmlinkage long sys_sched_setparam(pid_t pid,
+ struct sched_param __user *param);
+asmlinkage long sys_sched_getscheduler(pid_t pid);
+asmlinkage long sys_sched_getparam(pid_t pid,
+ struct sched_param __user *param);
+asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
+ unsigned long __user *user_mask_ptr);
+asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
+ unsigned long __user *user_mask_ptr);
+asmlinkage long sys_sched_yield(void);
+asmlinkage long sys_sched_get_priority_max(int policy);
+asmlinkage long sys_sched_get_priority_min(int policy);
+asmlinkage long sys_sched_rr_get_interval(pid_t pid,
+ struct timespec __user *interval);
+asmlinkage long sys_setpriority(int which, int who, int niceval);
+asmlinkage long sys_getpriority(int which, int who);
+
+asmlinkage long sys_shutdown(int, int);
+asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd,
+ void __user *arg);
+asmlinkage long sys_restart_syscall(void);
+
+asmlinkage long sys_exit(int error_code);
+asmlinkage void sys_exit_group(int error_code);
+asmlinkage long sys_wait4(pid_t pid, unsigned int *stat_addr,
+ int options, struct rusage *ru);
+asmlinkage long sys_waitpid(pid_t pid, unsigned int *stat_addr, int options);
+asmlinkage long sys_set_tid_address(int __user *tidptr);
+asmlinkage long sys_futex(u32 __user *uaddr, int op, int val,
+ struct timespec __user *utime, u32 __user *uaddr2);
+
+asmlinkage long sys_init_module(void __user *umod, unsigned long len,
+ const char __user *uargs);
+asmlinkage long sys_delete_module(const char __user *name_user,
+ unsigned int flags);
+
+asmlinkage long sys_rt_sigprocmask(int how, sigset_t __user *set,
+ sigset_t __user *oset, size_t sigsetsize);
+asmlinkage long sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize);
+asmlinkage long sys_rt_sigtimedwait(const sigset_t __user *uthese,
+ siginfo_t __user *uinfo,
+ const struct timespec __user *uts,
+ size_t sigsetsize);
+asmlinkage long sys_kill(int pid, int sig);
+asmlinkage long sys_tgkill(int tgid, int pid, int sig);
+asmlinkage long sys_tkill(int pid, int sig);
+asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo);
+asmlinkage long sys_sgetmask(void);
+asmlinkage long sys_ssetmask(int newmask);
+asmlinkage unsigned long sys_signal(int sig, __sighandler_t handler);
+asmlinkage long sys_pause(void);
+
+asmlinkage long sys_sync(void);
+asmlinkage long sys_fsync(unsigned int fd);
+asmlinkage long sys_fdatasync(unsigned int fd);
+asmlinkage long sys_bdflush(int func, long data);
+asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
+ char __user *type, unsigned long flags,
+ void __user *data);
+asmlinkage long sys_umount(char __user *name, int flags);
+asmlinkage long sys_oldumount(char __user *name);
+asmlinkage long sys_truncate(const char __user *path,
+ unsigned long length);
+asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
+asmlinkage long sys_stat(char __user *filename,
+ struct __old_kernel_stat __user *statbuf);
+asmlinkage long sys_statfs(const char __user * path,
+ struct statfs __user *buf);
+asmlinkage long sys_statfs64(const char __user *path, size_t sz,
+ struct statfs64 __user *buf);
+asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf);
+asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz,
+ struct statfs64 __user *buf);
+asmlinkage long sys_lstat(char __user *filename,
+ struct __old_kernel_stat __user *statbuf);
+asmlinkage long sys_fstat(unsigned int fd,
+ struct __old_kernel_stat __user *statbuf);
+asmlinkage long sys_newstat(char __user *filename,
+ struct stat __user *statbuf);
+asmlinkage long sys_newlstat(char __user *filename,
+ struct stat __user *statbuf);
+asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf);
+asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf);
+#if BITS_PER_LONG == 32
+asmlinkage long sys_stat64(char __user *filename,
+ struct stat64 __user *statbuf);
+asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf);
+asmlinkage long sys_lstat64(char __user *filename,
+ struct stat64 __user *statbuf);
+asmlinkage long sys_truncate64(const char __user *path, loff_t length);
+asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length);
+#endif
+
+asmlinkage long sys_setxattr(char __user *path, char __user *name,
+ void __user *value, size_t size, int flags);
+asmlinkage long sys_lsetxattr(char __user *path, char __user *name,
+ void __user *value, size_t size, int flags);
+asmlinkage long sys_fsetxattr(int fd, char __user *name, void __user *value,
+ size_t size, int flags);
+asmlinkage ssize_t sys_getxattr(char __user *path, char __user *name,
+ void __user *value, size_t size);
+asmlinkage ssize_t sys_lgetxattr(char __user *path, char __user *name,
+ void __user *value, size_t size);
+asmlinkage ssize_t sys_fgetxattr(int fd, char __user *name,
+ void __user *value, size_t size);
+asmlinkage ssize_t sys_listxattr(char __user *path, char __user *list,
+ size_t size);
+asmlinkage ssize_t sys_llistxattr(char __user *path, char __user *list,
+ size_t size);
+asmlinkage ssize_t sys_flistxattr(int fd, char __user *list, size_t size);
+asmlinkage long sys_removexattr(char __user *path, char __user *name);
+asmlinkage long sys_lremovexattr(char __user *path, char __user *name);
+asmlinkage long sys_fremovexattr(int fd, char __user *name);
+
+asmlinkage unsigned long sys_brk(unsigned long brk);
+asmlinkage long sys_mprotect(unsigned long start, size_t len,
+ unsigned long prot);
+asmlinkage unsigned long sys_mremap(unsigned long addr,
+ unsigned long old_len, unsigned long new_len,
+ unsigned long flags, unsigned long new_addr);
+long sys_remap_file_pages(unsigned long start, unsigned long size,
+ unsigned long prot, unsigned long pgoff,
+ unsigned long flags);
+asmlinkage long sys_msync(unsigned long start, size_t len, int flags);
+asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice);
+asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
+asmlinkage long sys_munmap(unsigned long addr, size_t len);
+asmlinkage long sys_mlock(unsigned long start, size_t len);
+asmlinkage long sys_munlock(unsigned long start, size_t len);
+asmlinkage long sys_mlockall(int flags);
+asmlinkage long sys_munlockall(void);
+asmlinkage long sys_madvise(unsigned long start, size_t len, int behavior);
+asmlinkage long sys_mincore(unsigned long start, size_t len,
+ unsigned char __user * vec);
+
+asmlinkage long sys_pivot_root(const char __user *new_root,
+ const char __user *put_old);
+asmlinkage long sys_chroot(const char __user *filename);
+asmlinkage long sys_mknod(const char __user *filename, int mode,
+ unsigned dev);
+asmlinkage long sys_link(const char __user *oldname,
+ const char __user *newname);
+asmlinkage long sys_symlink(const char *old, const char *new);
+asmlinkage long sys_unlink(const char __user *pathname);
+asmlinkage long sys_rename(const char __user *oldname,
+ const char __user *newname);
+asmlinkage long sys_chmod(const char __user *filename, mode_t mode);
+asmlinkage long sys_fchmod(unsigned int fd, mode_t mode);
+
+asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
+#if BITS_PER_LONG == 32
+asmlinkage long sys_fcntl64(unsigned int fd,
+ unsigned int cmd, unsigned long arg);
+#endif
+asmlinkage long sys_dup(unsigned int fildes);
+asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd);
+asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int on);
+asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,
+ unsigned long arg);
+asmlinkage long sys_flock(unsigned int fd, unsigned int cmd);
+asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t *ctx);
+asmlinkage long sys_io_destroy(aio_context_t ctx);
+asmlinkage long sys_io_getevents(aio_context_t ctx_id,
+ long min_nr,
+ long nr,
+ struct io_event *events,
+ struct timespec *timeout);
+asmlinkage long sys_io_submit(aio_context_t, long,
+ struct iocb __user **);
+asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb *iocb,
+ struct io_event *result);
+asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd,
+ off_t __user *offset, size_t count);
+asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd,
+ loff_t __user *offset, size_t count);
+asmlinkage long sys_readlink(const char __user *path,
+ char __user *buf, int bufsiz);
+asmlinkage long sys_creat(const char __user *pathname, int mode);
+asmlinkage long sys_open(const char __user *filename,
+ int flags, int mode);
+asmlinkage long sys_close(unsigned int fd);
+asmlinkage long sys_access(const char __user *filename, int mode);
+asmlinkage long sys_vhangup(void);
+asmlinkage long sys_chown(const char __user *filename,
+ uid_t user, gid_t group);
+asmlinkage long sys_lchown(const char __user *filename,
+ uid_t user, gid_t group);
+asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group);
+#ifdef CONFIG_UID16
+asmlinkage long sys_chown16(const char *filename,
+ old_uid_t user, old_gid_t group);
+asmlinkage long sys_lchown16(const char *filename,
+ old_uid_t user, old_gid_t group);
+asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group);
+asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid);
+asmlinkage long sys_setgid16(old_gid_t gid);
+asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid);
+asmlinkage long sys_setuid16(old_uid_t uid);
+asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid);
+asmlinkage long sys_getresuid16(old_uid_t *ruid,
+ old_uid_t *euid, old_uid_t *suid);
+asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid);
+asmlinkage long sys_getresgid16(old_gid_t *rgid,
+ old_gid_t *egid, old_gid_t *sgid);
+asmlinkage long sys_setfsuid16(old_uid_t uid);
+asmlinkage long sys_setfsgid16(old_gid_t gid);
+asmlinkage long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist);
+asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist);
+asmlinkage long sys_getuid16(void);
+asmlinkage long sys_geteuid16(void);
+asmlinkage long sys_getgid16(void);
+asmlinkage long sys_getegid16(void);
+#endif
+
+asmlinkage long sys_utime(char __user *filename,
+ struct utimbuf __user *times);
+asmlinkage long sys_utimes(char __user *filename,
+ struct timeval __user *utimes);
+asmlinkage off_t sys_lseek(unsigned int fd, off_t offset,
+ unsigned int origin);
+asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
+ unsigned long offset_low, loff_t __user *result,
+ unsigned int origin);
+asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf,
+ size_t count);
+asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count);
+asmlinkage ssize_t sys_readv(unsigned long fd,
+ const struct iovec __user *vec,
+ unsigned long vlen);
+asmlinkage ssize_t sys_write(unsigned int fd, const char __user *buf,
+ size_t count);
+asmlinkage ssize_t sys_writev(unsigned long fd,
+ const struct iovec __user *vec,
+ unsigned long vlen);
+asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf,
+ size_t count, loff_t pos);
+asmlinkage ssize_t sys_pwrite64(unsigned int fd, const char __user *buf,
+ size_t count, loff_t pos);
+asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
+asmlinkage long sys_mkdir(const char __user *pathname, int mode);
+asmlinkage long sys_chdir(const char __user *filename);
+asmlinkage long sys_fchdir(unsigned int fd);
+asmlinkage long sys_rmdir(const char __user *pathname);
+asmlinkage long sys_lookup_dcookie(u64 cookie64, char *buf, size_t len);
+asmlinkage long sys_quotactl(unsigned int cmd, const char *special,
+ qid_t id, caddr_t addr);
+asmlinkage long sys_getdents(unsigned int fd,
+ struct linux_dirent __user *dirent,
+ unsigned int count);
+asmlinkage long sys_getdents64(unsigned int fd,
+ struct linux_dirent64 __user *dirent,
+ unsigned int count);
+
+asmlinkage long sys_setsockopt(int fd, int level, int optname,
+ char *optval, int optlen);
+asmlinkage long sys_getsockopt(int fd, int level, int optname,
+ char __user *optval, int __user *optlen);
+asmlinkage long sys_bind(int, struct sockaddr *, int);
+asmlinkage long sys_connect(int, struct sockaddr *, int);
+asmlinkage long sys_accept(int, struct sockaddr *, int *);
+asmlinkage long sys_getsockname(int, struct sockaddr *, int *);
+asmlinkage long sys_getpeername(int, struct sockaddr *, int *);
+asmlinkage long sys_send(int, void *, size_t, unsigned);
+asmlinkage long sys_sendto(int, void *, size_t, unsigned,
+ struct sockaddr *, int);
+asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags);
+asmlinkage long sys_recv(int, void *, size_t, unsigned);
+asmlinkage long sys_recvfrom(int, void *, size_t, unsigned,
+ struct sockaddr *, int *);
+asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned flags);
+asmlinkage long sys_socket(int, int, int);
+asmlinkage long sys_socketpair(int, int, int, int [2]);
+asmlinkage long sys_socketcall(int call, unsigned long __user *args);
+asmlinkage long sys_listen(int, int);
+asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
+ long timeout);
+asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp,
+ fd_set __user *exp, struct timeval __user *tvp);
+asmlinkage long sys_epoll_create(int size);
+asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
+ struct epoll_event __user *event);
+asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
+ int maxevents, int timeout);
+asmlinkage long sys_gethostname(char __user *name, int len);
+asmlinkage long sys_sethostname(char __user *name, int len);
+asmlinkage long sys_setdomainname(char __user *name, int len);
+asmlinkage long sys_newuname(struct new_utsname __user *name);
+
+asmlinkage long sys_getrlimit(unsigned int resource,
+ struct rlimit __user *rlim);
+#if defined(COMPAT_RLIM_OLD_INFINITY) || !(defined(CONFIG_IA64) || defined(CONFIG_V850))
+asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim);
+#endif
+asmlinkage long sys_setrlimit(unsigned int resource,
+ struct rlimit __user *rlim);
+asmlinkage long sys_getrusage(int who, struct rusage __user *ru);
+asmlinkage long sys_umask(int mask);
+
+asmlinkage long sys_msgget(key_t key, int msgflg);
+asmlinkage long sys_msgsnd(int msqid, struct msgbuf __user *msgp,
+ size_t msgsz, int msgflg);
+asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp,
+ size_t msgsz, long msgtyp, int msgflg);
+asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
+
+asmlinkage long sys_semget(key_t key, int nsems, int semflg);
+asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
+ unsigned nsops);
+asmlinkage long sys_semctl(int semid, int semnum, int cmd, union semun arg);
+asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
+ unsigned nsops,
+ const struct timespec __user *timeout);
+asmlinkage long sys_shmat(int shmid, char __user *shmaddr,
+ int shmflg, unsigned long *addr);
+asmlinkage long sys_shmget(key_t key, size_t size, int flag);
+asmlinkage long sys_shmdt(char __user *shmaddr);
+asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf);
+
+asmlinkage long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn);
+asmlinkage long sys_pciconfig_read(unsigned long bus, unsigned long dfn,
+ unsigned long off, unsigned long len,
+ void *buf);
+asmlinkage long sys_pciconfig_write(unsigned long bus, unsigned long dfn,
+ unsigned long off, unsigned long len,
+ void *buf);
+
+asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
+ unsigned long arg4, unsigned long arg5);
+asmlinkage long sys_swapon(const char __user *specialfile, int swap_flags);
+asmlinkage long sys_swapoff(const char __user *specialfile);
+asmlinkage long sys_sysctl(struct __sysctl_args __user *args);
+asmlinkage long sys_sysinfo(struct sysinfo __user *info);
+asmlinkage long sys_sysfs(int option,
+ unsigned long arg1, unsigned long arg2);
+asmlinkage long sys_nfsservctl(int cmd,
+ struct nfsctl_arg __user *arg,
+ void __user *res);
+asmlinkage long sys_syslog(int type, char __user *buf, int len);
+asmlinkage long sys_uselib(const char __user *library);
+asmlinkage long sys_ni_syscall(void);
+
+#endif
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 6819132d40d4..53c33ccddddc 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -130,6 +130,7 @@ enum
KERN_PRINTK_RATELIMIT=60, /* int: tune printk ratelimiting */
KERN_PRINTK_RATELIMIT_BURST=61, /* int: tune printk ratelimiting */
KERN_PTY=62, /* dir: pty driver */
+ KERN_NGROUPS_MAX=63, /* int: NGROUPS_MAX */
};
@@ -733,7 +734,6 @@ enum
#ifdef __KERNEL__
-extern asmlinkage long sys_sysctl(struct __sysctl_args __user *);
extern void sysctl_init(void);
typedef struct ctl_table ctl_table;
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
index f0b98e5a5473..ba9506f322b4 100644
--- a/include/linux/tty_driver.h
+++ b/include/linux/tty_driver.h
@@ -275,6 +275,5 @@ void tty_set_operations(struct tty_driver *driver, struct tty_operations *op);
/* serial subtype definitions */
#define SERIAL_TYPE_NORMAL 1
-#define SERIAL_TYPE_CALLOUT 2
#endif /* #ifdef _LINUX_TTY_DRIVER_H */