Re: [PATCH] EVMS core 3/4: evms_ioctl.h

Christoph Hellwig
2002-10-03T14:55:44Z

On Thu, Oct 03, 2002 at 07:37:05AM -0500, Kevin Corry wrote:
> @@ -0,0 +1,498 @@

> + * Copyright (c) International Business Machines Corp., 2000

> +/*
> + * linux/include/linux/evms.h
> + *
> + * EVMS public kernel header file
> + *
> + */

Same comments as last time apply.

> +#include <linux/hdreg.h>

What is this for?

> +#ifdef __KERNEL__

Nuke this. kernel he3aders aren't for userspace anyway.

> +#define EVMS_CHECK_MEDIA_CHANGE _IO(EVMS_MAJOR, EVMS_CHECK_MEDIA_CHANGE_NUMBER)
> +
> +#define EVMS_REVALIDATE_DISK_STRING "EVMS_REVALIDATE_DISK"
> +#define EVMS_REVALIDATE_DISK _IO(EVMS_MAJOR, EVMS_REVALIDATE_DISK_NUMBER)

Can't you use normal revalidate/media change operations?

> +
> +#define EVMS_OPEN_VOLUME_STRING "EVMS_OPEN_VOLUME"
> +#define EVMS_OPEN_VOLUME _IO(EVMS_MAJOR, EVMS_OPEN_VOLUME_NUMBER)
> +
> +#define EVMS_CLOSE_VOLUME_STRING "EVMS_CLOSE_VOLUME"
> +#define EVMS_CLOSE_VOLUME _IO(EVMS_MAJOR, EVMS_CLOSE_VOLUME_NUMBER)

if you need open/close ioctl you got some abstraction wrong..

> +/**
> + * struct evms_sector_io_pkt - sector io ioctl packet definition
> + * @disk_handle: disk handle of target device
> + * @io_flag: 0 = read, 1 = write
> + * @starting_sector: disk relative starting sector
> + * @sector_count: count of sectors
> + * @buffer_address: user buffer address
> + * @status: return operation status
> + *
> + * ioctl packet definition for EVMS_SECTOR_IO ioctl
> + **/
> +struct evms_sector_io_pkt {
> + u64 disk_handle;
> + s32 io_flag;
> + u64 starting_sector;
> + u64 sector_count;
> + u8 *buffer_address;
> + s32 status;
> +};

You don't abuse an ioctl to read into a user supplied buffer??
> +/**
> + * struct evms_compute_csum_pkt - compute checksum ioctl packet definition
> + * @buffer_address:
> + * @buffer_size:
> + * @insum:
> + * @outsum:
> + * @status:
> + *
> + * ioctl packet definition for EVMS_COMPUTE_CSUM ioctl
> + **/
> +struct evms_compute_csum_pkt {
> + u8 *buffer_address;
> + s32 buffer_size;
> + u32 insum;
> + u32 outsum;
> + s32 status;
> +};

An ioctl to compute a checksum??