logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

raw.h (3617B)


  1. /* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
  2. /*
  3. * linux/can/raw.h
  4. *
  5. * Definitions for raw CAN sockets
  6. *
  7. * Authors: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
  8. * Urs Thuermann <urs.thuermann@volkswagen.de>
  9. * Copyright (c) 2002-2007 Volkswagen Group Electronic Research
  10. * All rights reserved.
  11. *
  12. * Redistribution and use in source and binary forms, with or without
  13. * modification, are permitted provided that the following conditions
  14. * are met:
  15. * 1. Redistributions of source code must retain the above copyright
  16. * notice, this list of conditions and the following disclaimer.
  17. * 2. Redistributions in binary form must reproduce the above copyright
  18. * notice, this list of conditions and the following disclaimer in the
  19. * documentation and/or other materials provided with the distribution.
  20. * 3. Neither the name of Volkswagen nor the names of its contributors
  21. * may be used to endorse or promote products derived from this software
  22. * without specific prior written permission.
  23. *
  24. * Alternatively, provided that this notice is retained in full, this
  25. * software may be distributed under the terms of the GNU General
  26. * Public License ("GPL") version 2, in which case the provisions of the
  27. * GPL apply INSTEAD OF those given above.
  28. *
  29. * The provided data structures and external interfaces from this code
  30. * are not restricted to be used by modules with a GPL compatible license.
  31. *
  32. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  33. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  34. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  35. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  36. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  37. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  38. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  39. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  40. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  41. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  42. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
  43. * DAMAGE.
  44. */
  45. #ifndef _CAN_RAW_H
  46. #define _CAN_RAW_H
  47. #include <linux/can.h>
  48. #define SOL_CAN_RAW (SOL_CAN_BASE + CAN_RAW)
  49. #define CAN_RAW_FILTER_MAX 512 /* maximum number of can_filter set via setsockopt() */
  50. enum {
  51. SCM_CAN_RAW_ERRQUEUE = 1,
  52. };
  53. /* for socket options affecting the socket (not the global system) */
  54. enum {
  55. CAN_RAW_FILTER = 1, /* set 0 .. n can_filter(s) */
  56. CAN_RAW_ERR_FILTER, /* set filter for error frames */
  57. CAN_RAW_LOOPBACK, /* local loopback (default:on) */
  58. CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */
  59. CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */
  60. CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */
  61. CAN_RAW_XL_FRAMES, /* allow CAN XL frames (default:off) */
  62. CAN_RAW_XL_VCID_OPTS, /* CAN XL VCID configuration options */
  63. };
  64. /* configuration for CAN XL virtual CAN identifier (VCID) handling */
  65. struct can_raw_vcid_options {
  66. __u8 flags; /* flags for vcid (filter) behaviour */
  67. __u8 tx_vcid; /* VCID value set into canxl_frame.prio */
  68. __u8 rx_vcid; /* VCID value for VCID filter */
  69. __u8 rx_vcid_mask; /* VCID mask for VCID filter */
  70. };
  71. /* can_raw_vcid_options.flags for CAN XL virtual CAN identifier handling */
  72. #define CAN_RAW_XL_VCID_TX_SET 0x01
  73. #define CAN_RAW_XL_VCID_TX_PASS 0x02
  74. #define CAN_RAW_XL_VCID_RX_FILTER 0x04
  75. #endif /* !_UAPI_CAN_RAW_H */