ec3cad9690
This patch implements generic handling of RTC_IRQP_READ32, RTC_IRQP_SET32, RTC_EPOCH_READ32 and RTC_EPOCH_SET32 in fs/compat_ioctl.c. It's based on the x86_64 code which needed a little massaging to be endian-clean. parisc used COMPAT_IOCTL or generic w_long handlers for these whichce is wrong and can't work because the ioctls encode sizeof(unsigned long) in their ioctl number. parisc also duplicated COMPAT_IOCTL entries for other rtc ioctls which I remove in this patch, too. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Matthew Wilcox <matthew@wil.cx> Acked-by: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
41 lines
1 KiB
C
41 lines
1 KiB
C
/* $Id: ioctl32.c,v 1.5 2002/10/18 00:21:43 varenet Exp $
|
|
* ioctl32.c: Conversion between 32bit and 64bit native ioctls.
|
|
*
|
|
* Copyright (C) 1997-2000 Jakub Jelinek (jakub@redhat.com)
|
|
* Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be)
|
|
*
|
|
* These routines maintain argument size conversion between 32bit and 64bit
|
|
* ioctls.
|
|
*/
|
|
|
|
#include <linux/syscalls.h>
|
|
|
|
#define INCLUDES
|
|
#include "compat_ioctl.c"
|
|
|
|
#include <asm/perf.h>
|
|
#include <asm/ioctls.h>
|
|
|
|
#define CODE
|
|
#include "compat_ioctl.c"
|
|
|
|
#define HANDLE_IOCTL(cmd, handler) { cmd, (ioctl_trans_handler_t)handler, NULL },
|
|
#define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL(cmd, sys_ioctl)
|
|
|
|
#define IOCTL_TABLE_START struct ioctl_trans ioctl_start[] = {
|
|
#define IOCTL_TABLE_END };
|
|
|
|
IOCTL_TABLE_START
|
|
#include <linux/compat_ioctl.h>
|
|
|
|
#define DECLARES
|
|
#include "compat_ioctl.c"
|
|
|
|
/* And these ioctls need translation */
|
|
HANDLE_IOCTL(SIOCGPPPSTATS, dev_ifsioc)
|
|
HANDLE_IOCTL(SIOCGPPPCSTATS, dev_ifsioc)
|
|
HANDLE_IOCTL(SIOCGPPPVER, dev_ifsioc)
|
|
|
|
IOCTL_TABLE_END
|
|
|
|
int ioctl_table_size = ARRAY_SIZE(ioctl_start);
|