master/domain.c
changeset 1304 853c83c72f44
parent 1257 9844ac126275
child 1313 ed15eef57d5c
equal deleted inserted replaced
1303:448f2e9fa483 1304:853c83c72f44
   159             kfree(datagram);
   159             kfree(datagram);
   160             return -1;
   160             return -1;
   161         }
   161         }
   162         // If LRW is used, output FMMUs increment the working counter by 2,
   162         // If LRW is used, output FMMUs increment the working counter by 2,
   163         // while input FMMUs increment it by 1.
   163         // while input FMMUs increment it by 1.
   164         domain->expected_working_counter =
   164         domain->expected_working_counter +=
   165             used[EC_DIR_OUTPUT] * 2 + used[EC_DIR_INPUT];
   165             used[EC_DIR_OUTPUT] * 2 + used[EC_DIR_INPUT];
   166     } else if (used[EC_DIR_OUTPUT]) { // outputs only
   166     } else if (used[EC_DIR_OUTPUT]) { // outputs only
   167         if (ec_datagram_lwr(datagram, logical_offset, data_size, data)) {
   167         if (ec_datagram_lwr(datagram, logical_offset, data_size, data)) {
   168             kfree(datagram);
   168             kfree(datagram);
   169             return -1;
   169             return -1;
   170         }
   170         }
   171         domain->expected_working_counter = used[EC_DIR_OUTPUT];
   171         domain->expected_working_counter += used[EC_DIR_OUTPUT];
   172     } else { // inputs only (or nothing)
   172     } else { // inputs only (or nothing)
   173         if (ec_datagram_lrd(datagram, logical_offset, data_size, data)) {
   173         if (ec_datagram_lrd(datagram, logical_offset, data_size, data)) {
   174             kfree(datagram);
   174             kfree(datagram);
   175             return -1;
   175             return -1;
   176         }
   176         }
   177         domain->expected_working_counter = used[EC_DIR_INPUT];
   177         domain->expected_working_counter += used[EC_DIR_INPUT];
   178     }
   178     }
   179 
   179 
   180     ec_datagram_zero(datagram);
   180     ec_datagram_zero(datagram);
   181     list_add_tail(&datagram->list, &domain->datagrams);
   181     list_add_tail(&datagram->list, &domain->datagrams);
   182     return 0;
   182     return 0;