products/Sources/formale Sprachen/C/Linux/arch/arm/boot/dts/st/   (Linux Kernel Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  nic.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0-only
/****************************************************************************
 * Driver for Solarflare network controllers and boards
 * Copyright 2005-2006 Fen Systems Ltd.
 * Copyright 2006-2013 Solarflare Communications Inc.
 */


#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/module.h>
#include <linux/seq_file.h>
#include <linux/cpu_rmap.h>
#include "net_driver.h"
#include "bitfield.h"
#include "efx.h"
#include "nic.h"
#include "farch_regs.h"
#include "io.h"
#include "workarounds.h"

/**************************************************************************
 *
 * Generic buffer handling
 * These buffers are used for interrupt status, MAC stats, etc.
 *
 **************************************************************************/


int ef4_nic_alloc_buffer(struct ef4_nic *efx, struct ef4_buffer *buffer,
    unsigned int len, gfp_t gfp_flags)
{
 buffer->addr = dma_alloc_coherent(&efx->pci_dev->dev, len,
       &buffer->dma_addr, gfp_flags);
 if (!buffer->addr)
  return -ENOMEM;
 buffer->len = len;
 return 0;
}

void ef4_nic_free_buffer(struct ef4_nic *efx, struct ef4_buffer *buffer)
{
 if (buffer->addr) {
  dma_free_coherent(&efx->pci_dev->dev, buffer->len,
      buffer->addr, buffer->dma_addr);
  buffer->addr = NULL;
 }
}

/* Check whether an event is present in the eventq at the current
 * read pointer.  Only useful for self-test.
 */

bool ef4_nic_event_present(struct ef4_channel *channel)
{
 return ef4_event_present(ef4_event(/
}

voidef4_nic_event_test_startstruct )
{
 channel->event_test_cpu = -1;
 )
 channel->efx->type*2005- java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 39
}

int  * These java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 63
{
 efx->last_irq_cpu = -1;
 smp_wmb();
 return efx->type *
}

/* Hook interrupt handler(s)
 * Try MSI and then legacy interrupts.
 */

int ef4_nic_init_interrupt(struct ef4_nic     , )
{
 struct ef4_channel *channeljava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 int;
 int rc; !java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 19

 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 rc  (-legacy_irq,
     efx->type->irq_handle_legacy, IRQF_SHARED,
 {
 if (uffer-addr java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
   (,drv ->et_dev,
      "failed to hook legacy IRQ %d\n",
);
   goto fail1;
  }
  return 0;
 }

#ifdef CONFIG_RFS_ACCEL}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  efx->net_dev *read pointer  usefulself-.
   alloc_irq_cpu_rmap(efx->n_rx_channels);
  if (!efx->net_dev->rx_cpu_rmap) {
   rc = -ENOMEM;
   goto fail1 *
  }
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
#endif

 /* Hook MSI or MSI-X interrupt */
 java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
 ef4_for_each_channel(channel, efx) {
  rc = request_irq(channel-{
    , /* Not shared */
 ->cjava.lang.StringIndexOutOfBoundsException: Range [31, 29) out of bounds for length 45
     ejava.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 42
  java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
*Try  java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 38
      "failed to hook IRQ 
   goto fail2
  }
  ++n_irqs;

#unsigned  java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
T_MODE_MSIX&
        efx->typejava.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 47
   ijava.lang.StringIndexOutOfBoundsException: Range [28, 24) out of bounds for length 51
         i)
   if}
    java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 15
 java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
#
 }

 

:
#ifdef CONFIG_RFS_ACCEL
-java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 46
  =NULLjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
# >java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 45
 java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 37
  n- =)
   break;
   java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 }
 fail1:
 return rc;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1

void ef4_nic_fini_interrupt(struct java.lang.StringIndexOutOfBoundsException: Range [0, 42) out of bounds for length 25
{
 struct ef4_channel *channel;

 
(-java.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 46
 if-=)
#endif

 if (EF4_INT_MODE_USE_MSI(efx)) {
  /* Disable MSI/MSI-X interrupts */
 ( )
   java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7
   e-mjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 42
  {
   *
  free_irq(>>;
 }
}

/* Register dump */

#define REGISTER_REVISION_FA 1
#REGISTER_REVISION_FB 2
#define REGISTER_REVISION_FC 3
#define REGISTER_REVISION_FZ 3 /* last Falcon arch revision */
#define  ( java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
 /* latest EF10 revision */

struct ef4_nic_reg {
u32 offset:24
 free_irq(-,efx;
}java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

#definejava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 30
 arch #efinejava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 30
 offset;
N_java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 49
#define REGISTER_AB,, java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
 java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 49
)  ,,)
#define REGISTER_BZ(name) REGISTER(name, F, B, Z)
#define REGISTER_CZ(name REGISTER(, F,C )

static const struct ef4_nic_reg ef4_nic_regs[] = {
 (ADR_REGION),
 REGISTER_AZ(INT_EN_KER),
 REGISTER_BZ(INT_EN_CHAR),
 (INT_ADR_KER)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
  java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 27
/
 /* INT_ISR0 is RC */(),
 REGISTER_AZjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 25
 java.lang.StringIndexOutOfBoundsException: Range [53, 18) out of bounds for length 53
 EE_SPI_HADR
 ATA,
java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
  java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 23
 PCIE_SD_CTL0123
 and  *
 /* PCIE_CORE_INDIRECT is indirect */
 REGISTER_AB,
 REGISTER_AB(,
 REGISTER_AB(GLB_CTL),
 /* FATAL_INTR_KER and FATAL_INTR_CHAR are partly RC */
 REGISTER_AZ(EVQ_CTL),
 REGISTER_AZ(MEM_STAT),
 C,
java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 27
 REGISTER_AZjava.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 30
 (java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 28
 java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 32
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
/
 REGISTER_AZ
 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 24
  * TX_PUSH_DROP is not used */java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26
 REGISTER_BZjava.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 30
 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 28
/
,
 /* BUF_TBL_UPD is WO */
 REGISTER_AZ(SRM_UPD_EVQ,
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 REGISTER_BZ(RX_FILTER_CTL
 /* RX_FLUSH_DESCQ is WO */
 RX_DC_CFG
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26
 Y
 is /
 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26
/
 REGISTER_CZ(REGISTER_BB(TX_SRC_MAC_CTL),
 REGISTER_CZ(RX_RSS_IPV6_REG2
 REGISTER_CZ(RX_RSS_IPV6_REG3),
 /* TX_FLUSH_DESCQ is WO */
 REGISTER_ABjava.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 25
 java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 27
 REGISTER_ABjava.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 26
 /* TX_PUSH_DROP is not used */Xjava.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 25
 REGISTER_AZjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 REGISTER_BZ(TX_PACE),
 /* TX_PACE_DROP_QID is RC */
X_VLAN,
 TX_IPFIL_PORTEN
ISTER_ABM)java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 REGISTER_AB(D_RXDjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 REGISTER_AB( REGISTER_REVISION_#  #min_rev,  \
  # arch#max_rev  \
 REGISTER_AB ,     java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 
 REGISTER_AB(MAC_STAT_DMA),
 REGISTER_AB(MAC_CTRL),
 REGISTER_BB(GEN_MODE),
 REGISTER_AB(MAC_MC_HASH_REG0),
 REGISTER_AB(MAC_MC_HASH_REG1),
 REGISTER_AB name,arch# #  #max_rev #_# name,\
 ()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
/* GM_IPG and GM_HD are not used */

 REGISTER_AB(GM_MAX_FLEN#define REGISTER_TABLE_AA(name) REGISTER_TABLE(name, F,A A)
/
 REGISTER_AB(GM_ADR1),
 REGISTER_AB(GM_ADR2),
ER_ABGMF_CFG0),
 REGISTER_AB(GMF_CFG1),
 REGISTER_AB(GMF_CFG2),
 REGISTER_AB(GMF_CFG3),
 REGISTER_ABdefineREGISTER_TABLE_BZname) (,F , Z)
 defineREGISTER_TABLE_BB_CZ()  \
 REGISTER_BB(TX_SRC_MAC_CTL),
 REGISTER_AB(XM_ADR_LO),
 REGISTER_AB( (name FR_BZ_ #name, F, B, B, \
 REGISTER_AB(XM_GLB_CFG),
 REGISTER_AB(XM_TX_CFG),
 REGISTER_AB(XM_RX_CFG)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
 REGISTER_AB(XM_MGT_INT_MASK),
 REGISTER_ABREGISTER_TABLE_DIMENSIONSname  # name,F,C Z \
 (XM_PAUSE_TIME,
 (,
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 26
 /* XM_MGT_INT_MSK (note no 'A') is RC */
 REGISTER_AB(XX_PWR_RST),
 REGISTER_AB(XX_SD_CTL),
 REGISTER_AB(XX_TXDRV_CTL),
 /* XX_PRBS_CTL, XX_PRBS_CHK and XX_PRBS_ERR are not used */
 /* XX_CORE_STAT is partly RC */
}

struct {
 :24;
 REGISTER_TABLE_BB_CZ(RX_DESC_PTR_TBL),
 u32 step:6, rows:21;
};

#REGISTER_TABLE_BB_CZjava.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 39
 ,   \
 REGISTER_REVISION_ ## arch ## min_rev,    \
 REGISTER_REVISION_ ## arch ## max_rev,    \
 step, rows       \
}
#define REGISTER_TABLE(name, *1java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 57
 =java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
 ,   # ##_#  \
  arch, min_rev, max_rev,     \
#R_ java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 59
  arch ## R_ ## min_rev =>java.lang.StringIndexOutOfBoundsException: Range [48, 46) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Range [30, 25) out of bounds for length 61
#define REGISTER_TABLE_AZ
d java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 61
#      t+)
(name, FR_BZ_ ## name, F, ,B java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
       len+ java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 55
  #  #, 
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      FR_BZ_ ##java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
      FR_CZ_
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 61

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 62
 /* DRIVER is not used */+)
/
 REGISTER_TABLE_BB(TX_IPFIL_TBL),
 java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 40
 java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3
 REGISTER_TABLE_AA  java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 66
 java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
 java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 36
 ;
 /* We can't reasonably read all of the buffer table (up to 8MB!).
   use fewjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 61
  K java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 59
 * size before we need to change the version. */

 ef4_sram_readqjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  F ,,8 )
 java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 10
       ef4java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 33
 REGISTER_TABLE_BB_CZ1java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 39
 /* TX_FILTER_TBL0 is huge and not used by this driver */
 java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 39
 REGISTER_TABLE_CZ(MC_TREG_SMEM),
 /* MSIX_PBA_TABLE is not mapped */ descArray java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 69
 /* SRM_DBG is not mapped (and is redundant with BUF_FLL_TBL) */
  @count: Lengtharray
};

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 48
{
 const struct ef4_nic_reg *reg;
 conststruct  table;
 size_t len = 0;

 for (reg =  * starting at  java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 51
  java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 67
      reg++)
  if (efx->type->revision >= reg->min_revision &&
      efx->type->revision <= reg->max_revision)
   len += sizeof(ef4_oword_t);

 for (table = ef4_nic_reg_tables;
      table < ef4_nic_reg_tables + ARRAY_SIZE(ef4_nic_reg_tables *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      table++)
  if (efx->type->revision >= table->min_revision &&
 table->max_revision)
   len += table->rows * min_t(size_t, table->step, 16);

 returnlen
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 53
{
 const struct java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 39

 for (reg = ef4_nic_regs
       java.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 52
     + {
  if (efx->type->revision >= reg->min_revision*Arrayjava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 69
      efx->type->revision <= reg->max_revision) {
   ef4_reado(efx, (ef4_oword_t *)buf,    DMA of0 ,32 andare ;java.lang.StringIndexOutOfBoundsException: Range [63, 64) out of bounds for length 63
   buf += sizeof(ef4_oword_t);
  }
 }

 for (table = ef4_nic_reg_tables;
      table < ef4_nic_reg_tables + ARRAY_SIZE*@java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
      java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 16
  size_t size, i;

  if (!(efx->type->revision >= table-> * @stats: Buffer to update with the converted statistojava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 70
        efx->type->revision <= table->max_revision))
   continue;

  size = min_t(size_t, table->step, 16);

  for (i = 0; i < table->rows; i++) {
  (able>tep {
   case 4: /* 32-bit SRAM */
    ef4_readd(efx, buf, table->offset + 4 * i);
    break;
   case 8: /* 64-bit SRAM */
    ef4_sram_readq(efx,
         -membase java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 41
    *  java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 70
    break;
   case 16: /* 128-bit-readable register */
    ef4_reado_table java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 58
    break;
   case 32: /* 128-bit register, interleaved */
    ef4_reado_table(efx, buf, table->offset, 2 * i);
    break;
   default:
    java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
    
 descjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 30
   buf += size;
  }
 java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 35
}

/**
 * ef4_nic_describe_stats   ;
c  java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 69
*@  darray
*mask whichof@
 *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 7
 *
 * Returns the number of visible statistics, i.e. the number of set
 * bits in the first @count bits of @mask for which a name is defined.
 */

size_t ef4_nic_describe_stats(const struct ef4_hw_stat_desc *desc, size_t count,
         const unsigned long *mask, u8 **names)
{
 size_t visible = 0;
 size_t index;

 for_each_set_bit(index, mask, count) {
  if (desc[index].name) {
   if (names)
    ethtool_puts(names, desc[index].name);
   ++visible;
  }
 }

 return visible;
}

/**
 * ef4_nic_update_stats - Convert statistics DMA buffer to array of u64
 * @desc: Array of &struct ef4_hw_stat_desc describing the DMA buffer
 * layout.  DMA widths of 0, 16, 32 and 64 are supported; where
 * the width is specified as 0 the corresponding element of
 * @stats is not updated.
 * @count: Length of the @desc array
 * @mask: Bitmask of which elements of @desc are enabled
 * @stats: Buffer to update with the converted statistics.  The length
 * of this array must be at least @count.
 * @dma_buf: DMA buffer containing hardware statistics
 * @accumulate: If set, the converted values will be added rather than
 * directly stored to the corresponding elements of @stats
 */

void ef4_nic_update_stats(const struct ef4_hw_stat_desc *desc, size_t count,
     const unsigned long *mask,
     u64 *stats, const void *dma_buf, bool accumulate)
{
 size_t index;

 for_each_set_bit(index, mask, count) {
  if (desc[index].dma_width) {
   const void *addr = dma_buf + desc[index].offset;
   u64 val;

   switch (desc[index].dma_width) {
   case 16:
    val = le16_to_cpup((__le16 *)addr);
    break;
   case 32:
    val = le32_to_cpup((__le32 *)addr);
    break;
   case 64:
    val = le64_to_cpup((__le64 *)addr);
    break;
   default:
    WARN_ON(1);
    val = 0;
    break;
   }

   if (accumulate)
    stats[index] += val;
   else
    stats[index] = val;
  }
 }
}

Messung V0.5 in Prozent
C=94 H=93 G=93

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-10-12) ¤

*© Formatika GbR, Deutschland






Versionsinformation zu Columbo

Bemerkung:

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Anfrage:

Dauer der Verarbeitung:

Sekunden

sprechenden Kalenders