aboutsummaryrefslogtreecommitdiffstats
path: root/os/license
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2016-04-16 10:14:41 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2016-04-16 10:14:41 +0000
commit6abec945c2cc50d861f43e669b6e621367be0485 (patch)
treea640cf4570d50ed4da095278eb53feb241f025cd /os/license
parent0aabb7e5adc270fbfd31b331a8e3ee3397a24a6e (diff)
downloadChibiOS-6abec945c2cc50d861f43e669b6e621367be0485.tar.gz
ChibiOS-6abec945c2cc50d861f43e669b6e621367be0485.tar.bz2
ChibiOS-6abec945c2cc50d861f43e669b6e621367be0485.zip
New licensing headers.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9286 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/license')
-rw-r--r--os/license/chcustomer.h99
-rw-r--r--os/license/chlicense.h176
2 files changed, 275 insertions, 0 deletions
diff --git a/os/license/chcustomer.h b/os/license/chcustomer.h
new file mode 100644
index 000000000..f51951169
--- /dev/null
+++ b/os/license/chcustomer.h
@@ -0,0 +1,99 @@
+/*
+ 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 <http://www.gnu.org/licenses/>.
+*/
+
+/**
+ * @file chcustomer.h
+ * @brief Customer-related info.
+ *
+ * @addtogroup customer
+ * @{
+ */
+
+#ifndef CHCUSTOMER_H
+#define CHCUSTOMER_H
+
+/*===========================================================================*/
+/* Module constants. */
+/*===========================================================================*/
+
+/**
+ * @brief Customer readable identifier.
+ */
+#define CH_CUSTOMER_ID_STRING "Santa, North Pole"
+
+/**
+ * @brief Customer code.
+ */
+#define CH_CUSTOMER_ID_CODE "xxxx-yyyy"
+
+/**
+ * @brief Current license.
+ * @note This setting is reserved to the copyright owner.
+ * @note Changing this setting invalidates the license.
+ * @note The license statement in the source headers is valid, applicable
+ * and binding regardless this setting.
+ */
+#define CH_LICENSE CH_LICENSE_GPL
+
+/**
+ * @name Licensed Products
+ * @{
+ */
+#define CH_CUSTOMER_LICENSED_RT TRUE
+#define CH_CUSTOMER_LICENSED_NIL TRUE
+#define CH_CUSTOMER_LICENSED_HAL TRUE
+#define CH_CUSTOMER_LICENSED_EX TRUE
+#define CH_CUSTOMER_LICENSED_PORT_CM0 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_CM3 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_CM4 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_CM7 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_ARM79 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_E200Z0 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_E200Z2 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_E200Z3 TRUE
+#define CH_CUSTOMER_LICENSED_PORT_E200Z4 TRUE
+/** @} */
+
+/*===========================================================================*/
+/* Module pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module data structures and types. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Module inline functions. */
+/*===========================================================================*/
+
+#endif /* CHCUSTOMER_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 <http://www.gnu.org/licenses/>.
+*/
+
+/**
+ * @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 */
+
+/** @} */