cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mcp251xfd-ram.h (1059B)


      1/* SPDX-License-Identifier: GPL-2.0
      2 *
      3 * mcp251xfd - Microchip MCP251xFD Family CAN controller driver
      4 *
      5 * Copyright (c) 2021, 2022 Pengutronix,
      6 *               Marc Kleine-Budde <kernel@pengutronix.de>
      7 */
      8
      9#ifndef _MCP251XFD_RAM_H
     10#define _MCP251XFD_RAM_H
     11
     12#include <linux/ethtool.h>
     13
     14#define CAN_RAM_NUM_MAX (-1)
     15
     16enum can_ram_mode {
     17	CAN_RAM_MODE_CAN,
     18	CAN_RAM_MODE_CANFD,
     19	__CAN_RAM_MODE_MAX
     20};
     21
     22struct can_ram_obj_config {
     23	u8 size[__CAN_RAM_MODE_MAX];
     24
     25	u8 def[__CAN_RAM_MODE_MAX];
     26	u8 min;
     27	u8 max;
     28
     29	u8 fifo_num;
     30	u8 fifo_depth_min;
     31	u8 fifo_depth_coalesce_min;
     32};
     33
     34struct can_ram_config {
     35	const struct can_ram_obj_config rx;
     36	const struct can_ram_obj_config tx;
     37
     38	u16 size;
     39	u8 fifo_depth;
     40};
     41
     42struct can_ram_layout {
     43	u8 default_rx;
     44	u8 default_tx;
     45
     46	u8 max_rx;
     47	u8 max_tx;
     48
     49	u8 cur_rx;
     50	u8 cur_tx;
     51
     52	u8 rx_coalesce;
     53	u8 tx_coalesce;
     54};
     55
     56void can_ram_get_layout(struct can_ram_layout *layout,
     57			const struct can_ram_config *config,
     58			const struct ethtool_ringparam *ring,
     59			const struct ethtool_coalesce *ec,
     60			const bool fd_mode);
     61
     62#endif