The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/qat/qat_common/adf_cfg_instance.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: BSD-3-Clause */
    2 /* Copyright(c) 2007-2022 Intel Corporation */
    3 /* $FreeBSD$ */
    4 #include "adf_cfg_instance.h"
    5 
    6 void
    7 crypto_instance_init(struct adf_cfg_instance *instance,
    8                      struct adf_cfg_bundle *bundle)
    9 {
   10         int i = 0;
   11 
   12         instance->stype = CRYPTO;
   13         for (i = 0; i < bundle->num_of_rings / 2; i++) {
   14                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
   15                         continue;
   16 
   17                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_ASYM &&
   18                     bundle->rings[i]->mode == TX) {
   19                         instance->asym_tx = bundle->rings[i]->number;
   20                         bundle->in_use |= 1 << bundle->rings[i]->number;
   21                         break;
   22                 }
   23         }
   24 
   25         for (i = 0; i < bundle->num_of_rings / 2; i++) {
   26                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
   27                         continue;
   28 
   29                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_SYM &&
   30                     bundle->rings[i]->mode == TX) {
   31                         instance->sym_tx = bundle->rings[i]->number;
   32                         bundle->in_use |= 1 << bundle->rings[i]->number;
   33                         break;
   34                 }
   35         }
   36 
   37         for (i = bundle->num_of_rings / 2; i < bundle->num_of_rings; i++) {
   38                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
   39                         continue;
   40 
   41                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_ASYM &&
   42                     bundle->rings[i]->mode == RX) {
   43                         instance->asym_rx = bundle->rings[i]->number;
   44                         bundle->in_use |= 1 << bundle->rings[i]->number;
   45                         break;
   46                 }
   47         }
   48 
   49         for (i = bundle->num_of_rings / 2; i < bundle->num_of_rings; i++) {
   50                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
   51                         continue;
   52 
   53                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_SYM &&
   54                     bundle->rings[i]->mode == RX) {
   55                         instance->sym_rx = bundle->rings[i]->number;
   56                         bundle->in_use |= 1 << bundle->rings[i]->number;
   57                         break;
   58                 }
   59         }
   60 }
   61 
   62 void
   63 dc_instance_init(struct adf_cfg_instance *instance,
   64                  struct adf_cfg_bundle *bundle)
   65 {
   66         int i = 0;
   67 
   68         instance->stype = COMP;
   69         for (i = 0; i < bundle->num_of_rings / 2; i++) {
   70                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
   71                         continue;
   72 
   73                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_DC &&
   74                     bundle->rings[i]->mode == TX) {
   75                         instance->dc_tx = bundle->rings[i]->number;
   76                         bundle->in_use |= 1 << bundle->rings[i]->number;
   77                         break;
   78                 }
   79         }
   80 
   81         for (i = bundle->num_of_rings / 2; i < bundle->num_of_rings; i++) {
   82                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
   83                         continue;
   84 
   85                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_DC &&
   86                     bundle->rings[i]->mode == RX) {
   87                         instance->dc_rx = bundle->rings[i]->number;
   88                         bundle->in_use |= 1 << bundle->rings[i]->number;
   89                         break;
   90                 }
   91         }
   92 }
   93 
   94 void
   95 asym_instance_init(struct adf_cfg_instance *instance,
   96                    struct adf_cfg_bundle *bundle)
   97 {
   98         int i = 0;
   99 
  100         instance->stype = ASYM;
  101         for (i = 0; i < bundle->num_of_rings / 2; i++) {
  102                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
  103                         continue;
  104 
  105                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_ASYM &&
  106                     bundle->rings[i]->mode == TX) {
  107                         instance->asym_tx = bundle->rings[i]->number;
  108                         bundle->in_use |= 1 << bundle->rings[i]->number;
  109                         break;
  110                 }
  111         }
  112 
  113         for (i = bundle->num_of_rings / 2; i < bundle->num_of_rings; i++) {
  114                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
  115                         continue;
  116 
  117                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_ASYM &&
  118                     bundle->rings[i]->mode == RX) {
  119                         instance->asym_rx = bundle->rings[i]->number;
  120                         bundle->in_use |= 1 << bundle->rings[i]->number;
  121                         break;
  122                 }
  123         }
  124 }
  125 
  126 void
  127 sym_instance_init(struct adf_cfg_instance *instance,
  128                   struct adf_cfg_bundle *bundle)
  129 {
  130         int i = 0;
  131 
  132         instance->stype = SYM;
  133         for (i = 0; i < bundle->num_of_rings / 2; i++) {
  134                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
  135                         continue;
  136 
  137                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_SYM &&
  138                     bundle->rings[i]->mode == TX) {
  139                         instance->sym_tx = bundle->rings[i]->number;
  140                         bundle->in_use |= 1 << bundle->rings[i]->number;
  141                         break;
  142                 }
  143         }
  144 
  145         for (i = 0 + bundle->num_of_rings / 2; i < bundle->num_of_rings; i++) {
  146                 if ((bundle->in_use >> bundle->rings[i]->number) & 0x1)
  147                         continue;
  148 
  149                 if (bundle->rings[i]->serv_type == ADF_ACCEL_SERV_SYM &&
  150                     bundle->rings[i]->mode == RX) {
  151                         instance->sym_rx = bundle->rings[i]->number;
  152                         bundle->in_use |= 1 << bundle->rings[i]->number;
  153                         break;
  154                 }
  155         }
  156 }

Cache object: 466f8d8aee176904f5b95356ce63d7f7


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.