#include "samples/util/alloc.h"

iree_status_t alloc_input_buffer(const MlModel *model, void **buffer) {
  iree_status_t result = iree_ok_status();
  for (int i = 0; i < model->num_input; ++i) {
    if (iree_status_is_ok(result)) {
      buffer[i] = aligned_alloc(sizeof(uint32_t), model->input_size_bytes[i] *
                                                      model->input_length[i]);
      if (buffer[i] == NULL) {
        result = iree_make_status(IREE_STATUS_RESOURCE_EXHAUSTED);
      }
    }
  }
  return result;
}
