From 48026bb824fd2d9cfb00ecd040db6ef3a416bae9 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Fri, 22 Jan 2021 21:43:36 -0500 Subject: upload initial port --- ChibiOS_20.3.2/os/license/chlicense.h | 199 ++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 ChibiOS_20.3.2/os/license/chlicense.h (limited to 'ChibiOS_20.3.2/os/license/chlicense.h') diff --git a/ChibiOS_20.3.2/os/license/chlicense.h b/ChibiOS_20.3.2/os/license/chlicense.h new file mode 100644 index 0000000..9a956de --- /dev/null +++ b/ChibiOS_20.3.2/os/license/chlicense.h @@ -0,0 +1,199 @@ +/* + 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 . +*/ + +/** + * @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 */ + +/** @} */ -- cgit v1.2.3