Implement Linux BLKGETSIZE64 ioctl.
MFC after: 2 weeks Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
636fed0b9e
commit
95b9a55889
@ -278,6 +278,7 @@ linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args)
|
||||
struct file *fp;
|
||||
int error;
|
||||
u_int sectorsize;
|
||||
uint64_t blksize64;
|
||||
off_t mediasize;
|
||||
|
||||
error = fget(td, args->fd, &cap_ioctl_rights, &fp);
|
||||
@ -300,6 +301,15 @@ linux_ioctl_disk(struct thread *td, struct linux_ioctl_args *args)
|
||||
return (copyout(§orsize, (void *)args->arg,
|
||||
sizeof(sectorsize)));
|
||||
break;
|
||||
case LINUX_BLKGETSIZE64:
|
||||
error = fo_ioctl(fp, DIOCGMEDIASIZE,
|
||||
(caddr_t)&mediasize, td->td_ucred, td);
|
||||
fdrop(fp, td);
|
||||
if (error)
|
||||
return (error);
|
||||
blksize64 = mediasize;;
|
||||
return (copyout(&blksize64, (void *)args->arg,
|
||||
sizeof(blksize64)));
|
||||
case LINUX_BLKSSZGET:
|
||||
error = fo_ioctl(fp, DIOCGSECTORSIZE,
|
||||
(caddr_t)§orsize, td->td_ucred, td);
|
||||
|
@ -57,9 +57,10 @@
|
||||
#define LINUX_BLKSECTSET 0x1266
|
||||
#define LINUX_BLKSECTGET 0x1267
|
||||
#define LINUX_BLKSSZGET 0x1268
|
||||
#define LINUX_BLKGETSIZE64 0x1272
|
||||
|
||||
#define LINUX_IOCTL_DISK_MIN LINUX_BLKROSET
|
||||
#define LINUX_IOCTL_DISK_MAX LINUX_BLKSSZGET
|
||||
#define LINUX_IOCTL_DISK_MAX LINUX_BLKGETSIZE64
|
||||
|
||||
/*
|
||||
* hdio
|
||||
|
Loading…
x
Reference in New Issue
Block a user