Release 4.12 include/uapi/linux/can/error.h
/*
* linux/can/error.h
*
* Definitions of the CAN error messages to be filtered and passed to the user.
*
* Author: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
* Copyright (c) 2002-2007 Volkswagen Group Electronic Research
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of Volkswagen nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* Alternatively, provided that this notice is retained in full, this
* software may be distributed under the terms of the GNU General
* Public License ("GPL") version 2, in which case the provisions of the
* GPL apply INSTEAD OF those given above.
*
* The provided data structures and external interfaces from this code
* are not restricted to be used by modules with a GPL compatible license.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
#ifndef _UAPI_CAN_ERROR_H
#define _UAPI_CAN_ERROR_H
#define CAN_ERR_DLC 8
/* dlc for error message frames */
/* error class (mask) in can_id */
#define CAN_ERR_TX_TIMEOUT 0x00000001U
/* TX timeout (by netdevice driver) */
#define CAN_ERR_LOSTARB 0x00000002U
/* lost arbitration / data[0] */
#define CAN_ERR_CRTL 0x00000004U
/* controller problems / data[1] */
#define CAN_ERR_PROT 0x00000008U
/* protocol violations / data[2..3] */
#define CAN_ERR_TRX 0x00000010U
/* transceiver status / data[4] */
#define CAN_ERR_ACK 0x00000020U
/* received no ACK on transmission */
#define CAN_ERR_BUSOFF 0x00000040U
/* bus off */
#define CAN_ERR_BUSERROR 0x00000080U
/* bus error (may flood!) */
#define CAN_ERR_RESTARTED 0x00000100U
/* controller restarted */
/* arbitration lost in bit ... / data[0] */
#define CAN_ERR_LOSTARB_UNSPEC 0x00
/* unspecified */
/* else bit number in bitstream */
/* error status of CAN-controller / data[1] */
#define CAN_ERR_CRTL_UNSPEC 0x00
/* unspecified */
#define CAN_ERR_CRTL_RX_OVERFLOW 0x01
/* RX buffer overflow */
#define CAN_ERR_CRTL_TX_OVERFLOW 0x02
/* TX buffer overflow */
#define CAN_ERR_CRTL_RX_WARNING 0x04
/* reached warning level for RX errors */
#define CAN_ERR_CRTL_TX_WARNING 0x08
/* reached warning level for TX errors */
#define CAN_ERR_CRTL_RX_PASSIVE 0x10
/* reached error passive status RX */
#define CAN_ERR_CRTL_TX_PASSIVE 0x20
/* reached error passive status TX */
/* (at least one error counter exceeds */
/* the protocol-defined level of 127) */
#define CAN_ERR_CRTL_ACTIVE 0x40
/* recovered to error active state */
/* error in CAN protocol (type) / data[2] */
#define CAN_ERR_PROT_UNSPEC 0x00
/* unspecified */
#define CAN_ERR_PROT_BIT 0x01
/* single bit error */
#define CAN_ERR_PROT_FORM 0x02
/* frame format error */
#define CAN_ERR_PROT_STUFF 0x04
/* bit stuffing error */
#define CAN_ERR_PROT_BIT0 0x08
/* unable to send dominant bit */
#define CAN_ERR_PROT_BIT1 0x10
/* unable to send recessive bit */
#define CAN_ERR_PROT_OVERLOAD 0x20
/* bus overload */
#define CAN_ERR_PROT_ACTIVE 0x40
/* active error announcement */
#define CAN_ERR_PROT_TX 0x80
/* error occurred on transmission */
/* error in CAN protocol (location) / data[3] */
#define CAN_ERR_PROT_LOC_UNSPEC 0x00
/* unspecified */
#define CAN_ERR_PROT_LOC_SOF 0x03
/* start of frame */
#define CAN_ERR_PROT_LOC_ID28_21 0x02
/* ID bits 28 - 21 (SFF: 10 - 3) */
#define CAN_ERR_PROT_LOC_ID20_18 0x06
/* ID bits 20 - 18 (SFF: 2 - 0 )*/
#define CAN_ERR_PROT_LOC_SRTR 0x04
/* substitute RTR (SFF: RTR) */
#define CAN_ERR_PROT_LOC_IDE 0x05
/* identifier extension */
#define CAN_ERR_PROT_LOC_ID17_13 0x07
/* ID bits 17-13 */
#define CAN_ERR_PROT_LOC_ID12_05 0x0F
/* ID bits 12-5 */
#define CAN_ERR_PROT_LOC_ID04_00 0x0E
/* ID bits 4-0 */
#define CAN_ERR_PROT_LOC_RTR 0x0C
/* RTR */
#define CAN_ERR_PROT_LOC_RES1 0x0D
/* reserved bit 1 */
#define CAN_ERR_PROT_LOC_RES0 0x09
/* reserved bit 0 */
#define CAN_ERR_PROT_LOC_DLC 0x0B
/* data length code */
#define CAN_ERR_PROT_LOC_DATA 0x0A
/* data section */
#define CAN_ERR_PROT_LOC_CRC_SEQ 0x08
/* CRC sequence */
#define CAN_ERR_PROT_LOC_CRC_DEL 0x18
/* CRC delimiter */
#define CAN_ERR_PROT_LOC_ACK 0x19
/* ACK slot */
#define CAN_ERR_PROT_LOC_ACK_DEL 0x1B
/* ACK delimiter */
#define CAN_ERR_PROT_LOC_EOF 0x1A
/* end of frame */
#define CAN_ERR_PROT_LOC_INTERM 0x12
/* intermission */
/* error status of CAN-transceiver / data[4] */
/* CANH CANL */
#define CAN_ERR_TRX_UNSPEC 0x00
/* 0000 0000 */
#define CAN_ERR_TRX_CANH_NO_WIRE 0x04
/* 0000 0100 */
#define CAN_ERR_TRX_CANH_SHORT_TO_BAT 0x05
/* 0000 0101 */
#define CAN_ERR_TRX_CANH_SHORT_TO_VCC 0x06
/* 0000 0110 */
#define CAN_ERR_TRX_CANH_SHORT_TO_GND 0x07
/* 0000 0111 */
#define CAN_ERR_TRX_CANL_NO_WIRE 0x40
/* 0100 0000 */
#define CAN_ERR_TRX_CANL_SHORT_TO_BAT 0x50
/* 0101 0000 */
#define CAN_ERR_TRX_CANL_SHORT_TO_VCC 0x60
/* 0110 0000 */
#define CAN_ERR_TRX_CANL_SHORT_TO_GND 0x70
/* 0111 0000 */
#define CAN_ERR_TRX_CANL_SHORT_TO_CANH 0x80
/* 1000 0000 */
/* controller specific additional information / data[5..7] */
#endif /* _UAPI_CAN_ERROR_H */
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Oliver Hartkopp | 304 | 97.75% | 3 | 50.00% |
Andri Yngvason | 5 | 1.61% | 1 | 16.67% |
Lucas De Marchi | 1 | 0.32% | 1 | 16.67% |
Uwe Kleine-König | 1 | 0.32% | 1 | 16.67% |
Total | 311 | 100.00% | 6 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.