#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] =
          iree_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;
}
