Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/chromium/build/fuchsia/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  aemu_target.py   Sprache: Python

 
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Implements commands for running and interacting with Fuchsia on AEMU."""

import emu_target
import os
import platform
import qemu_target
import logging

from common import GetEmuRootForPlatform


def GetTargetType():
  return AemuTarget


class AemuTarget(qemu_target.QemuTarget):
  EMULATOR_NAME = 'aemu'

  def __init__(self, out_dir, target_cpu, system_log_file, cpu_cores,
               require_kvm, ram_size_mb, enable_graphics, hardware_gpu):
    super(AemuTarget, self).__init__(out_dir, target_cpu, system_log_file,
                                     cpu_cores, require_kvm, ram_size_mb)

    self._enable_graphics = enable_graphics
    self._hardware_gpu = hardware_gpu

  @staticmethod
  def CreateFromArgs(args):
    return AemuTarget(args.out_dir, args.target_cpu, args.system_log_file,
                      args.cpu_cores, args.require_kvm, args.ram_size_mb,
                      args.enable_graphics, args.hardware_gpu)

  @staticmethod
  def RegisterArgs(arg_parser):
    aemu_args = arg_parser.add_argument_group('aemu''AEMU arguments')
    aemu_args.add_argument('--enable-graphics',
                           action='store_true',
                           default=False,
                           help='Start AEMU with graphics instead of '\
                                'headless.')
    aemu_args.add_argument('--hardware-gpu',
                           action='store_true',
                           default=False,
                           help='Use local GPU hardware instead of '\
                                'Swiftshader.')

  def _EnsureEmulatorExists(self, path):
    assert os.path.exists(path), \
          'This checkout is missing %s.' % (self.EMULATOR_NAME)

  def _BuildCommand(self):
    aemu_folder = GetEmuRootForPlatform(self.EMULATOR_NAME)

    self._EnsureEmulatorExists(aemu_folder)
    aemu_path = os.path.join(aemu_folder, 'emulator')

    # `VirtioInput` is needed for touch input device support on Fuchsia.
    # `RefCountPipe` is needed for proper cleanup of resources when a process
    # that uses Vulkan dies inside the guest
    aemu_features = 'VirtioInput,RefCountPipe'

    # Configure the CPU to emulate.
    # On Linux, we can enable lightweight virtualization (KVM) if the host and
    # guest architectures are the same.
    if self._IsKvmEnabled():
      aemu_features += ',KVM,GLDirectMem,Vulkan'
    else:
      if self._target_cpu != 'arm64':
        aemu_features += ',-GLDirectMem'

    # Use Swiftshader for Vulkan if requested
    gpu_target = 'swiftshader_indirect'
    if self._hardware_gpu:
      gpu_target = 'host'

    aemu_command = [aemu_path]
    if not self._enable_graphics:
      aemu_command.append('-no-window')
    # All args after -fuchsia flag gets passed to QEMU
    aemu_command.extend([
        '-feature', aemu_features, '-window-size''1024x600''-gpu',
        gpu_target, '-verbose''-fuchsia'
    ])

    aemu_command.extend(self._BuildQemuConfig())

    aemu_command.extend([
      '-vga''none',
      '-device''virtio-keyboard-pci',
      '-device''virtio_input_multi_touch_pci_1',
      '-device''ich9-ahci,id=ahci'])
    if platform.machine() == 'x86_64':
      aemu_command.extend(['-device''isa-debug-exit,iobase=0xf4,iosize=0x04'])

    logging.info(' '.join(aemu_command))
    return aemu_command

  def _GetVulkanIcdFile(self):
    return os.path.join(GetEmuRootForPlatform(self.EMULATOR_NAME), 'lib64',
                        'vulkan''vk_swiftshader_icd.json')

  def _SetEnv(self):
    env = os.environ.copy()
    aemu_logging_env = {
        "ANDROID_EMU_VK_NO_CLEANUP""1",
        "ANDROID_EMUGL_LOG_PRINT""1",
        "ANDROID_EMUGL_VERBOSE""1",
        "VK_ICD_FILENAMES": self._GetVulkanIcdFile(),
        "VK_LOADER_DEBUG""info,error",
    }
    env.update(aemu_logging_env)
    return env

Messung V0.5
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© 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.