ublk_dev
static unsigned char ublk_commit_elem_buf_size(struct ublk_dev *dev)
struct ublk_dev *dev = t->dev;
int backing_file_tgt_init(struct ublk_dev *dev, unsigned int nr_direct)
void backing_file_tgt_deinit(struct ublk_dev *dev)
struct ublk_dev *dev)
static int ublk_loop_tgt_init(const struct dev_ctx *ctx, struct ublk_dev *dev)
static int ublk_ctrl_stop_dev(struct ublk_dev *dev)
static void ublk_set_parameters(struct ublk_dev *dev)
static int ublk_send_dev_event(const struct dev_ctx *ctx, struct ublk_dev *dev, int dev_id)
static int ublk_start_daemon(const struct dev_ctx *ctx, struct ublk_dev *dev)
static int ublk_ctrl_try_stop_dev(struct ublk_dev *dev)
static int ublk_ctrl_start_dev(struct ublk_dev *dev,
static int ublk_stop_io_daemon(const struct ublk_dev *dev)
struct ublk_dev *dev = NULL;
static int ublk_ctrl_start_user_recovery(struct ublk_dev *dev)
static int ublk_ctrl_end_user_recovery(struct ublk_dev *dev, int daemon_pid)
ctx->_shmid = shmget(IPC_PRIVATE, sizeof(struct ublk_dev), IPC_CREAT | 0666);
ctx->shadow_dev = (struct ublk_dev *)shmat(ctx->_shmid, NULL, 0);
if (ctx->shadow_dev == (struct ublk_dev *)-1) {
struct ublk_dev *dev;
struct ublk_dev *dev;
static int ublk_ctrl_add_dev(struct ublk_dev *dev)
struct ublk_dev *dev = ublk_ctrl_init();
struct ublk_dev *dev;
struct ublk_dev *dev = ublk_ctrl_init();
static int ublk_ctrl_del_dev(struct ublk_dev *dev)
struct ublk_dev *dev = ublk_ctrl_init();
static int ublk_ctrl_get_info(struct ublk_dev *dev)
static int ublk_ctrl_set_params(struct ublk_dev *dev,
static int ublk_ctrl_get_params(struct ublk_dev *dev,
static int ublk_ctrl_get_features(struct ublk_dev *dev,
static int ublk_ctrl_update_size(struct ublk_dev *dev,
static int ublk_ctrl_quiesce_dev(struct ublk_dev *dev,
static const char *ublk_dev_state_desc(struct ublk_dev *dev)
static int ublk_ctrl_get_affinity(struct ublk_dev *ctrl_dev, cpu_set_t **ptr_buf)
static void ublk_ctrl_dump(struct ublk_dev *dev)
static void ublk_ctrl_deinit(struct ublk_dev *dev)
static struct ublk_dev *ublk_ctrl_init(void)
struct ublk_dev *dev = (struct ublk_dev *)calloc(1, sizeof(*dev));
static void ublk_ctrl_init_cmd(struct ublk_dev *dev,
struct ublk_dev *dev = q->dev;
struct ublk_dev *dev = t->dev;
static int ublk_dev_prep(const struct dev_ctx *ctx, struct ublk_dev *dev)
static void ublk_dev_unprep(struct ublk_dev *dev)
static int __ublk_ctrl_cmd(struct ublk_dev *dev,
struct ublk_dev *dev = t->dev;
struct ublk_dev *dev;
int (*init_tgt)(const struct dev_ctx *ctx, struct ublk_dev *);
void (*deinit_tgt)(struct ublk_dev *);
struct ublk_dev *dev;
struct ublk_dev *dev;
static inline int ublk_dev_batch_io(const struct ublk_dev *dev)
struct ublk_dev;
void backing_file_tgt_deinit(struct ublk_dev *dev);
int backing_file_tgt_init(struct ublk_dev *dev, unsigned int nr_direct);
struct ublk_dev *shadow_dev;
static int ublk_null_tgt_init(const struct dev_ctx *ctx, struct ublk_dev *dev)
static int ublk_stripe_tgt_init(const struct dev_ctx *ctx, struct ublk_dev *dev)
static void ublk_stripe_tgt_deinit(struct ublk_dev *dev)