/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 H_BLE_HS_TEST_UTIL_HCI_ #define H_BLE_HS_TEST_UTIL_HCI_ #ifdef __cplusplus extern "C" { #endif /* leave this as macro so it may be used for static const initialization */ #define ble_hs_hci_util_opcode_join(ogf, ocf) (((ogf) << 10) | (ocf)) #define BLE_HS_TEST_UTIL_PHONY_ACK_MAX 64 struct ble_hs_test_util_hci_ack { uint16_t opcode; uint8_t status; uint8_t evt_params[256]; uint8_t evt_params_len; }; struct ble_hs_test_util_hci_num_completed_pkts_entry { uint16_t handle_id; /* 0 for terminating entry in array. */ uint16_t num_pkts; }; /* $out queue */ void ble_hs_test_util_hci_out_adj(int count); void *ble_hs_test_util_hci_out_first(void); void *ble_hs_test_util_hci_out_last(void); void ble_hs_test_util_hci_out_enqueue(void *cmd); void ble_hs_test_util_hci_out_clear(void); void ble_hs_test_util_hci_acks_clear(void); /* $build */ void ble_hs_test_util_hci_build_cmd_complete(uint8_t *dst, int len, uint8_t param_len, uint8_t num_pkts, uint16_t opcode); void ble_hs_test_util_hci_build_cmd_status(uint8_t *dst, int len, uint8_t status, uint8_t num_pkts, uint16_t opcode); /* $ack */ void ble_hs_test_util_hci_ack_set_params(uint16_t opcode, uint8_t status, void *params, uint8_t params_len); void ble_hs_test_util_hci_ack_set(uint16_t opcode, uint8_t status); void ble_hs_test_util_hci_ack_append_params(uint16_t opcode, uint8_t status, void *params, uint8_t params_len); void ble_hs_test_util_hci_ack_append(uint16_t opcode, uint8_t status); void ble_hs_test_util_hci_ack_set_seq(const struct ble_hs_test_util_hci_ack *acks); void ble_hs_test_util_hci_ack_set_startup(void); void ble_hs_test_util_hci_ack_set_disc(uint8_t own_addr_type, int fail_idx, uint8_t fail_status); void ble_hs_test_util_hci_ack_set_disconnect(uint8_t hci_status); int ble_hs_test_util_hci_startup_seq_cnt(void); /* $verify tx */ void ble_hs_test_util_hci_verify_tx_add_irk(uint8_t addr_type, const uint8_t *addr, const uint8_t *peer_irk, const uint8_t *local_irk); void ble_hs_test_util_hci_verify_tx_set_priv_mode(uint8_t addr_type, const uint8_t *addr, uint8_t priv_mode); void ble_hs_test_util_hci_verify_tx_disconnect(uint16_t handle, uint8_t reason); void ble_hs_test_util_hci_verify_tx_create_conn( const struct hci_create_conn *exp); uint8_t *ble_hs_test_util_hci_verify_tx(uint8_t ogf, uint16_t ocf, uint8_t *out_param_len); /* $rx */ void ble_hs_test_util_hci_rx_num_completed_pkts_event( struct ble_hs_test_util_hci_num_completed_pkts_entry *entries); void ble_hs_test_util_hci_rx_disconn_complete_event(uint16_t conn_handle, uint8_t status, uint8_t reason); void ble_hs_test_util_hci_rx_conn_cancel_evt(void); /* $misc */ int ble_hs_test_util_hci_misc_exp_status(int cmd_idx, int fail_idx, uint8_t fail_status); #ifdef __cplusplus } #endif #endif