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