2008-07-29 12:09:56

by pavan_savoy

[permalink] [raw]
Subject: HCI_Reset and Notification to User-Space

Hi,

I am trying to understand the HCI_RESET procedure and the notification of new device to the user-space, in case of a UART Bluetooth device.

What I am trying to understand is, in what place of hciattach does the whole system, [through dbus] get to know the existance of the bt device and what call [from which module] does that notification go to the user-space.

Just a brief about the hciattach / notification to user-space and socket setup.


Thanks in advance.
Pavan


2008-07-29 14:45:25

by Ohad Ben-Cohen

[permalink] [raw]
Subject: Re: HCI_Reset and Notification to User-Space

Pavan,

Please don't top-post.

On Tue, Jul 29, 2008 at 4:40 PM, <[email protected]> wrote:
> Also hci_notify notifies a HCI_DEV_REG event thru' the notifier chain, what I couldnt get was, how does HCI-daemon wait on it.
> (related to g_io_add_watch or something was my guess, but not sure..., or is it using the Stack-Internal Socket Events? which would require hci_dev_open to be called.)
>
> I until now had thought notifier chains are used only for inter-kernel notifications. I guess I was wrong.

The notification IS sent to a kernel client - the hci_sock_dev_event
function. That function in turn sends the event to a user space via a
socket which was created and watched by hcid beforehand. Check out
hcid's main function for more details.

Regards,
Ohad.

2008-07-29 13:40:54

by pavan_savoy

[permalink] [raw]
Subject: Re: HCI_Reset and Notification to User-Space

Thank you,

Also hci_notify notifies a HCI_DEV_REG event thru' the notifier chain, what I couldnt get was, how does HCI-daemon wait on it.
(related to g_io_add_watch or something was my guess, but not sure..., or is it using the Stack-Internal Socket Events? which would require hci_dev_open to be called.)

I until now had thought notifier chains are used only for inter-kernel notifications. I guess I was wrong.

Please clarify.


----- Original Message -----
From: Ohad Ben-Cohen <[email protected]>
To: pavan savoy <[email protected]>
Cc: [email protected]
Sent: Tue, 29 Jul 2008 18:33:20 +0530 (IST)
Subject: Re: HCI_Reset and Notification to User-Space

Hi Pavan,

On Tue, Jul 29, 2008 at 3:09 PM, <[email protected]> wrote:
> What I am trying to understand is, in what place of hciattach does the whole system, [through dbus] get to know the existance of the bt device and what call [from which module] does that notification go to the user-space.

When hciattach calls the HCIUARTSETPROTO ioctl, you get the following
trace in the kernel:
hci_uart_set_proto -> hci_uart_register_dev -> hci_register_dev -> hci_notify.

The last function notifies user space (hcid) about the new device.
Hciattach does not use dbus and does not directly communicate with hcid.

Regards,
Ohad.

>
> Just a brief about the hciattach / notification to user-space and socket setup.
>
>
> Thanks in advance.
> Pavan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>


2008-07-29 13:03:20

by Ohad Ben-Cohen

[permalink] [raw]
Subject: Re: HCI_Reset and Notification to User-Space

Hi Pavan,

On Tue, Jul 29, 2008 at 3:09 PM, <[email protected]> wrote:
> What I am trying to understand is, in what place of hciattach does the whole system, [through dbus] get to know the existance of the bt device and what call [from which module] does that notification go to the user-space.

When hciattach calls the HCIUARTSETPROTO ioctl, you get the following
trace in the kernel:
hci_uart_set_proto -> hci_uart_register_dev -> hci_register_dev -> hci_notify.

The last function notifies user space (hcid) about the new device.
Hciattach does not use dbus and does not directly communicate with hcid.

Regards,
Ohad.

>
> Just a brief about the hciattach / notification to user-space and socket setup.
>
>
> Thanks in advance.
> Pavan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>