Spec-Zone.ru › Homebrew

Модуль: OS::Mac::Hardware::CPU::ClassMethods Закрытый

Расширен с помощью:
T::Helpers
Определён в:
extend/os/mac/hardware/cpu.rb

Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.

Краткое описание методов экземпляра свернуть

  • #family ⇒ Symbol закрытый
  • #features ⇒ Array<Symbol> закрытый
  • #in_rosetta2? ⇒ Boolean закрытый

    Возвращает true при запуске оболочки на базе Intel через Rosetta 2 на Mac с Apple Silicon.

  • #sse4? ⇒ Boolean закрытый
  • #type ⇒ Symbol закрытый

    Эти методы используют данные, выводимые sysctl.

Подробное описание методов экземпляра

#family ⇒ Symbol

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Symbol)


28
29
30
31
32
33
34
35
36
# File 'extend/os/mac/hardware/cpu.rb', line 28

def family
  if ::Hardware::CPU.arm?
    ::Hardware::CPU.arm_family
  elsif ::Hardware::CPU.intel?
    ::Hardware::CPU.intel_family
  else
    :dunno
  end
end

#features ⇒ Array<Symbol>

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<Symbol>)


48
49
50
51
52
53
54
# File 'extend/os/mac/hardware/cpu.rb', line 48

def features
  @features ||= T.let(::Hardware::CPU.sysctl_n(
    "machdep.cpu.features",
    "machdep.cpu.extfeatures",
    "machdep.cpu.leaf7_features",
  ).split.map { |s| s.downcase.to_sym }, T.nilable(T::Array[Symbol]))
end

#in_rosetta2? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает true при запуске оболочки на базе Intel через Rosetta 2 на Mac с Apple Silicon. Это можно определить, проверив, есть ли конфликт между данными, которые сообщает uname, и базовыми флагами sysctl, поскольку флаги sysctl не меняют поведение в Rosetta 2.

Возвращает:

  • (Boolean)


43
44
45
# File 'extend/os/mac/hardware/cpu.rb', line 43

def in_rosetta2?
  ::Hardware::CPU.sysctl_bool!("sysctl.proc_translated")
end

#sse4? ⇒ Boolean

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Boolean)


57
58
59
# File 'extend/os/mac/hardware/cpu.rb', line 57

def sse4?
  ::Hardware::CPU.sysctl_bool!("hw.optional.sse4_1")
end

#type ⇒ Symbol

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Эти методы используют данные, выводимые sysctl. Информацию о декодировании см. в <mach/machine.h>.

Возвращает:

  • (Symbol)


16
17
18
19
20
21
22
23
24
25
# File 'extend/os/mac/hardware/cpu.rb', line 16

def type
  case ::Hardware::CPU.sysctl_int("hw.cputype")
  when MachO::Headers::CPU_TYPE_I386
    :intel
  when MachO::Headers::CPU_TYPE_ARM64
    :arm
  else
    super
  end
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/OS/Mac/Hardware/CPU/ClassMethods.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API