Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  tlb.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0-only
// Copyright 2024 Google LLC
// Author: Ard Biesheuvel <ardb@google.com>

#include <linux/types.h>
#include <asm/tlbflush.h>

#ifdef CONFIG_CPU_TLB_V4WT
void v4_flush_user_tlb_range(unsigned longunsigned longstruct vm_area_struct *);
void v4_flush_kern_tlb_range(unsigned longunsigned long);

struct cpu_tlb_fns v4_tlb_fns __initconst = {
 .flush_user_range = v4_flush_user_tlb_range,
 .flush_kern_range = v4_flush_kern_tlb_range,
 .tlb_flags  = v4_tlb_flags,
};
#endif

#ifdef CONFIG_CPU_TLB_V4WB
void v4wb_flush_user_tlb_range(unsigned longunsigned longstruct vm_area_struct *);
void v4wb_flush_kern_tlb_range(unsigned longunsigned long);

struct cpu_tlb_fns v4wb_tlb_fns __initconst = {
 .flush_user_range = v4wb_flush_user_tlb_range,
 .flush_kern_range = v4wb_flush_kern_tlb_range,
 .tlb_flags  = v4wb_tlb_flags,
};
#endif

#if defined(CONFIG_CPU_TLB_V4WBI) || defined(CONFIG_CPU_TLB_FEROCEON)
void v4wbi_flush_user_tlb_range(unsigned longunsigned longstruct vm_area_struct *);
void v4wbi_flush_kern_tlb_range(unsigned longunsigned long);

struct cpu_tlb_fns v4wbi_tlb_fns __initconst = {
 .flush_user_range = v4wbi_flush_user_tlb_range,
 .flush_kern_range = v4wbi_flush_kern_tlb_range,
 .tlb_flags  = v4wbi_tlb_flags,
};
#endif

#ifdef CONFIG_CPU_TLB_V6
void v6wbi_flush_user_tlb_range(unsigned longunsigned longstruct vm_area_struct *);
void v6wbi_flush_kern_tlb_range(unsigned longunsigned long);

struct cpu_tlb_fns v6wbi_tlb_fns __initconst = {
 .flush_user_range = v6wbi_flush_user_tlb_range,
 .flush_kern_range = v6wbi_flush_kern_tlb_range,
 .tlb_flags  = v6wbi_tlb_flags,
};
#endif

#ifdef CONFIG_CPU_TLB_V7
void v7wbi_flush_user_tlb_range(unsigned longunsigned longstruct vm_area_struct *);
void v7wbi_flush_kern_tlb_range(unsigned longunsigned long);

struct cpu_tlb_fns v7wbi_tlb_fns __initconst = {
 .flush_user_range = v7wbi_flush_user_tlb_range,
 .flush_kern_range = v7wbi_flush_kern_tlb_range,
 .tlb_flags  = IS_ENABLED(CONFIG_SMP) ? v7wbi_tlb_flags_smp
        : v7wbi_tlb_flags_up,
};

#ifdef CONFIG_SMP_ON_UP
/* This will be run-time patched so the offset better be right */
static_assert(offsetof(struct cpu_tlb_fns, tlb_flags) == 8);

asm(" .pushsection \".alt.smp.init\", \"a\" \n" \
    " .align 2 \n" \
    " .long v7wbi_tlb_fns + 8 - . \n" \
    " .long "   __stringify(v7wbi_tlb_flags_up) " \n" \
    " .popsection \n");
#endif
#endif

#ifdef CONFIG_CPU_TLB_FA
void fa_flush_user_tlb_range(unsigned longunsigned longstruct vm_area_struct *);
void fa_flush_kern_tlb_range(unsigned longunsigned long);

struct cpu_tlb_fns fa_tlb_fns __initconst = {
 .flush_user_range = fa_flush_user_tlb_range,
 .flush_kern_range = fa_flush_kern_tlb_range,
 .tlb_flags  = fa_tlb_flags,
};
#endif

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

¤ 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge