# System

Interface to get system information regarding system architecture, label and release state.

## File information

File | common/interface/system.h
Classes | ISystem
Data types | architecture_t

# Classes

## ISystem

    class ISystem {
    public:
        static void GetArchitecture(char * buffer, size_t len);
        static architecture_t GetArchitecture();
        static const char * GetArchitectureName();
        static void Sync();
        static const char * Label();
        static const char * LabelRootfs();
        static const char * ReleaseState();
        static bool SetBindServiceCapability(const char * path);
        static bool IsVirtualMachine();
    };

### Public functions

GetArchitecture (static function)

  The function is used to get a string containing the architecture of the machine (e.g. armv7l on IP811)

  #### Parameters

  char * buffer | To hold the architecture string
  size_t * len | The length of the buffer

GetArchitecture (static function)

  The function is used to get the architecture of the system.

  #### Return value

  Returns the architecture of the system as an `enum` of type architecture_t.

GetArchitectureName (static function)

  The function is used to get the architecture name of the system.

  #### Return value

  Returns the architecture name of the system as a `const char *`.

Sync (static function)

  A call to this function will synchronize data on disk with memory. Any buffered data in memory is writen out to disk.

Label (static function)

  The function is used to get the label of the installed application platform.

  #### Return value

  Returns the actual label of the App platform.

LabelRootfs (static function)

  The function is used to get the label of the underlying rootfs of the installed application platform.

  #### Return value

  Returns the actual rootfs label of the App platform.

ReleaseState (static function)

  The function is used to get the release state of the installed application platform.

  #### Return value

  Returns the actual release state of the App platform.

SetBindServiceCapability (static function)

  The function is used to set the capability flag `CAP_NET_BIND_SERVICE` for the pathname pointed to by path. The flags assocaited with the capability are `CAP_EFFECTIVE` and `CAP_PERMITTED`. This function is strictly used by the Manager App.

  #### Return value

  If the capability is successfully set true is returned; otherwise false.

IsVirtualMachine (static function)

  Checks if the system is running on a virtual machine.

  #### Return value

  In case of virtual machine achitecture true is returned; otherwise false.

# Data types

## architecture_t

    typedef enum {
        ARM,
        X86_64,
        ARM64
    } architecture_t;

### Overview

The `enum architecture_t` defines the achitectures supported by the interface.

### Values

ARM |
X86_64 |
ARM64 |