mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
mISDN: Added an ioctl to change the device name
To get persistent device names with hotplug we need to rename devices sometime. Signed-off-by: Matthias Urlichs <matthias@urlichs.de> Signed-off-by: Karsten Keil <kkeil@suse.de>
This commit is contained in:
parent
9776ef0829
commit
8b6015f736
2 changed files with 34 additions and 12 deletions
|
@ -645,6 +645,21 @@ base_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
|
|||
} else
|
||||
err = -ENODEV;
|
||||
break;
|
||||
case IMSETDEVNAME:
|
||||
{
|
||||
struct mISDN_devrename dn;
|
||||
if (copy_from_user(&dn, (void __user *)arg,
|
||||
sizeof(dn))) {
|
||||
err = -EFAULT;
|
||||
break;
|
||||
}
|
||||
dev = get_mdevice(dn.id);
|
||||
if (dev)
|
||||
strlcpy(dev->name, dn.name, MISDN_MAX_IDLEN);
|
||||
else
|
||||
err = -ENODEV;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
err = -EINVAL;
|
||||
}
|
||||
|
|
|
@ -36,8 +36,8 @@
|
|||
* - should be incremented on every checkin
|
||||
*/
|
||||
#define MISDN_MAJOR_VERSION 1
|
||||
#define MISDN_MINOR_VERSION 0
|
||||
#define MISDN_RELEASE 19
|
||||
#define MISDN_MINOR_VERSION 1
|
||||
#define MISDN_RELEASE 20
|
||||
|
||||
/* primitives for information exchange
|
||||
* generell format
|
||||
|
@ -255,16 +255,6 @@ struct sockaddr_mISDN {
|
|||
unsigned char tei;
|
||||
};
|
||||
|
||||
/* timer device ioctl */
|
||||
#define IMADDTIMER _IOR('I', 64, int)
|
||||
#define IMDELTIMER _IOR('I', 65, int)
|
||||
/* socket ioctls */
|
||||
#define IMGETVERSION _IOR('I', 66, int)
|
||||
#define IMGETCOUNT _IOR('I', 67, int)
|
||||
#define IMGETDEVINFO _IOR('I', 68, int)
|
||||
#define IMCTRLREQ _IOR('I', 69, int)
|
||||
#define IMCLEAR_L2 _IOR('I', 70, int)
|
||||
|
||||
struct mISDNversion {
|
||||
unsigned char major;
|
||||
unsigned char minor;
|
||||
|
@ -281,6 +271,23 @@ struct mISDN_devinfo {
|
|||
char name[MISDN_MAX_IDLEN];
|
||||
};
|
||||
|
||||
struct mISDN_devrename {
|
||||
u_int id;
|
||||
char name[MISDN_MAX_IDLEN]; /* new name */
|
||||
};
|
||||
|
||||
/* timer device ioctl */
|
||||
#define IMADDTIMER _IOR('I', 64, int)
|
||||
#define IMDELTIMER _IOR('I', 65, int)
|
||||
|
||||
/* socket ioctls */
|
||||
#define IMGETVERSION _IOR('I', 66, int)
|
||||
#define IMGETCOUNT _IOR('I', 67, int)
|
||||
#define IMGETDEVINFO _IOR('I', 68, int)
|
||||
#define IMCTRLREQ _IOR('I', 69, int)
|
||||
#define IMCLEAR_L2 _IOR('I', 70, int)
|
||||
#define IMSETDEVNAME _IOR('I', 71, struct mISDN_devrename)
|
||||
|
||||
static inline int
|
||||
test_channelmap(u_int nr, u_char *map)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue