Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

/*  Bluetooth Mesh */

/*
 * Copyright (c) 2017 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#define BT_MESH_KEY_PRIMARY 0x0000

enum bt_mesh_key_evt {
	BT_MESH_KEY_ADDED,   /* New key added */
	BT_MESH_KEY_DELETED, /* Existing key deleted */
	BT_MESH_KEY_UPDATED, /* KR phase 1, second key added */
	BT_MESH_KEY_SWAPPED, /* KR phase 2, now sending on second key */
	BT_MESH_KEY_REVOKED, /* KR phase 3, old key removed */
};

/** Appkey callback. Instantiate with @ref BT_MESH_APP_KEY_CB */
struct bt_mesh_app_key_cb {
	void (*evt_handler)(uint16_t app_idx, uint16_t net_idx,
			    enum bt_mesh_key_evt evt);
};

/** @def BT_MESH_APP_KEY_CB
 *
 *  @brief Register an AppKey event callback.
 *
 *  @param _handler Handler function, see @ref bt_mesh_app_key_cb::evt_handler.
 */
#define BT_MESH_APP_KEY_CB_DEFINE(_handler)                                    \
	static const Z_STRUCT_SECTION_ITERABLE(bt_mesh_app_key_cb,             \
					       _CONCAT(bt_mesh_app_key_cb_,    \
						       _handler)) = {          \
		.evt_handler = (_handler),                                     \
	}

struct bt_mesh_net;

int bt_mesh_start(void);