Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VSs_impls > VSs__MC_shared_impl
comparison nanos-vss.c @ 42:bb6fbcbce14d
fix unpacking of dependency ptrs
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Fri, 07 Jun 2013 15:47:52 +0200 |
| parents | 37bb39da5ff1 |
| children | 8733d1299c3a |
comparison
equal
deleted
inserted
replaced
| 1:b4f5aa34af29 | 2:82fec0a6e428 |
|---|---|
| 23 } | 23 } |
| 24 | 24 |
| 25 nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, | 25 nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, |
| 26 size_t data_size, void ** data, nanos_wg_t wg, nanos_copy_data_t **copies) { | 26 size_t data_size, void ** data, nanos_wg_t wg, nanos_copy_data_t **copies) { |
| 27 | 27 |
| 28 *wd = NULL; | |
| 29 return NANOS_OK; | |
| 30 | |
| 28 VSsTaskStub* ts = (VSsTaskStub*) malloc(sizeof (VSsTaskStub)); | 31 VSsTaskStub* ts = (VSsTaskStub*) malloc(sizeof (VSsTaskStub)); |
| 29 void* alloc_data = malloc(data_size); | 32 void* alloc_data = malloc(data_size); |
| 30 *data = alloc_data; | 33 *data = alloc_data; |
| 31 ts->args = alloc_data; | 34 ts->args = alloc_data; |
| 32 | 35 |
| 44 return NANOS_OK; | 47 return NANOS_OK; |
| 45 } | 48 } |
| 46 | 49 |
| 47 nanos_err_t nanos_submit(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team) { | 50 nanos_err_t nanos_submit(nanos_wd_t wd, size_t num_deps, nanos_dependence_t *deps, nanos_team_t team) { |
| 48 | 51 |
| 52 return NANOS_UNIMPLEMENTED; | |
| 53 | |
| 49 int32* depsTypes = malloc(sizeof (int32) * num_deps); | 54 int32* depsTypes = malloc(sizeof (int32) * num_deps); |
| 50 size_t* depsSizes = malloc(sizeof (size_t) * num_deps); | 55 size_t* depsSizes = malloc(sizeof (size_t) * num_deps); |
| 51 void** depsAddrs = malloc(sizeof (void*)*num_deps); | 56 void** depsAddrs = malloc(sizeof (void*)*num_deps); |
| 52 | 57 |
| 53 int i; | 58 int i; |
| 54 for (i = 0; i < num_deps; i++) { | 59 for (i = 0; i < num_deps; i++) { |
| 55 depsAddrs[i] = deps[i].address; | 60 depsAddrs[i] = (void *) ( (char *) (*deps[i].address) + deps[i].offset ); |
| 56 depsTypes[i] = (deps[i].flags.output) ? WRITER : READER; | 61 depsTypes[i] = (deps[i].flags.output) ? WRITER : READER; |
| 57 depsSizes[i] = deps[i].size; | 62 depsSizes[i] = deps[i].size; |
| 58 } | 63 } |
| 59 | 64 |
| 60 VSsTaskStub* ts = (VSsTaskStub*) wd; | 65 VSsTaskStub* ts = (VSsTaskStub*) wd; |
| 94 nanos_copy_data_t *copies, nanos_translate_args_t translate_args) { | 99 nanos_copy_data_t *copies, nanos_translate_args_t translate_args) { |
| 95 | 100 |
| 96 | 101 |
| 97 int32* depsTypes = malloc(sizeof (int32) * num_deps); | 102 int32* depsTypes = malloc(sizeof (int32) * num_deps); |
| 98 size_t* depsSizes = malloc(sizeof (size_t) * num_deps); | 103 size_t* depsSizes = malloc(sizeof (size_t) * num_deps); |
| 99 void** depsAddrs = malloc(sizeof (void*)*num_deps); | 104 void** depsAddrs = malloc(sizeof (void*) * num_deps); |
| 100 | 105 |
| 101 int i; | 106 int i; |
| 102 for (i = 0; i < num_deps; i++) { | 107 for (i = 0; i < num_deps; i++) { |
| 103 depsAddrs[i] = deps[i].address; | 108 depsAddrs[i] = (void *) ( (char *) (*deps[i].address) + deps[i].offset ); |
| 104 depsTypes[i] = (deps[i].flags.output) ? WRITER : READER; | 109 depsTypes[i] = (deps[i].flags.output) ? WRITER : READER; |
| 105 depsSizes[i] = deps[i].size; | 110 depsSizes[i] = deps[i].size; |
| 106 } | 111 } |
| 107 | 112 |
| 108 /* const_data is declared as: | 113 /* const_data is declared as: |
