mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-17 12:34:01 +00:00
Bluetooth: Add support hdev to allocate private data
This patch adds support hdev to allocate extra size for private data. The size of private data is specified in the hdev_alloc_size(priv_size) and the allocated buffer can be accessed with hci_get_priv(hdev). Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
713baf3dae
commit
6ec566131d
2 changed files with 22 additions and 4 deletions
|
@ -1224,10 +1224,21 @@ static inline void hci_set_drvdata(struct hci_dev *hdev, void *data)
|
|||
dev_set_drvdata(&hdev->dev, data);
|
||||
}
|
||||
|
||||
static inline void *hci_get_priv(struct hci_dev *hdev)
|
||||
{
|
||||
return (char *)hdev + sizeof(*hdev);
|
||||
}
|
||||
|
||||
struct hci_dev *hci_dev_get(int index);
|
||||
struct hci_dev *hci_get_route(bdaddr_t *dst, bdaddr_t *src, u8 src_type);
|
||||
|
||||
struct hci_dev *hci_alloc_dev(void);
|
||||
struct hci_dev *hci_alloc_dev_priv(int sizeof_priv);
|
||||
|
||||
static inline struct hci_dev *hci_alloc_dev(void)
|
||||
{
|
||||
return hci_alloc_dev_priv(0);
|
||||
}
|
||||
|
||||
void hci_free_dev(struct hci_dev *hdev);
|
||||
int hci_register_dev(struct hci_dev *hdev);
|
||||
void hci_unregister_dev(struct hci_dev *hdev);
|
||||
|
|
|
@ -3751,11 +3751,18 @@ done:
|
|||
}
|
||||
|
||||
/* Alloc HCI device */
|
||||
struct hci_dev *hci_alloc_dev(void)
|
||||
struct hci_dev *hci_alloc_dev_priv(int sizeof_priv)
|
||||
{
|
||||
struct hci_dev *hdev;
|
||||
unsigned int alloc_size;
|
||||
|
||||
hdev = kzalloc(sizeof(*hdev), GFP_KERNEL);
|
||||
alloc_size = sizeof(*hdev);
|
||||
if (sizeof_priv) {
|
||||
/* Fixme: May need ALIGN-ment? */
|
||||
alloc_size += sizeof_priv;
|
||||
}
|
||||
|
||||
hdev = kzalloc(alloc_size, GFP_KERNEL);
|
||||
if (!hdev)
|
||||
return NULL;
|
||||
|
||||
|
@ -3869,7 +3876,7 @@ struct hci_dev *hci_alloc_dev(void)
|
|||
|
||||
return hdev;
|
||||
}
|
||||
EXPORT_SYMBOL(hci_alloc_dev);
|
||||
EXPORT_SYMBOL(hci_alloc_dev_priv);
|
||||
|
||||
/* Free HCI device */
|
||||
void hci_free_dev(struct hci_dev *hdev)
|
||||
|
|
Loading…
Add table
Reference in a new issue