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


Quelle  ultravisor.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Ultravisor definitions
 *
 * Copyright 2019, IBM Corporation.
 *
 */

#ifndef _ASM_POWERPC_ULTRAVISOR_H
#define _ASM_POWERPC_ULTRAVISOR_H

#include <asm/asm-prototypes.h>
#include <asm/ultravisor-api.h>
#include <asm/firmware.h>

int early_init_dt_scan_ultravisor(unsigned long node, const char *uname,
      int depth, void *data);

/*
 * In ultravisor enabled systems, PTCR becomes ultravisor privileged only for
 * writing and an attempt to write to it will cause a Hypervisor Emulation
 * Assistance interrupt.
 */

static inline void set_ptcr_when_no_uv(u64 val)
{
 if (!firmware_has_feature(FW_FEATURE_ULTRAVISOR))
  mtspr(SPRN_PTCR, val);
}

static inline int uv_register_pate(u64 lpid, u64 dw0, u64 dw1)
{
 return ucall_norets(UV_WRITE_PATE, lpid, dw0, dw1);
}

static inline int uv_share_page(u64 pfn, u64 npages)
{
 return ucall_norets(UV_SHARE_PAGE, pfn, npages);
}

static inline int uv_unshare_page(u64 pfn, u64 npages)
{
 return ucall_norets(UV_UNSHARE_PAGE, pfn, npages);
}

static inline int uv_unshare_all_pages(void)
{
 return ucall_norets(UV_UNSHARE_ALL_PAGES);
}

static inline int uv_page_in(u64 lpid, u64 src_ra, u64 dst_gpa, u64 flags,
        u64 page_shift)
{
 return ucall_norets(UV_PAGE_IN, lpid, src_ra, dst_gpa, flags,
       page_shift);
}

static inline int uv_page_out(u64 lpid, u64 dst_ra, u64 src_gpa, u64 flags,
         u64 page_shift)
{
 return ucall_norets(UV_PAGE_OUT, lpid, dst_ra, src_gpa, flags,
       page_shift);
}

static inline int uv_register_mem_slot(u64 lpid, u64 start_gpa, u64 size,
           u64 flags, u64 slotid)
{
 return ucall_norets(UV_REGISTER_MEM_SLOT, lpid, start_gpa,
       size, flags, slotid);
}

static inline int uv_unregister_mem_slot(u64 lpid, u64 slotid)
{
 return ucall_norets(UV_UNREGISTER_MEM_SLOT, lpid, slotid);
}

static inline int uv_page_inval(u64 lpid, u64 gpa, u64 page_shift)
{
 return ucall_norets(UV_PAGE_INVAL, lpid, gpa, page_shift);
}

static inline int uv_svm_terminate(u64 lpid)
{
 return ucall_norets(UV_SVM_TERMINATE, lpid);
}

#endif /* _ASM_POWERPC_ULTRAVISOR_H */

Messung V0.5
C=96 H=90 G=93

¤ Dauer der Verarbeitung: 0.0 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