diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-02-27 01:22:53 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-02-27 01:22:53 -0800 |
| commit | d6ae6e4140f2b685c23f056d79cc374740240f56 (patch) | |
| tree | 617820d3de91cf73a3fbd10ea452af9a9143ec8f /include/linux | |
| parent | 08c7694de859c164ec9ebc6598ccda4955d6580a (diff) | |
| parent | 116cd69c5c4199a89306e5548b49e87737be971a (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')
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 */ |
