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

be_roce.h (1679B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2005 - 2016 Broadcom
      4 * All rights reserved.
      5 *
      6 * Contact Information:
      7 * linux-drivers@emulex.com
      8 *
      9 * Emulex
     10 * 3333 Susan Street
     11 * Costa Mesa, CA 92626
     12 */
     13
     14#ifndef BE_ROCE_H
     15#define BE_ROCE_H
     16
     17#include <linux/pci.h>
     18#include <linux/netdevice.h>
     19
     20#define BE_ROCE_ABI_VERSION	1
     21
     22struct ocrdma_dev;
     23
     24enum be_interrupt_mode {
     25	BE_INTERRUPT_MODE_MSIX	= 0,
     26	BE_INTERRUPT_MODE_INTX	= 1,
     27	BE_INTERRUPT_MODE_MSI	= 2,
     28};
     29
     30#define MAX_MSIX_VECTORS		32
     31struct be_dev_info {
     32	u8 __iomem *db;
     33	u64 unmapped_db;
     34	u32 db_page_size;
     35	u32 db_total_size;
     36	u64 dpp_unmapped_addr;
     37	u32 dpp_unmapped_len;
     38	struct pci_dev *pdev;
     39	struct net_device *netdev;
     40	u8 mac_addr[ETH_ALEN];
     41	u32 dev_family;
     42	enum be_interrupt_mode intr_mode;
     43	struct {
     44		int num_vectors;
     45		int start_vector;
     46		u32 vector_list[MAX_MSIX_VECTORS];
     47	} msix;
     48};
     49
     50/* ocrdma driver register's the callback functions with nic driver. */
     51struct ocrdma_driver {
     52	unsigned char name[32];
     53	u32 be_abi_version;
     54	struct ocrdma_dev *(*add) (struct be_dev_info *dev_info);
     55	void (*remove) (struct ocrdma_dev *);
     56	void (*state_change_handler) (struct ocrdma_dev *, u32 new_state);
     57};
     58
     59enum be_roce_event {
     60	BE_DEV_SHUTDOWN = 2
     61};
     62
     63/* APIs for RoCE driver to register callback handlers,
     64 * which will be invoked when device is added, removed, ifup, ifdown
     65 */
     66int be_roce_register_driver(struct ocrdma_driver *drv);
     67void be_roce_unregister_driver(struct ocrdma_driver *drv);
     68
     69/* API for RoCE driver to issue mailbox commands */
     70int be_roce_mcc_cmd(void *netdev_handle, void *wrb_payload,
     71		    int wrb_payload_size, u16 *cmd_status, u16 *ext_status);
     72
     73#endif /* BE_ROCE_H */