# Class: com.pnfsoftware.jeb.core.units.codeobject.SubsystemType

Dynamic enumeration of subsystems/OS types.

## Protected Constructor: SubsystemType
- parameter: `id`, type: `int`
- parameter: `name`, type: `java.lang.String`


## Static Field: EFI
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: Extensible Firmware Interface and Unified EFI

## Static Field: LINUX
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: Linux, generic

## Static Field: MAC
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: macOS, generic

## Static Field: UNIX
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: Unix\-like, super generic

## Static Field: UNKNOWN
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: unknown subsystem

## Static Field: WINDOWS
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: Windows, generic

## Static Field: WINDOWS_KERNEL
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: Windows kernel\-mode.

## Static Field: WINDOWS_USER
Type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
Description: Windows user\-mode \(graphical, console\).

## Static Field: builtinCount
Type: `int`
Description: Number of built\-in subsystem types.

## Protected Static Field: map
Type: `java.util.LinkedHashMap<java.lang.String,com.pnfsoftware.jeb.core.units.codeobject.SubsystemType>`
Description: Registered subsystem types.

## Method: isUnixLike
- return type: `boolean`

Description: Determine whether this subsystem is Unix\-like.
return: true for Unix\-like subsystems

## Method: isWindowsLike
- return type: `boolean`

Description: Determine whether this subsystem is Windows\-like.
return: true for Windows\-like subsystems

## Method: ordinal
- return type: `int`


## Static Method: count
- return type: `int`

Description: Get number of registered subsystem types.
return: number of registered subsystem types

## Static Method: register
- parameter: `id`, type: `int`
- parameter: `name`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`

Description: Register a subsystem type.
parameter: id: subsystem type id
parameter: name: subsystem type name
return: registered subsystem type

## Static Method: unregister
- parameter: `name`, type: `java.lang.String`
- return type: `boolean`

Description: Unregister a dynamic subsystem type.
parameter: name: subsystem type name
return: true if the type was unregistered

## Static Method: valueOf
- parameter: `name`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`

Description: Retrieve a subsystem type by name.
parameter: name: subsystem type name
return: matching subsystem type, or [#UNKNOWN](#UNKNOWN)

## Static Method: valueOf
- parameter: `id`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`

Description: Retrieve a subsystem type by id.
parameter: id: subsystem type id
return: matching subsystem type, or [#UNKNOWN](#UNKNOWN)

## Static Method: values
- return type: `java.util.Collection<com.pnfsoftware.jeb.core.units.codeobject.SubsystemType>`

Description: Get registered subsystem types.
return: registered subsystem types

