/*
 * Copyright (c) 2019 The Fuchsia Authors
 *
 * SPDX-License-Identifier:	BSD-3-Clause
 */

#ifndef _ZIRCON_FW_TESTING_H_
#define _ZIRCON_FW_TESTING_H_

#include <linux/types.h>
#include <zircon-estelle/zircon.h>

/* Copies and stores command line boot items to be added later to the ZBI
 * This can be called multiple times to append more items.
 *
 * |payload| - NULL terminated, space separated command line arguments.
 *             Within each argument, spaces are not permitted.
 */
int zircon_fw_testing_append_boot_items(const char *payload);

/**
 * Adds stored command line ZBI items to the given |zbi| container.
 *
 * @zbi: The ZBI container to add the boot args to.
 * @capacity: The ZBI container capacity.
 *
 * Return: 0 on success, negative value on error.
 */
int zircon_fw_testing_add_extra_zbi_items(zbi_header_t *zbi, size_t capacity);

#endif