* Copyright (C) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef GAP_COMM_DEF_H
#define GAP_COMM_DEF_H
#include <stdlib.h>
#include <stdbool.h>
#include <stddef.h>
#include "btstack.h"
#ifdef __cplusplus
extern "C" {
#endif
#define GAP_SUCCESS BT_SUCCESS
#define GAP_ERR_NOT_ENABLE BT_BAD_STATUS
#define GAP_ERR_INVAL_PARAM BT_BAD_PARAM
#define GAP_ERR_INVAL_STATE BT_BAD_STATUS
#define GAP_ERR_REPEATED BT_ALREADY
#define GAP_ERR_OUT_OF_RES BT_NO_MEMORY
#define GAP_ERR_REMOTE_ACTION BT_OPERATION_FAILED
#define GAP_ERR_NOT_SUPPORT BT_NOT_SUPPORT
#define GAP_STATUS_SUCCESS 0x00
#define GAP_STATUS_FAILED 0xFF
#define GAP_NOT_ACCEPT 0
#define GAP_ACCEPT 1
#define GAP_LINKKEY_SIZE 0x10
#define GAP_LTK_SIZE GAP_LINKKEY_SIZE
#define GAP_RAND_SIZE 0x08
#define GAP_PINCODE_SIZE 0x10
#define GAP_OOB_DATA_CONFIRM_SIZE 0x10
#define GAP_OOB_DATA_RANDOM_SIZE 0x10
#define GAP_OOB_DATA_SIZE 0x10
#define GAP_EIR_SIZE_MAX 240
#define GAP_NAME_SIZE_MAX 248
#define GAP_DISCOVERABLE_MODE_NON 0x00
#define GAP_DISCOVERABLE_MODE_LIMITED 0x01
#define GAP_DISCOVERABLE_MODE_GENERAL 0x02
#define GAP_INQUIRY_SCAN_TYPE_GENERAL 0x00
#define GAP_INQUIRY_SCAN_TYPE_INTERLACED 0x01
#define GAP_CONNECTABLE_MODE_NON 0x00
#define GAP_CONNECTABLE_MODE 0x01
#define GAP_PAGE_SCAN_TYPE_GENERAL 0x00
#define GAP_PAGE_SCAN_TYPE_INTERLACED 0x01
#define GAP_SCAN_INTERVAL_RANGE_MIN 0x0012
#define GAP_SCAN_INTERVAL_RANGE_MAX 0x1000
#define GAP_SCAN_WINDOW_RANGE_MIN 0x0011
#define GAP_SCAN_WINDOW_RANGE_MAX 0x1000
#define GAP_INQUIRY_SCAN_INTERVAL_DEFAULT 0x1000
#define GAP_INQUIRY_SCAN_WINDOW_DEFAULT 0x0012
#define GAP_PAGE_SCAN_INTERVAL_DEFAULT 0x0800
#define GAP_PAGE_SCAN_WINDOW_DEFAULT 0x0012
#define GAP_BONDABLE_MODE_NON 0x00
#define GAP_BONDABLE_MODE 0x01
#define GAP_IO_DISPLAYONLY 0x00
#define GAP_IO_DISPLAYYESNO 0x01
#define GAP_IO_KEYBOARDONLY 0x02
#define GAP_IO_NOINPUTNOOUTPUT 0x03
#define GAP_IO_KEYBOARDDISPLAY 0x04
#define GAP_LKEY_TYPE_COMBINATION 0x00
#define GAP_LKEY_TYPE_LOCAL_UNIT 0x01
#define GAP_LKEY_TYPE_REMOTE_UNIT 0x02
#define GAP_LKEY_TYPE_DEBUG_COMB 0x03
#define GAP_LKEY_TYPE_UNAUTH_COMB_P192 0x04
#define GAP_LKEY_TYPE_AUTH_COMB_P192 0x05
#define GAP_LKEY_TYPE_CHANGED_COMB 0x06
#define GAP_LKEY_TYPE_UNAUTH_COMB_P256 0x07
#define GAP_LKEY_TYPE_AUTH_COMB_P256 0x08
#define GAP_OOB_DATA_NOT_PRESENT 0x00
#define GAP_OOB_DATA_PRESENT_P192 0x01
#define GAP_OOB_DATA_PRESENT_P256 0x02
#define GAP_OOB_DATA_PRESENT_P192_P256 0x03
#define GAP_MITM_NOT_REQUIRED 0x00
#define GAP_MITM_REQUIRED 0x01
#define GAP_ENCRYPTION_OFF 0x00
#define GAP_ENCRYPTION_ON 0x01
#define GAP_KEY_PRESS_ENTRY_STARTED 0x00
#define GAP_KEY_PRESS_DIGIT_ENTERED 0x01
#define GAP_KEY_PRESS_DIGIT_ERASED 0x02
#define GAP_KEY_PRESS_CLEARED 0x03
#define GAP_KEY_PRESS_ENTRY_COMPLETED 0x04
* @brief OOB data structure.
*/
typedef struct {
uint8_t C[GAP_OOB_DATA_CONFIRM_SIZE];
uint8_t R[GAP_OOB_DATA_RANDOM_SIZE];
} GapOOBData;
#ifdef __cplusplus
}
#endif
#endif