diff options
author | Tushar Gohad <tushar.gohad@intel.com> | 2014-07-16 13:27:13 -0700 |
---|---|---|
committer | Tushar Gohad <tushar.gohad@intel.com> | 2014-07-16 13:34:53 -0700 |
commit | 1a795da4a1f58e1e946d1bdd3b0693fc4906e87f (patch) | |
tree | 9a06c9c131e60be478a7aec5c911886351f02381 /src | |
parent | 05e65c3f96d54f7ddbbd0318ad6479011b6f02c6 (diff) | |
download | liberasurecode-1a795da4a1f58e1e946d1bdd3b0693fc4906e87f.tar.gz |
Store args natively in the backend_args (not as a pointer)
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/backends/xor/flat_xor_hd.c | 6 | ||||
-rw-r--r-- | src/erasurecode.c | 14 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/backends/xor/flat_xor_hd.c b/src/backends/xor/flat_xor_hd.c index 90d4b7b..6236ec6 100644 --- a/src/backends/xor/flat_xor_hd.c +++ b/src/backends/xor/flat_xor_hd.c @@ -69,9 +69,9 @@ static int flat_xor_hd_min_fragments(void *desc, int (*fptr)(), static void * flat_xor_hd_init(struct ec_backend_args *args) { - int k = args->uargs->k; - int m = args->uargs->m; - int hd = args->uargs->priv_args1.flat_xor_hd_args.hd; + int k = args->uargs.k; + int m = args->uargs.m; + int hd = args->uargs.priv_args1.flat_xor_hd_args.hd; void *desc = (void *) init_xor_hd_code(k, m, hd); return desc; diff --git a/src/erasurecode.c b/src/erasurecode.c index 3991acc..91ee17b 100644 --- a/src/erasurecode.c +++ b/src/erasurecode.c @@ -213,6 +213,7 @@ int liberasurecode_instance_create(const char *backend_name, { int err = 0; ec_backend_t instance = NULL; + struct ec_backend_args bargs; ec_backend_id_t id = liberasurecode_backend_lookup_id(backend_name); if (-1 == id) @@ -225,7 +226,8 @@ int liberasurecode_instance_create(const char *backend_name, /* Copy common backend, args struct */ instance->common = ec_backends_supported[id]->common; - instance->args = (struct ec_backend_args *) args; + memcpy(&(bargs.uargs), args, sizeof (struct ec_args)); + instance->args = bargs; /* Open backend .so if not already open */ /* .so handle is returned in instance->backend_sohandle */ @@ -237,7 +239,7 @@ int liberasurecode_instance_create(const char *backend_name, } /* Call private init() for the backend */ - instance->backend_desc = instance->common.ops->init(instance->args); + instance->backend_desc = instance->common.ops->init(&instance->args); /* Register instance and return a descriptor/instance id */ instance->instance_desc = liberasurecode_backend_instance_register(instance); @@ -356,7 +358,7 @@ int liberasurecode_encode(int desc, /* call the backend encode function passing it fptr */ ret = instance->common.ops->encode( - instance->backend_desc, fptr, instance->args, + instance->backend_desc, fptr, &instance->args, encoded_data, encoded_parity, blocksize); out_error: @@ -399,7 +401,7 @@ int liberasurecode_decode(int desc, /* call the backend encode function passing it fptr */ ret = instance->common.ops->decode( - instance->backend_desc, fptr, instance->args, + instance->backend_desc, fptr, &instance->args, data, parity, missing_idxs, blocksize); out_error: @@ -444,7 +446,7 @@ int liberasurecode_reconstruct_fragment(int desc, /* call the backend encode function passing it fptr */ ret = instance->common.ops->reconstruct( - instance->backend_desc, fptr, instance->args, + instance->backend_desc, fptr, &instance->args, data, parity, missing_idxs, destination_idx, blocksize); out_error: @@ -481,7 +483,7 @@ int liberasurecode_fragments_needed(int desc, int *missing_idxs, /* call the backend encode function passing it fptr */ ret = instance->common.ops->fragments_needed( - instance->backend_desc, fptr, instance->args, + instance->backend_desc, fptr, &instance->args, missing_idxs, fragments_needed); out_error: |