123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- /*
- ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio.
- This file is part of ChibiOS.
- ChibiOS is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
- ChibiOS is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- /**
- * @file chlicense.h
- * @brief License Module macros and structures.
- *
- * @addtogroup chibios_license
- * @details This module contains all the definitions required for defining
- * a licensing scheme for customers or public releases.
- * @{
- */
- #ifndef CHLICENSE_H
- #define CHLICENSE_H
- /*===========================================================================*/
- /* Module constants. */
- /*===========================================================================*/
- /**
- * @name Allowed Features Levels
- * @{
- */
- #define CH_FEATURES_BASIC 0
- #define CH_FEATURES_INTERMEDIATE 1
- #define CH_FEATURES_FULL 2
- /** @} */
- /**
- * @name Deployment Options
- */
- #define CH_DEPLOY_UNLIMITED -1
- #define CH_DEPLOY_NONE 0
- /** @} */
- /**
- * @name Licensing Options
- * @{
- */
- #define CH_LICENSE_GPL 0
- #define CH_LICENSE_GPL_EXCEPTION 1
- #define CH_LICENSE_COMMERCIAL_FREE 2
- #define CH_LICENSE_COMMERCIAL_DEV_1000 3
- #define CH_LICENSE_COMMERCIAL_DEV_5000 4
- #define CH_LICENSE_COMMERCIAL_FULL 5
- #define CH_LICENSE_COMMERCIAL_RUNTIME 6
- #define CH_LICENSE_PARTNER 7
- /** @} */
- #include "chcustomer.h"
- #if CH_LICENSE == CH_LICENSE_PARTNER
- #include "chpartner.h"
- #endif
- #if CH_LICENSE == CH_LICENSE_COMMERCIAL_RUNTIME
- #include "chruntime.h"
- #endif
- /*===========================================================================*/
- /* Module pre-compile time settings. */
- /*===========================================================================*/
- /*===========================================================================*/
- /* Derived constants and error checks. */
- /*===========================================================================*/
- #if (CH_LICENSE == CH_LICENSE_GPL) || defined(__DOXYGEN__)
- /**
- * @brief License identification string.
- * @details This string identifies the license in a machine-readable
- * format.
- */
- #define CH_LICENSE_TYPE_STRING "GNU General Public License 3 (GPL3)"
- /**
- * @brief Customer identification string.
- * @details This information is only available for registered commercial users.
- */
- #define CH_LICENSE_ID_STRING "N/A"
- /**
- * @brief Customer code.
- * @details This information is only available for registered commercial users.
- */
- #define CH_LICENSE_ID_CODE "N/A"
- /**
- * @brief Code modifiability restrictions.
- * @details This setting defines if the source code is user-modifiable or not.
- */
- #define CH_LICENSE_MODIFIABLE_CODE TRUE
- /**
- * @brief Code functionality restrictions.
- */
- #define CH_LICENSE_FEATURES CH_FEATURES_FULL
- /**
- * @brief Code deploy restrictions.
- * @details This is the per-core deploy limit allowed under the current
- * license scheme.
- */
- #define CH_LICENSE_MAX_DEPLOY CH_DEPLOY_UNLIMITED
- #elif CH_LICENSE == CH_LICENSE_GPL_EXCEPTION
- #define CH_LICENSE_TYPE_STRING "GNU General Public License 3 (GPL3) + Exception"
- #define CH_LICENSE_ID_STRING "N/A"
- #define CH_LICENSE_ID_CODE "N/A"
- #define CH_LICENSE_MODIFIABLE_CODE FALSE
- #define CH_LICENSE_FEATURES CH_FEATURES_BASIC
- #define CH_LICENSE_MAX_DEPLOY CH_DEPLOY_UNLIMITED
- #elif CH_LICENSE == CH_LICENSE_COMMERCIAL_FREE
- #define CH_LICENSE_TYPE_STRING "Zero Cost Registered License for 500 Cores"
- #define CH_LICENSE_ID_STRING "N/A"
- #define CH_LICENSE_ID_CODE "2017-0000"
- #define CH_LICENSE_MODIFIABLE_CODE FALSE
- #define CH_LICENSE_FEATURES CH_FEATURES_INTERMEDIATE
- #define CH_LICENSE_MAX_DEPLOY 500
- #elif CH_LICENSE == CH_LICENSE_COMMERCIAL_DEV_1000
- #define CH_LICENSE_TYPE_STRING "Developer Commercial License for 1000 Cores"
- #define CH_LICENSE_ID_STRING CH_CUSTOMER_ID_STRING
- #define CH_LICENSE_ID_CODE CH_CUSTOMER_ID_CODE
- #define CH_LICENSE_MODIFIABLE_CODE TRUE
- #define CH_LICENSE_FEATURES CH_FEATURES_FULL
- #define CH_LICENSE_DEPLOY_LIMIT 1000
- #elif CH_LICENSE == CH_LICENSE_COMMERCIAL_DEV_5000
- #define CH_LICENSE_TYPE_STRING "Developer Commercial License for 5000 Cores"
- #define CH_LICENSE_ID_STRING CH_CUSTOMER_ID_STRING
- #define CH_LICENSE_ID_CODE CH_CUSTOMER_ID_CODE
- #define CH_LICENSE_MODIFIABLE_CODE TRUE
- #define CH_LICENSE_FEATURES CH_FEATURES_FULL
- #define CH_LICENSE_DEPLOY_LIMIT 5000
- #elif CH_LICENSE == CH_LICENSE_COMMERCIAL_FULL
- #define CH_LICENSE_TYPE_STRING "Full Commercial License for Unlimited Deployment"
- #define CH_LICENSE_ID_STRING CH_CUSTOMER_ID_STRING
- #define CH_LICENSE_ID_CODE CH_CUSTOMER_ID_CODE
- #define CH_LICENSE_MODIFIABLE_CODE TRUE
- #define CH_LICENSE_FEATURES CH_FEATURES_FULL
- #define CH_LICENSE_MAX_DEPLOY CH_DEPLOY_UNLIMITED
- #elif CH_LICENSE == CH_LICENSE_COMMERCIAL_RUNTIME
- #define CH_LICENSE_TYPE_STRING "Runtime Commercial License"
- #define CH_LICENSE_ID_STRING CH_CUSTOMER_ID_STRING
- #define CH_LICENSE_ID_CODE CH_CUSTOMER_ID_CODE
- #define CH_LICENSE_MODIFIABLE_CODE TRUE
- #define CH_LICENSE_FEATURES CH_FEATURES_FULL
- #define CH_LICENSE_MAX_DEPLOY CH_RUNTIME_MAX_DEPLOY
- #elif CH_LICENSE == CH_LICENSE_PARTNER
- #define CH_LICENSE_TYPE_STRING "Partners Special Commercial License"
- #define CH_LICENSE_ID_STRING CH_CUSTOMER_ID_STRING
- #define CH_LICENSE_ID_CODE CH_CUSTOMER_ID_CODE
- #define CH_LICENSE_MODIFIABLE_CODE CH_PARTNER_MODIFIABLE_CODE
- #define CH_LICENSE_FEATURES CH_PARTNER_FEATURES
- #define CH_LICENSE_MAX_DEPLOY CH_PARTNER_MAX_DEPLOY
- #else
- #error "invalid licensing option"
- #endif
- /*===========================================================================*/
- /* Module data structures and types. */
- /*===========================================================================*/
- /*===========================================================================*/
- /* Module macros. */
- /*===========================================================================*/
- /*===========================================================================*/
- /* External declarations. */
- /*===========================================================================*/
- /*===========================================================================*/
- /* Module inline functions. */
- /*===========================================================================*/
- #endif /* CHLICENSE_H */
- /** @} */
|