Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/s390/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  word-at-a-time.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_WORD_AT_A_TIME_H
#define _ASM_WORD_AT_A_TIME_H

#include <linux/bitops.h>
#include <linux/wordpart.h>
#include <asm/asm-extable.h>
#include <asm/bitsperlong.h>

struct word_at_a_time {
 const unsigned long bits;
};

#define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x7f) }

static inline unsigned long prep_zero_mask(unsigned long val, unsigned long data, const struct word_at_a_time *c)
{
 return data;
}

static inline unsigned long create_zero_mask(unsigned long data)
{
 return __fls(data);
}

static inline unsigned long find_zero(unsigned long data)
{
 return (data ^ (BITS_PER_LONG - 1)) >> 3;
}

static inline unsigned long has_zero(unsigned long val, unsigned long *data, const struct word_at_a_time *c)
{
 unsigned long mask = (val & c->bits) + c->bits;

 *data = ~(mask | val | c->bits);
 return *data;
}

static inline unsigned long zero_bytemask(unsigned long data)
{
 return ~1UL << data;
}

/*
 * Load an unaligned word from kernel space.
 *
 * In the (very unlikely) case of the word being a page-crosser
 * and the next page not being mapped, take the exception and
 * return zeroes in the non-existing part.
 */

static inline unsigned long load_unaligned_zeropad(const void *addr)
{
 unsigned long data;

 asm_inline volatile(
  "0: lg %[data],0(%[addr])\n"
  "1: nopr %%r7\n"
  EX_TABLE_ZEROPAD(0b, 1b, %[data], %[addr])
  EX_TABLE_ZEROPAD(1b, 1b, %[data], %[addr])
  : [data] "=d" (data)
  : [addr] "a" (addr), "m" (*(unsigned long *)addr));
 return data;
}

#endif /* _ASM_WORD_AT_A_TIME_H */

Messung V0.5
C=96 H=94 G=94

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.