Add Bluetooth network traffic accounting to HAL API
Introduces a UID traffic struct and includes it in the API for querying energy usage data. Also adds the calling UID as a parameter for starting sockets so that network traffic can be tracked. Bug:26039657 Change-Id: I30a48bcf0abae2fae11454e0d5bb76017b42beea
This commit is contained in:
parent
9d8d359829
commit
af8db0642c
2 changed files with 14 additions and 4 deletions
|
@ -107,6 +107,12 @@ typedef struct {
|
||||||
uint64_t energy_used; /* a product of mA, V and ms */
|
uint64_t energy_used; /* a product of mA, V and ms */
|
||||||
} __attribute__((packed))bt_activity_energy_info;
|
} __attribute__((packed))bt_activity_energy_info;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int32_t app_uid;
|
||||||
|
uint64_t tx_bytes;
|
||||||
|
uint64_t rx_bytes;
|
||||||
|
} __attribute__((packed))bt_uid_traffic_t;
|
||||||
|
|
||||||
/** Bluetooth Adapter Discovery state */
|
/** Bluetooth Adapter Discovery state */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BT_DISCOVERY_STOPPED,
|
BT_DISCOVERY_STOPPED,
|
||||||
|
@ -378,8 +384,12 @@ typedef void (*le_test_mode_callback)(bt_status_t status, uint16_t num_packets);
|
||||||
* If the ctrl_state value is 0, it means the API call failed
|
* If the ctrl_state value is 0, it means the API call failed
|
||||||
* Time values-In milliseconds as returned by the controller
|
* Time values-In milliseconds as returned by the controller
|
||||||
* Energy used-Value as returned by the controller
|
* Energy used-Value as returned by the controller
|
||||||
* Status-Provides the status of the read_energy_info API call */
|
* Status-Provides the status of the read_energy_info API call
|
||||||
typedef void (*energy_info_callback)(bt_activity_energy_info *energy_info);
|
* uid_data provides an array of bt_uid_traffic_t, where the array is terminated by an element with
|
||||||
|
* app_uid set to -1.
|
||||||
|
*/
|
||||||
|
typedef void (*energy_info_callback)(bt_activity_energy_info *energy_info,
|
||||||
|
bt_uid_traffic_t *uid_data);
|
||||||
|
|
||||||
/** TODO: Add callbacks for Link Up/Down and other generic
|
/** TODO: Add callbacks for Link Up/Down and other generic
|
||||||
* notifications/callbacks */
|
* notifications/callbacks */
|
||||||
|
|
|
@ -58,14 +58,14 @@ typedef struct {
|
||||||
* create_sdp_record(...) in bt_sdp.
|
* create_sdp_record(...) in bt_sdp.
|
||||||
*/
|
*/
|
||||||
bt_status_t (*listen)(btsock_type_t type, const char* service_name,
|
bt_status_t (*listen)(btsock_type_t type, const char* service_name,
|
||||||
const uint8_t* service_uuid, int channel, int* sock_fd, int flags);
|
const uint8_t* service_uuid, int channel, int* sock_fd, int flags, int callingUid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connect to a RFCOMM UUID channel of remote device, It returns the socket fd from which
|
* Connect to a RFCOMM UUID channel of remote device, It returns the socket fd from which
|
||||||
* the btsock_connect_signal and a new socket fd to be accepted can be read out when connected
|
* the btsock_connect_signal and a new socket fd to be accepted can be read out when connected
|
||||||
*/
|
*/
|
||||||
bt_status_t (*connect)(const bt_bdaddr_t *bd_addr, btsock_type_t type, const uint8_t* uuid,
|
bt_status_t (*connect)(const bt_bdaddr_t *bd_addr, btsock_type_t type, const uint8_t* uuid,
|
||||||
int channel, int* sock_fd, int flags);
|
int channel, int* sock_fd, int flags, int callingUid);
|
||||||
} btsock_interface_t;
|
} btsock_interface_t;
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
Loading…
Reference in a new issue