73 строки
2.1 KiB
C
73 строки
2.1 KiB
C
/*
|
|
* ioctl32.c: Conversion between 32bit and 64bit native ioctls.
|
|
*
|
|
* S390 version
|
|
* Copyright (C) 2000-2003 IBM Deutschland Entwicklung GmbH, IBM Corporation
|
|
* Author(s): Gerhard Tonn (ton@de.ibm.com)
|
|
* Arnd Bergmann (arndb@de.ibm.com)
|
|
*
|
|
* Original implementation from 32-bit Sparc compat code which is
|
|
* Copyright (C) 2000 Silicon Graphics, Inc.
|
|
* Written by Ulf Carlsson (ulfc@engr.sgi.com)
|
|
*/
|
|
|
|
#include "compat_linux.h"
|
|
#define INCLUDES
|
|
#define CODE
|
|
#include "../../../fs/compat_ioctl.c"
|
|
#include <asm/dasd.h>
|
|
#include <asm/cmb.h>
|
|
#include <asm/tape390.h>
|
|
|
|
static int do_ioctl32_pointer(unsigned int fd, unsigned int cmd,
|
|
unsigned long arg, struct file *f)
|
|
{
|
|
return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg));
|
|
}
|
|
|
|
static int do_ioctl32_ulong(unsigned int fd, unsigned int cmd,
|
|
unsigned long arg, struct file *f)
|
|
{
|
|
return sys_ioctl(fd, cmd, arg);
|
|
}
|
|
|
|
#define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL((cmd),(ioctl_trans_handler_t)do_ioctl32_pointer)
|
|
#define ULONG_IOCTL(cmd) HANDLE_IOCTL((cmd),(ioctl_trans_handler_t)do_ioctl32_ulong)
|
|
#define HANDLE_IOCTL(cmd,handler) { (cmd), (ioctl_trans_handler_t)(handler), NULL },
|
|
|
|
struct ioctl_trans ioctl_start[] = {
|
|
/* architecture independent ioctls */
|
|
#include <linux/compat_ioctl.h>
|
|
#define DECLARES
|
|
#include "../../../fs/compat_ioctl.c"
|
|
|
|
/* s390 only ioctls */
|
|
COMPATIBLE_IOCTL(DASDAPIVER)
|
|
COMPATIBLE_IOCTL(BIODASDDISABLE)
|
|
COMPATIBLE_IOCTL(BIODASDENABLE)
|
|
COMPATIBLE_IOCTL(BIODASDRSRV)
|
|
COMPATIBLE_IOCTL(BIODASDRLSE)
|
|
COMPATIBLE_IOCTL(BIODASDSLCK)
|
|
COMPATIBLE_IOCTL(BIODASDINFO)
|
|
COMPATIBLE_IOCTL(BIODASDINFO2)
|
|
COMPATIBLE_IOCTL(BIODASDFMT)
|
|
COMPATIBLE_IOCTL(BIODASDPRRST)
|
|
COMPATIBLE_IOCTL(BIODASDQUIESCE)
|
|
COMPATIBLE_IOCTL(BIODASDRESUME)
|
|
COMPATIBLE_IOCTL(BIODASDPRRD)
|
|
COMPATIBLE_IOCTL(BIODASDPSRD)
|
|
COMPATIBLE_IOCTL(BIODASDGATTR)
|
|
COMPATIBLE_IOCTL(BIODASDSATTR)
|
|
COMPATIBLE_IOCTL(BIODASDCMFENABLE)
|
|
COMPATIBLE_IOCTL(BIODASDCMFDISABLE)
|
|
COMPATIBLE_IOCTL(BIODASDREADALLCMB)
|
|
|
|
COMPATIBLE_IOCTL(TAPE390_DISPLAY)
|
|
|
|
/* s390 doesn't need handlers here */
|
|
COMPATIBLE_IOCTL(TIOCGSERIAL)
|
|
COMPATIBLE_IOCTL(TIOCSSERIAL)
|
|
};
|
|
|
|
int ioctl_table_size = ARRAY_SIZE(ioctl_start);
|