Commit a80ff226 authored by Tzu-Jung Lee's avatar Tzu-Jung Lee Committed by Brad Fitzpatrick

unix: add sockaddr_hci support for linux.

Change-Id: Ic2eb52d4e9f7b80992707b125c11be54d7973314
Reviewed-on: https://go-review.googlesource.com/21674Reviewed-by: 's avatarMinux Ma <minux@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
parent 8fdfb00a
...@@ -394,6 +394,19 @@ func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { ...@@ -394,6 +394,19 @@ func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {
return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil
} }
type SockaddrHCI struct {
Dev uint16
Channel uint16
raw RawSockaddrHCI
}
func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {
sa.raw.Family = AF_BLUETOOTH
sa.raw.Dev = sa.Dev
sa.raw.Channel = sa.Channel
return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
}
func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
switch rsa.Addr.Family { switch rsa.Addr.Family {
case AF_NETLINK: case AF_NETLINK:
......
...@@ -196,6 +196,8 @@ type RawSockaddrLinklayer C.struct_sockaddr_ll ...@@ -196,6 +196,8 @@ type RawSockaddrLinklayer C.struct_sockaddr_ll
type RawSockaddrNetlink C.struct_sockaddr_nl type RawSockaddrNetlink C.struct_sockaddr_nl
type RawSockaddrHCI C.struct_sockaddr_hci
type RawSockaddr C.struct_sockaddr type RawSockaddr C.struct_sockaddr
type RawSockaddrAny C.struct_sockaddr_any type RawSockaddrAny C.struct_sockaddr_any
...@@ -235,6 +237,7 @@ const ( ...@@ -235,6 +237,7 @@ const (
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll
SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl
SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci
SizeofLinger = C.sizeof_struct_linger SizeofLinger = C.sizeof_struct_linger
SizeofIPMreq = C.sizeof_struct_ip_mreq SizeofIPMreq = C.sizeof_struct_ip_mreq
SizeofIPMreqn = C.sizeof_struct_ip_mreqn SizeofIPMreqn = C.sizeof_struct_ip_mreqn
......
...@@ -188,6 +188,12 @@ type RawSockaddrNetlink struct { ...@@ -188,6 +188,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -310,6 +316,7 @@ const ( ...@@ -310,6 +316,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -190,6 +190,12 @@ type RawSockaddrNetlink struct { ...@@ -190,6 +190,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -314,6 +320,7 @@ const ( ...@@ -314,6 +320,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -192,6 +192,12 @@ type RawSockaddrNetlink struct { ...@@ -192,6 +192,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]uint8 Data [14]uint8
...@@ -314,6 +320,7 @@ const ( ...@@ -314,6 +320,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -200,6 +200,12 @@ type RawSockaddrNetlink struct { ...@@ -200,6 +200,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -324,6 +330,7 @@ const ( ...@@ -324,6 +330,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -200,6 +200,12 @@ type RawSockaddrNetlink struct { ...@@ -200,6 +200,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -323,6 +329,7 @@ const ( ...@@ -323,6 +329,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -200,6 +200,12 @@ type RawSockaddrNetlink struct { ...@@ -200,6 +200,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]int8 Data [14]int8
...@@ -323,6 +329,7 @@ const ( ...@@ -323,6 +329,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -201,6 +201,12 @@ type RawSockaddrNetlink struct { ...@@ -201,6 +201,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]uint8 Data [14]uint8
...@@ -325,6 +331,7 @@ const ( ...@@ -325,6 +331,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
...@@ -201,6 +201,12 @@ type RawSockaddrNetlink struct { ...@@ -201,6 +201,12 @@ type RawSockaddrNetlink struct {
Groups uint32 Groups uint32
} }
type RawSockaddrHCI struct {
Family uint16
Dev uint16
Channel uint16
}
type RawSockaddr struct { type RawSockaddr struct {
Family uint16 Family uint16
Data [14]uint8 Data [14]uint8
...@@ -325,6 +331,7 @@ const ( ...@@ -325,6 +331,7 @@ const (
SizeofSockaddrUnix = 0x6e SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14 SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofLinger = 0x8 SizeofLinger = 0x8
SizeofIPMreq = 0x8 SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc SizeofIPMreqn = 0xc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment