/*
 * Copyright (c) 2018-2019 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

int lll_master_init(void);
int lll_master_reset(void);
void lll_master_prepare(void *param);
