Модуль: 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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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>.
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