[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YsWIOYqO4QVnd2Ru@infradead.org>
Date: Wed, 6 Jul 2022 06:03:53 -0700
From: Christoph Hellwig <hch@...radead.org>
To: Sergei Shtepa <sergei.shtepa@...am.com>
Cc: axboe@...nel.dk, linux-block@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 02/20] block, blksnap: header file of the module interface
On Mon, Jun 13, 2022 at 06:52:55PM +0300, Sergei Shtepa wrote:
> The header file contains a set of declarations, structures and control
> requests (ioctl) that allows to manage the module from the user space.
I think this should go into include/uapi/ if you want it in a global
place.
> +#pragma once
In the kernel we use classic #ifdef based guards.
> +#include <linux/types.h>
> +#include <linux/uuid.h>
The uuid_t type can't be used in a userspae API. Please use a raw
__u8 API and then use import_uuid.
> +#define BLK_SNAP_MODULE_NAME "blksnap"
Does this belong into a user interface?
> +#define BLK_SNAP_IMAGE_NAME "blksnap-image"
> +#define BLK_SNAP 'V'
> +
> +enum blk_snap_ioctl {
> + /*
> + * Service controls
> + */
> + blk_snap_ioctl_version,
> + /*
> + * Contols for tracking
> + */
> + blk_snap_ioctl_tracker_remove,
> + blk_snap_ioctl_tracker_collect,
> + blk_snap_ioctl_tracker_read_cbt_map,
> + blk_snap_ioctl_tracker_mark_dirty_blocks,
> + /*
> + * Snapshot contols
> + */
> + blk_snap_ioctl_snapshot_create,
> + blk_snap_ioctl_snapshot_destroy,
> + blk_snap_ioctl_snapshot_append_storage,
> + blk_snap_ioctl_snapshot_take,
> + blk_snap_ioctl_snapshot_collect,
> + blk_snap_ioctl_snapshot_collect_images,
> + blk_snap_ioctl_snapshot_wait_event,
> + blk_snap_ioctl_end,
For uapis classic #defines have the adnvantage that userspace can test
for their presence if new ones get added. Also the _end one should not
be in an UAPI header as new ones can be added at any time.
Powered by blists - more mailing lists