From 33e9e9bd62d9ae00880d9e12ad8a5b7d2c00e8a5 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Thu, 12 Apr 2018 17:29:59 +0200 Subject: job: Create Job, JobDriver and job_create() This is the first step towards creating an infrastructure for generic background jobs that aren't tied to a block device. For now, Job only stores its ID and JobDriver, the rest stays in BlockJob. The following patches will move over more parts of BlockJob to Job if they are meaningful outside the context of a block job. BlockJob.driver is now redundant, but this patch leaves it around to avoid unnecessary churn. The next patches will get rid of almost all of its uses anyway so that it can be removed later with much less churn. Signed-off-by: Kevin Wolf Reviewed-by: Max Reitz Reviewed-by: John Snow --- tests/test-bdrv-drain.c | 4 +++- tests/test-blockjob-txn.c | 4 +++- tests/test-blockjob.c | 12 ++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/test-bdrv-drain.c b/tests/test-bdrv-drain.c index 7673de1..fe9f412 100644 --- a/tests/test-bdrv-drain.c +++ b/tests/test-bdrv-drain.c @@ -520,7 +520,9 @@ static void test_job_complete(BlockJob *job, Error **errp) } BlockJobDriver test_job_driver = { - .instance_size = sizeof(TestBlockJob), + .job_driver = { + .instance_size = sizeof(TestBlockJob), + }, .start = test_job_start, .complete = test_job_complete, }; diff --git a/tests/test-blockjob-txn.c b/tests/test-blockjob-txn.c index 5789893..48b12d1 100644 --- a/tests/test-blockjob-txn.c +++ b/tests/test-blockjob-txn.c @@ -74,7 +74,9 @@ static void test_block_job_cb(void *opaque, int ret) } static const BlockJobDriver test_block_job_driver = { - .instance_size = sizeof(TestBlockJob), + .job_driver = { + .instance_size = sizeof(TestBlockJob), + }, .start = test_block_job_run, }; diff --git a/tests/test-blockjob.c b/tests/test-blockjob.c index 8946bfd..b820261 100644 --- a/tests/test-blockjob.c +++ b/tests/test-blockjob.c @@ -17,7 +17,9 @@ #include "sysemu/block-backend.h" static const BlockJobDriver test_block_job_driver = { - .instance_size = sizeof(BlockJob), + .job_driver = { + .instance_size = sizeof(BlockJob), + }, }; static void block_job_cb(void *opaque, int ret) @@ -38,9 +40,9 @@ static BlockJob *mk_job(BlockBackend *blk, const char *id, g_assert_null(errp); g_assert_nonnull(job); if (id) { - g_assert_cmpstr(job->id, ==, id); + g_assert_cmpstr(job->job.id, ==, id); } else { - g_assert_cmpstr(job->id, ==, blk_name(blk)); + g_assert_cmpstr(job->job.id, ==, blk_name(blk)); } } else { g_assert_nonnull(errp); @@ -192,7 +194,9 @@ static void coroutine_fn cancel_job_start(void *opaque) } static const BlockJobDriver test_cancel_driver = { - .instance_size = sizeof(CancelJob), + .job_driver = { + .instance_size = sizeof(CancelJob), + }, .start = cancel_job_start, .complete = cancel_job_complete, }; -- cgit v1.1