linux/include/net/caif/caif_device.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (C) ST-Ericsson AB 2010
   4 * Author:      Sjur Brendeland
   5 */
   6
   7#ifndef CAIF_DEVICE_H_
   8#define CAIF_DEVICE_H_
   9#include <linux/kernel.h>
  10#include <linux/net.h>
  11#include <linux/netdevice.h>
  12#include <linux/caif/caif_socket.h>
  13#include <net/caif/caif_device.h>
  14
  15/**
  16 * struct caif_dev_common - data shared between CAIF drivers and stack.
  17 * @flowctrl:           Flow Control callback function. This function is
  18 *                      supplied by CAIF Core Stack and is used by CAIF
  19 *                      Link Layer to send flow-stop to CAIF Core.
  20 *                      The flow information will be distributed to all
  21 *                      clients of CAIF.
  22 *
  23 * @link_select:        Profile of device, either high-bandwidth or
  24 *                      low-latency. This member is set by CAIF Link
  25 *                      Layer Device in order to indicate if this device
  26 *                      is a high bandwidth or low latency device.
  27 *
  28 * @use_frag:           CAIF Frames may be fragmented.
  29 *                      Is set by CAIF Link Layer in order to indicate if the
  30 *                      interface receives fragmented frames that must be
  31 *                      assembled by CAIF Core Layer.
  32 *
  33 * @use_fcs:            Indicate if Frame CheckSum (fcs) is used.
  34 *                      Is set if the physical interface is
  35 *                      using Frame Checksum on the CAIF Frames.
  36 *
  37 * @use_stx:            Indicate STart of frame eXtension (stx) in use.
  38 *                      Is set if the CAIF Link Layer expects
  39 *                      CAIF Frames to start with the STX byte.
  40 *
  41 * This structure is shared between the CAIF drivers and the CAIF stack.
  42 * It is used by the device to register its behavior.
  43 * CAIF Core layer must set the member flowctrl in order to supply
  44 * CAIF Link Layer with the flow control function.
  45 *
  46 */
  47 struct caif_dev_common {
  48        void (*flowctrl)(struct net_device *net, int on);
  49        enum caif_link_selector link_select;
  50        int use_frag;
  51        int use_fcs;
  52        int use_stx;
  53};
  54
  55#endif  /* CAIF_DEVICE_H_ */
  56