Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.

Patch courtesy of Joe Jevnik.
This commit is contained in:
Larry Hastings 2015-04-13 17:48:40 -04:00
parent d827be8ff1
commit a6cc551502
8 changed files with 65 additions and 1 deletions

View File

@ -279,6 +279,18 @@ Constants
.. versionadded:: 3.4 .. versionadded:: 3.4
.. data:: CAN_RAW_FD_FRAMES
Enables CAN FD support in a CAN_RAW socket. This is disabled by default.
This allows your application to send both CAN and CAN FD frames; however,
you one must accept both CAN and CAN FD frames when reading from the socket.
This constant is documented in the Linux documentation.
Availability: Linux >= 3.6.
.. versionadded:: 3.5
.. data:: AF_RDS .. data:: AF_RDS
PF_RDS PF_RDS
SOL_RDS SOL_RDS

View File

@ -792,6 +792,9 @@ Changes in the Python API
in Python 3.5, all old `.pyo` files from previous versions of Python are in Python 3.5, all old `.pyo` files from previous versions of Python are
invalid regardless of this PEP. invalid regardless of this PEP.
* The :mod:`socket` module now exports the CAN_RAW_FD_FRAMES constant on linux
3.6 and greater.
Changes in the C API Changes in the C API
-------------------- --------------------

View File

@ -664,6 +664,7 @@ Flemming Kjær Jensen
Philip H. Jensen Philip H. Jensen
Philip Jenvey Philip Jenvey
MunSic Jeong MunSic Jeong
Joe Jevnik
Chris Jerdonek Chris Jerdonek
Jim Jewett Jim Jewett
Pedro Diaz Jimenez Pedro Diaz Jimenez

View File

@ -1,4 +1,4 @@
+++++++++++ +++++++++++
Python News Python News
+++++++++++ +++++++++++
@ -9,6 +9,8 @@ Release date: XXX
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
Patch courtesy of Joe Jevnik.
- Issue #23731: Implement PEP 488: removal of .pyo files. - Issue #23731: Implement PEP 488: removal of .pyo files.

View File

@ -6617,6 +6617,9 @@ PyInit__socket(void)
PyModule_AddIntMacro(m, CAN_RAW_LOOPBACK); PyModule_AddIntMacro(m, CAN_RAW_LOOPBACK);
PyModule_AddIntMacro(m, CAN_RAW_RECV_OWN_MSGS); PyModule_AddIntMacro(m, CAN_RAW_RECV_OWN_MSGS);
#endif #endif
#ifdef HAVE_LINUX_CAN_RAW_FD_FRAMES
PyModule_AddIntMacro(m, CAN_RAW_FD_FRAMES);
#endif
#ifdef HAVE_LINUX_CAN_BCM_H #ifdef HAVE_LINUX_CAN_BCM_H
PyModule_AddIntMacro(m, CAN_BCM); PyModule_AddIntMacro(m, CAN_BCM);
PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP); PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP);

30
configure vendored
View File

@ -10495,6 +10495,36 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
fi fi
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_FD_FRAMES" >&5
$as_echo_n "checking for CAN_RAW_FD_FRAMES... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* CAN_RAW_FD_FRAMES available check */
#include <linux/can/raw.h>
int
main ()
{
int can_raw_fd_frames = CAN_RAW_FD_FRAMES;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OSX 10.5 SDK or later" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OSX 10.5 SDK or later" >&5
$as_echo_n "checking for OSX 10.5 SDK or later... " >&6; } $as_echo_n "checking for OSX 10.5 SDK or later... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext

View File

@ -2876,6 +2876,16 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
fi fi
fi fi
AC_MSG_CHECKING(for CAN_RAW_FD_FRAMES)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ /* CAN_RAW_FD_FRAMES available check */
#include <linux/can/raw.h>]],
[[int can_raw_fd_frames = CAN_RAW_FD_FRAMES;]])],[
AC_DEFINE(HAVE_LINUX_CAN_RAW_FD_FRAMES, 1, [Define if compiling using Linux 3.6 or later.])
AC_MSG_RESULT(yes)
],[
AC_MSG_RESULT(no)
])
AC_MSG_CHECKING(for OSX 10.5 SDK or later) AC_MSG_CHECKING(for OSX 10.5 SDK or later)
AC_COMPILE_IFELSE([ AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[#include <Carbon/Carbon.h>]], [[FSIORefNum fRef = 0]]) AC_LANG_PROGRAM([[#include <Carbon/Carbon.h>]], [[FSIORefNum fRef = 0]])

View File

@ -531,6 +531,9 @@
/* Define to 1 if you have the <linux/can.h> header file. */ /* Define to 1 if you have the <linux/can.h> header file. */
#undef HAVE_LINUX_CAN_H #undef HAVE_LINUX_CAN_H
/* Define if compiling using Linux 3.6 or later. */
#undef HAVE_LINUX_CAN_RAW_FD_FRAMES
/* Define to 1 if you have the <linux/can/raw.h> header file. */ /* Define to 1 if you have the <linux/can/raw.h> header file. */
#undef HAVE_LINUX_CAN_RAW_H #undef HAVE_LINUX_CAN_RAW_H