mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-06 09:07:16 -04:00
x/sys/unix: added SockaddrCAN struct to allow creation of AF_CAN sockets
Fixes golang/go#16188 Change-Id: I396ccbf6ce14147bc03ecdf180c2657c22b477b4 Reviewed-on: https://go-review.googlesource.com/33392 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Ian Lance Taylor
parent
b699b70325
commit
30237cf4ee
@@ -128,6 +128,7 @@ includes_Linux='
|
|||||||
#include <linux/wait.h>
|
#include <linux/wait.h>
|
||||||
#include <linux/icmpv6.h>
|
#include <linux/icmpv6.h>
|
||||||
#include <linux/serial.h>
|
#include <linux/serial.h>
|
||||||
|
#include <linux/can.h>
|
||||||
#include <net/route.h>
|
#include <net/route.h>
|
||||||
#include <asm/termbits.h>
|
#include <asm/termbits.h>
|
||||||
|
|
||||||
@@ -339,6 +340,7 @@ ccflags="$@"
|
|||||||
$2 !~ /^(BPF_TIMEVAL)$/ &&
|
$2 !~ /^(BPF_TIMEVAL)$/ &&
|
||||||
$2 ~ /^(BPF|DLT)_/ ||
|
$2 ~ /^(BPF|DLT)_/ ||
|
||||||
$2 ~ /^CLOCK_/ ||
|
$2 ~ /^CLOCK_/ ||
|
||||||
|
$2 ~ /^CAN_/ ||
|
||||||
$2 !~ "WMESGLEN" &&
|
$2 !~ "WMESGLEN" &&
|
||||||
$2 ~ /^W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", $2, $2)}
|
$2 ~ /^W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", $2, $2)}
|
||||||
$2 ~ /^__WCOREFLAG$/ {next}
|
$2 ~ /^__WCOREFLAG$/ {next}
|
||||||
|
|||||||
@@ -411,6 +411,47 @@ func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
|||||||
return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
|
return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.
|
||||||
|
// The RxID and TxID fields are used for transport protocol addressing in
|
||||||
|
// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with
|
||||||
|
// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning.
|
||||||
|
//
|
||||||
|
// The SockaddrCAN struct must be bound to the socket file descriptor
|
||||||
|
// using Bind before the CAN socket can be used.
|
||||||
|
//
|
||||||
|
// // Read one raw CAN frame
|
||||||
|
// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)
|
||||||
|
// addr := &SockaddrCAN{Ifindex: index}
|
||||||
|
// Bind(fd, addr)
|
||||||
|
// frame := make([]byte, 16)
|
||||||
|
// Read(fd, frame)
|
||||||
|
//
|
||||||
|
// The full SocketCAN documentation can be found in the linux kernel
|
||||||
|
// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt
|
||||||
|
type SockaddrCAN struct {
|
||||||
|
Ifindex int
|
||||||
|
RxID uint32
|
||||||
|
TxID uint32
|
||||||
|
raw RawSockaddrCAN
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {
|
||||||
|
return nil, 0, EINVAL
|
||||||
|
}
|
||||||
|
sa.raw.Family = AF_CAN
|
||||||
|
sa.raw.Ifindex = int32(sa.Ifindex)
|
||||||
|
rx := (*[4]byte)(unsafe.Pointer(&sa.RxID))
|
||||||
|
for i := 0; i < 4; i++ {
|
||||||
|
sa.raw.Addr[i] = rx[i]
|
||||||
|
}
|
||||||
|
tx := (*[4]byte)(unsafe.Pointer(&sa.TxID))
|
||||||
|
for i := 0; i < 4; i++ {
|
||||||
|
sa.raw.Addr[i+4] = tx[i]
|
||||||
|
}
|
||||||
|
return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, 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:
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ package unix
|
|||||||
#include <utime.h>
|
#include <utime.h>
|
||||||
#include <bluetooth/bluetooth.h>
|
#include <bluetooth/bluetooth.h>
|
||||||
#include <bluetooth/hci.h>
|
#include <bluetooth/hci.h>
|
||||||
|
#include <linux/can.h>
|
||||||
|
|
||||||
#ifdef TCSETS2
|
#ifdef TCSETS2
|
||||||
// On systems that have "struct termios2" use this as type Termios.
|
// On systems that have "struct termios2" use this as type Termios.
|
||||||
@@ -218,6 +219,8 @@ type RawSockaddrNetlink C.struct_sockaddr_nl
|
|||||||
|
|
||||||
type RawSockaddrHCI C.struct_sockaddr_hci
|
type RawSockaddrHCI C.struct_sockaddr_hci
|
||||||
|
|
||||||
|
type RawSockaddrCAN C.struct_sockaddr_can
|
||||||
|
|
||||||
type RawSockaddr C.struct_sockaddr
|
type RawSockaddr C.struct_sockaddr
|
||||||
|
|
||||||
type RawSockaddrAny C.struct_sockaddr_any
|
type RawSockaddrAny C.struct_sockaddr_any
|
||||||
@@ -258,6 +261,7 @@ const (
|
|||||||
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
|
SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci
|
||||||
|
SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can
|
||||||
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
|
||||||
|
|||||||
@@ -190,6 +190,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x2000
|
BS1 = 0x2000
|
||||||
BSDLY = 0x2000
|
BSDLY = 0x2000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0x100f
|
CBAUD = 0x100f
|
||||||
CBAUDEX = 0x1000
|
CBAUDEX = 0x1000
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -190,6 +190,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x2000
|
BS1 = 0x2000
|
||||||
BSDLY = 0x2000
|
BSDLY = 0x2000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0x100f
|
CBAUD = 0x100f
|
||||||
CBAUDEX = 0x1000
|
CBAUDEX = 0x1000
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -186,6 +186,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x2000
|
BS1 = 0x2000
|
||||||
BSDLY = 0x2000
|
BSDLY = 0x2000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0x100f
|
CBAUD = 0x100f
|
||||||
CBAUDEX = 0x1000
|
CBAUDEX = 0x1000
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -196,6 +196,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x2000
|
BS1 = 0x2000
|
||||||
BSDLY = 0x2000
|
BSDLY = 0x2000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0x100f
|
CBAUD = 0x100f
|
||||||
CBAUDEX = 0x1000
|
CBAUDEX = 0x1000
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -197,6 +197,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x8000
|
BS1 = 0x8000
|
||||||
BSDLY = 0x8000
|
BSDLY = 0x8000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0xff
|
CBAUD = 0xff
|
||||||
CBAUDEX = 0x0
|
CBAUDEX = 0x0
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -196,6 +196,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x8000
|
BS1 = 0x8000
|
||||||
BSDLY = 0x8000
|
BSDLY = 0x8000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0xff
|
CBAUD = 0xff
|
||||||
CBAUDEX = 0x0
|
CBAUDEX = 0x0
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -201,6 +201,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x2000
|
BS1 = 0x2000
|
||||||
BSDLY = 0x2000
|
BSDLY = 0x2000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0x100f
|
CBAUD = 0x100f
|
||||||
CBAUDEX = 0x1000
|
CBAUDEX = 0x1000
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -205,6 +205,25 @@ const (
|
|||||||
BS0 = 0x0
|
BS0 = 0x0
|
||||||
BS1 = 0x2000
|
BS1 = 0x2000
|
||||||
BSDLY = 0x2000
|
BSDLY = 0x2000
|
||||||
|
CAN_BCM = 0x2
|
||||||
|
CAN_EFF_FLAG = 0x80000000
|
||||||
|
CAN_EFF_ID_BITS = 0x1d
|
||||||
|
CAN_EFF_MASK = 0x1fffffff
|
||||||
|
CAN_ERR_FLAG = 0x20000000
|
||||||
|
CAN_ERR_MASK = 0x1fffffff
|
||||||
|
CAN_INV_FILTER = 0x20000000
|
||||||
|
CAN_ISOTP = 0x6
|
||||||
|
CAN_MAX_DLC = 0x8
|
||||||
|
CAN_MAX_DLEN = 0x8
|
||||||
|
CAN_MCNET = 0x5
|
||||||
|
CAN_MTU = 0x10
|
||||||
|
CAN_NPROTO = 0x7
|
||||||
|
CAN_RAW = 0x1
|
||||||
|
CAN_RTR_FLAG = 0x40000000
|
||||||
|
CAN_SFF_ID_BITS = 0xb
|
||||||
|
CAN_SFF_MASK = 0x7ff
|
||||||
|
CAN_TP16 = 0x3
|
||||||
|
CAN_TP20 = 0x4
|
||||||
CBAUD = 0x100f
|
CBAUD = 0x100f
|
||||||
CBAUDEX = 0x1000
|
CBAUDEX = 0x1000
|
||||||
CFLUSH = 0xf
|
CFLUSH = 0xf
|
||||||
|
|||||||
@@ -203,6 +203,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -326,6 +333,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -205,6 +205,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -330,6 +337,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -207,6 +207,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]uint8
|
Data [14]uint8
|
||||||
@@ -330,6 +337,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -206,6 +206,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -331,6 +338,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -206,6 +206,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -330,6 +337,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -206,6 +206,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -330,6 +337,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -207,6 +207,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]uint8
|
Data [14]uint8
|
||||||
@@ -332,6 +339,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -207,6 +207,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]uint8
|
Data [14]uint8
|
||||||
@@ -332,6 +339,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -206,6 +206,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -330,6 +337,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
@@ -211,6 +211,13 @@ type RawSockaddrHCI struct {
|
|||||||
Channel uint16
|
Channel uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RawSockaddrCAN struct {
|
||||||
|
Family uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Ifindex int32
|
||||||
|
Addr [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
type RawSockaddr struct {
|
type RawSockaddr struct {
|
||||||
Family uint16
|
Family uint16
|
||||||
Data [14]int8
|
Data [14]int8
|
||||||
@@ -335,6 +342,7 @@ const (
|
|||||||
SizeofSockaddrLinklayer = 0x14
|
SizeofSockaddrLinklayer = 0x14
|
||||||
SizeofSockaddrNetlink = 0xc
|
SizeofSockaddrNetlink = 0xc
|
||||||
SizeofSockaddrHCI = 0x6
|
SizeofSockaddrHCI = 0x6
|
||||||
|
SizeofSockaddrCAN = 0x10
|
||||||
SizeofLinger = 0x8
|
SizeofLinger = 0x8
|
||||||
SizeofIPMreq = 0x8
|
SizeofIPMreq = 0x8
|
||||||
SizeofIPMreqn = 0xc
|
SizeofIPMreqn = 0xc
|
||||||
|
|||||||
Reference in New Issue
Block a user