FreeBSD kernel netgraph code
|
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/endian.h>
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/queue.h>
#include <netgraph/ng_message.h>
#include <netgraph/netgraph.h>
#include <netgraph/bluetooth/include/ng_bluetooth.h>
#include <netgraph/bluetooth/include/ng_hci.h>
#include <netgraph/bluetooth/hci/ng_hci_var.h>
#include <netgraph/bluetooth/hci/ng_hci_cmds.h>
#include <netgraph/bluetooth/hci/ng_hci_evnt.h>
#include <netgraph/bluetooth/hci/ng_hci_ulpi.h>
#include <netgraph/bluetooth/hci/ng_hci_misc.h>
Go to the source code of this file.
Macros | |
#define | min(a, b) ((a) < (b))? (a) : (b) |
Functions | |
static int | complete_command (ng_hci_unit_p, int, struct mbuf **) |
static int | process_link_control_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_link_policy_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_hc_baseband_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_info_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_status_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_testing_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_le_params (ng_hci_unit_p, u_int16_t, struct mbuf *, struct mbuf *) |
static int | process_link_control_status (ng_hci_unit_p, ng_hci_command_status_ep *, struct mbuf *) |
static int | process_link_policy_status (ng_hci_unit_p, ng_hci_command_status_ep *, struct mbuf *) |
static int | process_le_status (ng_hci_unit_p, ng_hci_command_status_ep *, struct mbuf *) |
int | ng_hci_send_command (ng_hci_unit_p unit) |
int | ng_hci_process_command_complete (ng_hci_unit_p unit, struct mbuf *e) |
int | ng_hci_process_command_status (ng_hci_unit_p unit, struct mbuf *e) |
void | ng_hci_process_command_timeout (node_p node, hook_p hook, void *arg1, int arg2) |
#define min | ( | a, | |
b | |||
) | ((a) < (b))? (a) : (b) |
Definition at line 60 of file ng_hci_cmds.c.
|
static |
Definition at line 335 of file ng_hci_cmds.c.
References ng_hci_unit::cmdq, NG_BT_MBUFQ_DEQUEUE, NG_BT_MBUFQ_FIRST, NG_HCI_ALERT, ng_hci_command_untimeout(), NG_HCI_UNIT_COMMAND_PENDING, NG_NODE_NAME, ng_hci_unit::node, opcode, and ng_hci_unit::state.
Referenced by ng_hci_process_command_complete(), and ng_hci_process_command_status().
int ng_hci_process_command_complete | ( | ng_hci_unit_p | unit, |
struct mbuf * | e | ||
) |
Definition at line 164 of file ng_hci_cmds.c.
References ng_hci_unit::buffer, complete_command(), NG_FREE_M, NG_HCI_BUFF_CMD_SET, NG_HCI_ERR, NG_HCI_M_PULLUP, NG_HCI_OCF, NG_HCI_OGF, NG_HCI_OGF_BT_LOGO, NG_HCI_OGF_HC_BASEBAND, NG_HCI_OGF_INFO, NG_HCI_OGF_LE, NG_HCI_OGF_LINK_CONTROL, NG_HCI_OGF_LINK_POLICY, NG_HCI_OGF_STATUS, NG_HCI_OGF_TESTING, NG_HCI_OGF_VENDOR, ng_hci_send_command(), NG_NODE_NAME, ng_hci_unit::node, process_hc_baseband_params(), process_info_params(), process_le_params(), process_link_control_params(), process_link_policy_params(), process_status_params(), and process_testing_params().
Referenced by ng_hci_process_event().
int ng_hci_process_command_status | ( | ng_hci_unit_p | unit, |
struct mbuf * | e | ||
) |
Definition at line 269 of file ng_hci_cmds.c.
References ng_hci_unit::buffer, complete_command(), NG_FREE_M, NG_HCI_BUFF_CMD_SET, NG_HCI_M_PULLUP, NG_HCI_OGF, NG_HCI_OGF_BT_LOGO, NG_HCI_OGF_HC_BASEBAND, NG_HCI_OGF_INFO, NG_HCI_OGF_LE, NG_HCI_OGF_LINK_CONTROL, NG_HCI_OGF_LINK_POLICY, NG_HCI_OGF_STATUS, NG_HCI_OGF_TESTING, NG_HCI_OGF_VENDOR, ng_hci_send_command(), process_le_status(), process_link_control_status(), and process_link_policy_status().
Referenced by ng_hci_process_event().
Definition at line 393 of file ng_hci_cmds.c.
References ng_hci_unit::buffer, ng_hci_unit::cmdq, NG_BT_MBUFQ_DEQUEUE, NG_FREE_M, NG_HCI_ALERT, NG_HCI_BUFF_CMD_SET, NG_HCI_ERR, NG_HCI_OCF, NG_HCI_OGF, ng_hci_send_command(), NG_HCI_UNIT_COMMAND_PENDING, NG_NODE_NAME, NG_NODE_NOT_VALID, NG_NODE_PRIVATE, ng_hci_unit::node, opcode, and ng_hci_unit::state.
Referenced by ng_hci_command_timeout().
int ng_hci_send_command | ( | ng_hci_unit_p | unit | ) |
Definition at line 91 of file ng_hci_cmds.c.
References ng_hci_unit::buffer, ng_hci_unit::cmdq, ng_hci_unit::drv, NG_BT_MBUFQ_DRAIN, NG_BT_MBUFQ_FIRST, NG_HCI_BUFF_CMD_GET, NG_HCI_BUFF_CMD_USE, ng_hci_command_timeout(), NG_HCI_ERR, NG_HCI_HOOK_DRV, ng_hci_mtap(), NG_HCI_STAT_BYTES_SENT, NG_HCI_STAT_CMD_SENT, NG_HCI_UNIT_COMMAND_PENDING, NG_HCI_WARN, NG_HOOK_NOT_VALID, NG_NODE_NAME, NG_SEND_DATA_ONLY, ng_hci_unit::node, ng_hci_unit::stat, and ng_hci_unit::state.
Referenced by con_compl(), ng_hci_lp_acl_con_req(), ng_hci_lp_con_rsp(), ng_hci_lp_discon_req(), ng_hci_lp_le_con_req(), ng_hci_lp_qos_req(), ng_hci_lp_sco_con_req(), ng_hci_process_command_complete(), ng_hci_process_command_status(), ng_hci_process_command_timeout(), and ng_hci_raw_rcvdata().
|
static |
Definition at line 562 of file ng_hci_cmds.c.
References ng_hci_unit::buffer, ng_hci_unit_con::flags, NG_FREE_M, NG_HCI_BUFF_ACL_FREE, NG_HCI_BUFF_ACL_TOTAL, NG_HCI_BUFF_SCO_FREE, NG_HCI_BUFF_SCO_TOTAL, NG_HCI_CON_TIMEOUT_PENDING, ng_hci_con_untimeout(), ng_hci_free_con(), ng_hci_lp_discon_ind(), NG_HCI_OCF_CHANGE_LOCAL_NAME, NG_HCI_OCF_CREATE_NEW_UNIT_KEY, NG_HCI_OCF_DELETE_STORED_LINK_KEY, NG_HCI_OCF_FLUSH, NG_HCI_OCF_H2HC_FLOW_CONTROL, NG_HCI_OCF_HOST_BUFFER_SIZE, NG_HCI_OCF_HOST_NUM_COMPL_PKTS, NG_HCI_OCF_READ_AUTH_ENABLE, NG_HCI_OCF_READ_AUTO_FLUSH_TIMO, NG_HCI_OCF_READ_CON_ACCEPT_TIMO, NG_HCI_OCF_READ_ENCRYPTION_MODE, NG_HCI_OCF_READ_HOLD_MODE_ACTIVITY, NG_HCI_OCF_READ_IAC_LAP, NG_HCI_OCF_READ_INQUIRY_SCAN_ACTIVITY, NG_HCI_OCF_READ_LE_HOST_SUPPORTED, NG_HCI_OCF_READ_LINK_SUPERVISION_TIMO, NG_HCI_OCF_READ_LOCAL_NAME, NG_HCI_OCF_READ_NUM_BROADCAST_RETRANS, NG_HCI_OCF_READ_PAGE_SCAN, NG_HCI_OCF_READ_PAGE_SCAN_ACTIVITY, NG_HCI_OCF_READ_PAGE_SCAN_PERIOD, NG_HCI_OCF_READ_PAGE_TIMO, NG_HCI_OCF_READ_PIN_TYPE, NG_HCI_OCF_READ_SCAN_ENABLE, NG_HCI_OCF_READ_SCO_FLOW_CONTROL, NG_HCI_OCF_READ_STORED_LINK_KEY, NG_HCI_OCF_READ_SUPPORTED_IAC_NUM, NG_HCI_OCF_READ_UNIT_CLASS, NG_HCI_OCF_READ_VOICE_SETTINGS, NG_HCI_OCF_READ_XMIT_LEVEL, NG_HCI_OCF_RESET, NG_HCI_OCF_SET_EVENT_FILTER, NG_HCI_OCF_SET_EVENT_MASK, NG_HCI_OCF_WRITE_AUTH_ENABLE, NG_HCI_OCF_WRITE_AUTO_FLUSH_TIMO, NG_HCI_OCF_WRITE_CON_ACCEPT_TIMO, NG_HCI_OCF_WRITE_ENCRYPTION_MODE, NG_HCI_OCF_WRITE_HOLD_MODE_ACTIVITY, NG_HCI_OCF_WRITE_IAC_LAP, NG_HCI_OCF_WRITE_INQUIRY_SCAN_ACTIVITY, NG_HCI_OCF_WRITE_LE_HOST_SUPPORTED, NG_HCI_OCF_WRITE_LINK_SUPERVISION_TIMO, NG_HCI_OCF_WRITE_NUM_BROADCAST_RETRANS, NG_HCI_OCF_WRITE_PAGE_SCAN, NG_HCI_OCF_WRITE_PAGE_SCAN_ACTIVITY, NG_HCI_OCF_WRITE_PAGE_SCAN_PERIOD, NG_HCI_OCF_WRITE_PAGE_TIMO, NG_HCI_OCF_WRITE_PIN_TYPE, NG_HCI_OCF_WRITE_SCAN_ENABLE, NG_HCI_OCF_WRITE_SCO_FLOW_CONTROL, NG_HCI_OCF_WRITE_STORED_LINK_KEY, NG_HCI_OCF_WRITE_UNIT_CLASS, NG_HCI_OCF_WRITE_VOICE_SETTINGS, and ng_hci_unit::state.
Referenced by ng_hci_process_command_complete().
|
static |
Definition at line 675 of file ng_hci_cmds.c.
References ng_hci_unit::acl, ng_hci_unit::bdaddr, ng_hci_unit::buffer, ng_hci_unit::features, min, NG_FREE_M, NG_HCI_BUFF_ACL_SET, NG_HCI_BUFF_SCO_SET, NG_HCI_M_PULLUP, ng_hci_node_is_up(), NG_HCI_OCF_READ_BDADDR, NG_HCI_OCF_READ_BUFFER_SIZE, NG_HCI_OCF_READ_COUNTRY_CODE, NG_HCI_OCF_READ_LOCAL_FEATURES, NG_HCI_OCF_READ_LOCAL_VER, NG_HCI_UNIT_READY, ng_hci_unit::node, ng_hci_unit::sco, and ng_hci_unit::state.
Referenced by ng_hci_process_command_complete().
|
static |
Definition at line 816 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF_LE_ADD_DEVICE_TO_WHITE_LIST, NG_HCI_OCF_LE_CLEAR_WHITE_LIST, NG_HCI_OCF_LE_CONNECTION_UPDATE, NG_HCI_OCF_LE_CREATE_CONNECTION, NG_HCI_OCF_LE_CREATE_CONNECTION_CANCEL, NG_HCI_OCF_LE_ENCRYPT, NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY, NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_REPLY, NG_HCI_OCF_LE_RAND, NG_HCI_OCF_LE_READ_ADVERTISING_CHANNEL_TX_POWER, NG_HCI_OCF_LE_READ_BUFFER_SIZE, NG_HCI_OCF_LE_READ_CHANNEL_MAP, NG_HCI_OCF_LE_READ_LOCAL_SUPPORTED_FEATURES, NG_HCI_OCF_LE_READ_REMOTE_USED_FEATURES, NG_HCI_OCF_LE_READ_SUPPORTED_STATES, NG_HCI_OCF_LE_READ_WHITE_LIST_SIZE, NG_HCI_OCF_LE_RECEIVER_TEST, NG_HCI_OCF_LE_REMOVE_DEVICE_FROM_WHITE_LIST, NG_HCI_OCF_LE_SET_ADVERTISE_ENABLE, NG_HCI_OCF_LE_SET_ADVERTISING_DATA, NG_HCI_OCF_LE_SET_ADVERTISING_PARAMETERS, NG_HCI_OCF_LE_SET_EVENT_MASK, NG_HCI_OCF_LE_SET_HOST_CHANNEL_CLASSIFICATION, NG_HCI_OCF_LE_SET_RANDOM_ADDRESS, NG_HCI_OCF_LE_SET_SCAN_ENABLE, NG_HCI_OCF_LE_SET_SCAN_PARAMETERS, NG_HCI_OCF_LE_SET_SCAN_RESPONSE_DATA, NG_HCI_OCF_LE_START_ENCRYPTION, NG_HCI_OCF_LE_TEST_END, and NG_HCI_OCF_LE_TRANSMITTER_TEST.
Referenced by ng_hci_process_command_complete().
|
static |
Definition at line 876 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF, NG_HCI_OCF_LE_ADD_DEVICE_TO_WHITE_LIST, NG_HCI_OCF_LE_CLEAR_WHITE_LIST, NG_HCI_OCF_LE_CONNECTION_UPDATE, NG_HCI_OCF_LE_CREATE_CONNECTION, NG_HCI_OCF_LE_CREATE_CONNECTION_CANCEL, NG_HCI_OCF_LE_ENCRYPT, NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY, NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_REPLY, NG_HCI_OCF_LE_RAND, NG_HCI_OCF_LE_READ_ADVERTISING_CHANNEL_TX_POWER, NG_HCI_OCF_LE_READ_BUFFER_SIZE, NG_HCI_OCF_LE_READ_CHANNEL_MAP, NG_HCI_OCF_LE_READ_LOCAL_SUPPORTED_FEATURES, NG_HCI_OCF_LE_READ_REMOTE_USED_FEATURES, NG_HCI_OCF_LE_READ_SUPPORTED_STATES, NG_HCI_OCF_LE_READ_WHITE_LIST_SIZE, NG_HCI_OCF_LE_RECEIVER_TEST, NG_HCI_OCF_LE_REMOVE_DEVICE_FROM_WHITE_LIST, NG_HCI_OCF_LE_SET_ADVERTISE_ENABLE, NG_HCI_OCF_LE_SET_ADVERTISING_DATA, NG_HCI_OCF_LE_SET_ADVERTISING_PARAMETERS, NG_HCI_OCF_LE_SET_EVENT_MASK, NG_HCI_OCF_LE_SET_HOST_CHANNEL_CLASSIFICATION, NG_HCI_OCF_LE_SET_RANDOM_ADDRESS, NG_HCI_OCF_LE_SET_SCAN_ENABLE, NG_HCI_OCF_LE_SET_SCAN_PARAMETERS, NG_HCI_OCF_LE_SET_SCAN_RESPONSE_DATA, NG_HCI_OCF_LE_START_ENCRYPTION, NG_HCI_OCF_LE_TEST_END, and NG_HCI_OCF_LE_TRANSMITTER_TEST.
Referenced by ng_hci_process_command_status().
|
static |
Definition at line 438 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF_ACCEPT_CON, NG_HCI_OCF_ADD_SCO_CON, NG_HCI_OCF_AUTH_REQ, NG_HCI_OCF_CHANGE_CON_LINK_KEY, NG_HCI_OCF_CHANGE_CON_PKT_TYPE, NG_HCI_OCF_CREATE_CON, NG_HCI_OCF_DISCON, NG_HCI_OCF_EXIT_PERIODIC_INQUIRY, NG_HCI_OCF_INQUIRY, NG_HCI_OCF_INQUIRY_CANCEL, NG_HCI_OCF_LINK_KEY_NEG_REP, NG_HCI_OCF_LINK_KEY_REP, NG_HCI_OCF_MASTER_LINK_KEY, NG_HCI_OCF_PERIODIC_INQUIRY, NG_HCI_OCF_PIN_CODE_NEG_REP, NG_HCI_OCF_PIN_CODE_REP, NG_HCI_OCF_READ_CLOCK_OFFSET, NG_HCI_OCF_READ_REMOTE_FEATURES, NG_HCI_OCF_READ_REMOTE_VER_INFO, NG_HCI_OCF_REJECT_CON, NG_HCI_OCF_REMOTE_NAME_REQ, and NG_HCI_OCF_SET_CON_ENCRYPTION.
Referenced by ng_hci_process_command_complete().
|
static |
Definition at line 938 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF, NG_HCI_OCF_ACCEPT_CON, NG_HCI_OCF_ADD_SCO_CON, NG_HCI_OCF_AUTH_REQ, NG_HCI_OCF_CHANGE_CON_LINK_KEY, NG_HCI_OCF_CHANGE_CON_PKT_TYPE, NG_HCI_OCF_CREATE_CON, NG_HCI_OCF_DISCON, NG_HCI_OCF_EXIT_PERIODIC_INQUIRY, NG_HCI_OCF_INQUIRY, NG_HCI_OCF_INQUIRY_CANCEL, NG_HCI_OCF_LINK_KEY_NEG_REP, NG_HCI_OCF_LINK_KEY_REP, NG_HCI_OCF_MASTER_LINK_KEY, NG_HCI_OCF_PERIODIC_INQUIRY, NG_HCI_OCF_PIN_CODE_NEG_REP, NG_HCI_OCF_PIN_CODE_REP, NG_HCI_OCF_READ_CLOCK_OFFSET, NG_HCI_OCF_READ_REMOTE_FEATURES, NG_HCI_OCF_READ_REMOTE_VER_INFO, NG_HCI_OCF_REJECT_CON, NG_HCI_OCF_REMOTE_NAME_REQ, and NG_HCI_OCF_SET_CON_ENCRYPTION.
Referenced by ng_hci_process_command_status().
|
static |
Definition at line 493 of file ng_hci_cmds.c.
References ng_hci_unit_con::link_type, NG_FREE_M, NG_HCI_ALERT, ng_hci_con_by_handle(), NG_HCI_CON_HANDLE, NG_HCI_LINK_ACL, NG_HCI_M_PULLUP, NG_HCI_OCF_EXIT_PARK_MODE, NG_HCI_OCF_EXIT_SNIFF_MODE, NG_HCI_OCF_HOLD_MODE, NG_HCI_OCF_PARK_MODE, NG_HCI_OCF_QOS_SETUP, NG_HCI_OCF_READ_LINK_POLICY_SETTINGS, NG_HCI_OCF_ROLE_DISCOVERY, NG_HCI_OCF_SNIFF_MODE, NG_HCI_OCF_SWITCH_ROLE, NG_HCI_OCF_WRITE_LINK_POLICY_SETTINGS, NG_NODE_NAME, ng_hci_unit::node, and ng_hci_unit_con::role.
Referenced by ng_hci_process_command_complete().
|
static |
Definition at line 997 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF, NG_HCI_OCF_EXIT_PARK_MODE, NG_HCI_OCF_EXIT_SNIFF_MODE, NG_HCI_OCF_HOLD_MODE, NG_HCI_OCF_PARK_MODE, NG_HCI_OCF_QOS_SETUP, NG_HCI_OCF_READ_LINK_POLICY_SETTINGS, NG_HCI_OCF_ROLE_DISCOVERY, NG_HCI_OCF_SNIFF_MODE, NG_HCI_OCF_SWITCH_ROLE, and NG_HCI_OCF_WRITE_LINK_POLICY_SETTINGS.
Referenced by ng_hci_process_command_status().
|
static |
Definition at line 753 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF_GET_LINK_QUALITY, NG_HCI_OCF_READ_FAILED_CONTACT_CNTR, NG_HCI_OCF_READ_RSSI, and NG_HCI_OCF_RESET_FAILED_CONTACT_CNTR.
Referenced by ng_hci_process_command_complete().
|
static |
Definition at line 782 of file ng_hci_cmds.c.
References NG_FREE_M, NG_HCI_OCF_ENABLE_UNIT_UNDER_TEST, NG_HCI_OCF_READ_LOOPBACK_MODE, and NG_HCI_OCF_WRITE_LOOPBACK_MODE.
Referenced by ng_hci_process_command_complete().