From 6abec945c2cc50d861f43e669b6e621367be0485 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 16 Apr 2016 10:14:41 +0000 Subject: New licensing headers. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9286 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/license/chlicense.h | 176 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 os/license/chlicense.h (limited to 'os/license/chlicense.h') diff --git a/os/license/chlicense.h b/os/license/chlicense.h new file mode 100644 index 000000000..a0c8ed2c7 --- /dev/null +++ b/os/license/chlicense.h @@ -0,0 +1,176 @@ +/* + ChibiOS - Copyright (C) 2006..2016 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 license + * @{ + */ + +#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_DEVELOPER 3 +#define CH_LICENSE_COMMERCIAL_FULL 4 +#define CH_LICENSE_PARTNER 5 +/** @} */ + +#include "chcustomer.h" +#if CH_LICENSE == CH_LICENSE_PARTNER +#include "chpartner.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" +#define CH_LICENSE_ID_STRING "N/A" +#define CH_LICENSE_ID_CODE "2015-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_DEVELOPER +#define CH_LICENSE_TYPE_STRING "Developer-Only 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_DEPLOY_LIMIT 5000 + +#elif CH_LICENSE == CH_LICENSE_COMMERCIAL_FULL +#define CH_LICENSE_TYPE_STRING "Full 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_DEPLOY_UNLIMITED + +#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