*******
Classes
*******

This chapter document the classes that are provided by Belden CoreOS. Classes
provided by OpenEmbedded-Core are documented in the
:external:doc:`Yocto Reference Manual <ref-manual/classes>`.

.. _ref-classes-coreos-efi-secureboot:
.. index:: coreos-efi-secureboot.bbclass


``coreos-efi-secureboot.bbclass``
=================================

The ``coreos-efi-secureboot`` class is a class made to be inherited in a global
configuration file. On the CoreOS distribution, this class is inherited inside
the CoreOS distrubtion configuration file.

This class define the location of the Secure Boot keys directory and regroup
in one file all settings that are related to both secure boot and the machine
configuration.

.. _ref-classes-coreos-efi-sbsign:
.. index:: coreos-efi-sbsign.bbclass

``coreos-efi-sbsign.bbclass``
=================================

The ``coreos-efi-sbsign`` class provide helpers functions to sign an EFI
application. 


.. _ref-classes-coreos-metadata-scm:
.. index:: coreos_metadata_scm.bbclass

``coreos_metadata_scm.bbclass``
===============================

The ``coreos_metadata_scm`` class is used inside the CoreOS distribution
configuration file to set the variables ``COREOS_METADATA_BRANCH`` and
``COREOS_METADATA_REVISION`` to the current Git branch and revision of the main
CoreOS repository.

The ``coreos_metadata_scm`` is automatically inherited if ``DISTRO`` is set to
``belden-coreos`` or to any distro based on ``belden-coreos``.

.. _ref-classes-coreos-image:
.. index:: coreos-image.bbclass

``coreos-image.bbclass``
========================

The ``coreos-image`` class provides common definitions for the
``coreos-image-*`` image recipes, such as support for additional
:extern:ref:`IMAGE_FEATURE <ref-features-image>`.

.. _ref-classes-coreos-sanity:
.. index:: coreos-sanity.class

``coreos-sanity.bbclass``
=========================

The ``coreos-sanity`` class is inherited inside the CoreOS layer
configuration file to add some sanity checks. Theses check ensure that the 
policies of CoreOS are followed.

Currently, this add check to ensure:
  - that the distro is based on CoreOS
  - that SystemD is used as ``INIT_MANAGER``
  - that glibc is used as the default C library
