mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-30 15:44:21 +08:00
d7f2a7916f
This will allow to register and unregister handlers for IPC messages Basic sanity check will be done in common code. Commands with variable length will be verified against minimum size only.
33 lines
1.0 KiB
C
33 lines
1.0 KiB
C
/*
|
|
* Copyright (C) 2013 Intel Corporation
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
struct hal_ipc_handler {
|
|
void (*handler) (void *buf, uint16_t len);
|
|
bool var_len;
|
|
size_t data_len;
|
|
};
|
|
|
|
bool hal_ipc_init(void);
|
|
void hal_ipc_cleanup(void);
|
|
|
|
int hal_ipc_cmd(uint8_t service_id, uint8_t opcode, uint16_t len, void *param,
|
|
size_t *rsp_len, void *rsp, int *fd);
|
|
|
|
void hal_ipc_register(uint8_t service, const struct hal_ipc_handler *handlers,
|
|
uint8_t size);
|
|
void hal_ipc_unregister(uint8_t service);
|