/*
 * Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
 *
 * SPDX-License-Identifier: GPL-2.0-only
 */

#pragma once

#define NULL ((void *)0)
#define FILE void

int printf(const char *format, ...);
int sprintf(char *buff, const char *format, ...);

