]> Kevux Git Server - controller/commitdiff
Progress: Continue migrating the project.
authorKevin Day <kevin@kevux.org>
Fri, 12 Apr 2024 01:45:08 +0000 (20:45 -0500)
committerKevin Day <kevin@kevux.org>
Fri, 12 Apr 2024 01:45:08 +0000 (20:45 -0500)
13 files changed:
data/build/settings
sources/c/controller/controller.h
sources/c/init/init.h
sources/c/main/common/define.h
sources/c/main/common/define/control.h [new file with mode: 0644]
sources/c/main/common/define/entry.h [new file with mode: 0644]
sources/c/main/common/define/rule.h [new file with mode: 0644]
sources/c/main/common/enumeration.h
sources/c/main/common/string/general.c [new file with mode: 0644]
sources/c/main/common/string/general.h [new file with mode: 0644]
sources/c/main/common/string/rule.c [new file with mode: 0644]
sources/c/main/common/string/rule.h [new file with mode: 0644]
sources/c/main/controller.h

index 0741a74e0026fe75c94e769f8405357df39bd11c..e6bc61c3792abca8c9d57e68397485cb4d6e9089 100644 (file)
@@ -42,11 +42,14 @@ build_libraries-monolithic -lfll
 
 build_sources_library main/common.c main/common/define.c main/common/enumeration.c main/common/print.c main/common/string.c main/common/type.c
 build_sources_library main/common/type/cache.c main/common/type/control.c main/common/type/entry.c main/common/type/process.c main/common/type/rule.c
+build_sources_library main/common/string/general.c main/common/string/rule.c
 build_sources_library main/print/data.c main/print/debug.c main/print/error.c main/print/message.c main/print/verbose.c main/print/warning.c
 build_sources_library main/signal.c main/thread.c
 
 build_sources_headers main/common.h main/controller.h main/common/define.h main/common/enumeration.h main/common/print.h main/common/string.h main/common/type.h
+build_sources_headers main/common/define/control.h main/common/define/entry.h main/common/define/rule.h
 build_sources_headers main/common/enumeration/control.h main/common/enumeration/entry.h main/common/enumeration/process.h main/common/enumeration/rule.h
+build_sources_headers main/common/string/general.h main/common/string/rule.h
 build_sources_headers main/common/type/cache.h main/common/type/control.h main/common/type/entry.h main/common/type/process.h main/common/type/rule.h
 build_sources_headers main/print/data.h main/print/debug.h main/print/error.h main/print/message.h main/print/verbose.h main/print/warning.h
 build_sources_headers main/signal.h main/thread.h
index 2eed854d2de41c06c3958f055abeaab7603a18b8..a1e4fd6153358b24cd4634993c069021d463d0d3 100644 (file)
 #ifndef _controller_controller_h
 #define _controller_controller_h
 
+// Include pre-requirements.
+#ifndef _GNU_SOURCE
+  #define _GNU_SOURCE
+#endif // _GNU_SOURCE
+
 // Libc includes.
 #include <stdio.h>
 #include <stdlib.h>
 #include <program/controller/main/common/enumeration.h>
 #include <program/controller/main/common/print.h>
 #include <program/controller/main/common/string.h>
+#include <program/controller/main/common/string/general.h>
+#include <program/controller/main/common/string/rule.h>
+#include <program/controller/main/common/define/control.h>
+#include <program/controller/main/common/define/entry.h>
+#include <program/controller/main/common/define/rule.h>
 #include <program/controller/main/common/enumeration/control.h>
 #include <program/controller/main/common/enumeration/entry.h>
 #include <program/controller/main/common/enumeration/rule.h>
index 09bf2d07d1412996e34e8775ad52ea225626b5a8..5717cf29dfd36fbb4db464d6a27b43b4e4d19f16 100644 (file)
 #ifndef _controller_init_h
 #define _controller_init_h
 
+// Include pre-requirements.
+#ifndef _GNU_SOURCE
+  #define _GNU_SOURCE
+#endif // _GNU_SOURCE
+
 // Libc includes.
 #include <stdio.h>
 #include <stdlib.h>
 #include <program/controller/main/common/enumeration.h>
 #include <program/controller/main/common/print.h>
 #include <program/controller/main/common/string.h>
+#include <program/controller/main/common/string/general.h>
+#include <program/controller/main/common/string/rule.h>
+#include <program/controller/main/common/define/control.h>
+#include <program/controller/main/common/define/entry.h>
+#include <program/controller/main/common/define/rule.h>
 #include <program/controller/main/common/enumeration/control.h>
 #include <program/controller/main/common/enumeration/entry.h>
 #include <program/controller/main/common/enumeration/rule.h>
index 8bf7926882343123c1126604f11a55256b26d093..a3cfa9506033325ddfd771e47546c2c835a9e344 100644 (file)
@@ -20,16 +20,20 @@ extern "C" {
  * The program allocation defines.
  *
  * controller_allocation_*_d:
- *   - console: An allocation step used for small buffers specifically for console parameter.
- *   - large:   An allocation step used for buffers that are anticipated to have large buffers.
- *   - pipe:    A buffer size used for processing piped data.
- *   - small:   An allocation step used for buffers that are anticipated to have small buffers.
+ *   - console:   An allocation step used for small buffers specifically for console parameter.
+ *   - iki_large: An allocation step used for IKI buffers that are anticipated to have large buffers.
+ *   - iki_small: An allocation step used for IKI buffers that are anticipated to have small buffers.
+ *   - large:     An allocation step used for buffers that are anticipated to have large buffers.
+ *   - pipe:      A buffer size used for processing piped data.
+ *   - small:     An allocation step used for buffers that are anticipated to have small buffers.
  */
 #ifndef _di_controller_allocation_d_
-  #define controller_allocation_console_d 4
-  #define controller_allocation_large_d   256
-  #define controller_allocation_pipe_d    16384
-  #define controller_allocation_small_d   16
+  #define controller_allocation_console_d   4
+  #define controller_allocation_iki_large_d 128
+  #define controller_allocation_iki_small_d 8
+  #define controller_allocation_large_d     256
+  #define controller_allocation_pipe_d      16384
+  #define controller_allocation_small_d     16
 #endif // _di_controller_allocation_d_
 
 /**
@@ -48,6 +52,20 @@ extern "C" {
   #define controller_signal_check_short_d    16
 #endif // _di_controller_signal_d_
 
+/**
+ * Controller "with" codes.
+ *
+ * controller_with_*_d:
+ *   - full_path:    Using "with" full path.
+ *   - session_new:  Using "with" new session.
+ *   - session_same: Using "with" same session.
+ */
+#ifndef _di_controller_with_d_
+  #define controller_with_full_path_d    0x1
+  #define controller_with_session_new_d  0x2
+  #define controller_with_session_same_d 0x4
+#endif // _di_controller_with_d_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
diff --git a/sources/c/main/common/define/control.h b/sources/c/main/common/define/control.h
new file mode 100644 (file)
index 0000000..2fd2d00
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Controller
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides the common control defines.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _controller_main_common_define_control_h
+#define _controller_main_common_define_control_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Provide default control settings.
+ *
+ * controller_control_default_*_d:
+ *   - socket_backlog:     The amount of waiting client connections to support while handling a socket connection.
+ *   - socket_buffer:      The preferred max size of the buffer such that if the buffer exceeds this then it is reallocated to this size at the end of processing.
+ *   - socket_buffer_max:  The max size allowed in the buffer (this value must not be set smaller than the packet headers).
+ *   - socket_cache:       The preferred max size of the control cache such that if the cache exceeds this then it is reallocated to this size at the end of processing.
+ *   - socket_header:      The minimum size in bytes of the packet header to read to be able to process the size information.
+ *   - socket_linger:      The number of seconds to linger the connection before closing.
+ *   - socket_payload_max: The max size allowed for the "payload" part of a packet and must be smaller than socket_buffer_max (this is smaller than socket_buffer_max to allow for enough room to afford a header).
+ *   - socket_timeout:     The number of microseconds to wait.
+ */
+#ifndef _di_controller_control_defaults_d_
+  #define controller_control_default_socket_backlog_d     64
+  #define controller_control_default_socket_buffer_d      2048
+  #define controller_control_default_socket_buffer_max_d  4294967296
+  #define controller_control_default_socket_cache_d       128
+  #define controller_control_default_socket_header_d      5
+  #define controller_control_default_socket_linger_d      2
+  #define controller_control_default_socket_payload_max_d 4294965248
+  #define controller_control_default_socket_timeout_d     10000 // 0.01 seconds.
+#endif // _di_controller_control_defaults_d_
+
+/**
+ * A codes repesent different flags associated with a packet.
+ *
+ * controller_control_packet_flag_*_d:
+ *   - binary:     Designate that the packet is in binary mode (when not set then packet is in string mode).
+ *   - endian_big: Designate that the packet is in big endian order (when not set then packet is in little endian order).
+ */
+#ifndef _di_controller_control_packet_flag_d_
+  #define controller_control_packet_flag_binary_d     0x10000000
+  #define controller_control_packet_flag_endian_big_d 0x01000000
+#endif // _di_controller_control_packet_flag_d_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _controller_main_common_define_control_h
diff --git a/sources/c/main/common/define/entry.h b/sources/c/main/common/define/entry.h
new file mode 100644 (file)
index 0000000..5df1642
--- /dev/null
@@ -0,0 +1,53 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Controller
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides the common entry defines.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _controller_main_common_define_entry_h
+#define _controller_main_common_define_entry_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Controller Entry Item Rule Code defines.
+ *
+ * controller_entry_rule_code_*_d:
+ *   - asynchronous: Process Rule asynchronously.
+ *   - require:      Require Rule operations to succeed or the Entry/Exit will fail.
+ *   - wait:         Wait for all existing asynchronous processes to finish before operating Rule.
+ */
+#ifndef _di_controller_entry_rule_code_d_
+  #define controller_entry_rule_code_asynchronous_d 0x1
+  #define controller_entry_rule_code_require_d      0x2
+  #define controller_entry_rule_code_wait_d         0x4
+#endif // _di_controller_entry_rule_code_d_
+
+/**
+ * Controller Entry Item Timeout Code defines.
+ *
+ * controller_entry_timeout_code_*_d:
+ *   - exit:  The timeout Action represents an exit timeout.
+ *   - kill:  The timeout Action represents a kill timeout.
+ *   - start: The timeout Action represents a start timeout.
+ *   - stop:  The timeout Action represents a stop timeout.
+ */
+#ifndef _di_controller_entry_timeout_code_d_
+  #define controller_entry_timeout_code_exit_d  0x1
+  #define controller_entry_timeout_code_kill_d  0x2
+  #define controller_entry_timeout_code_start_d 0x4
+  #define controller_entry_timeout_code_stop_d  0x8
+#endif // _di_controller_entry_timeout_code_d_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _controller_main_common_define_entry_h
diff --git a/sources/c/main/common/define/rule.h b/sources/c/main/common/define/rule.h
new file mode 100644 (file)
index 0000000..2c72290
--- /dev/null
@@ -0,0 +1,76 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Controller
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides the common rule defines.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _controller_main_common_define_rule_h
+#define _controller_main_common_define_rule_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Controller Rule "has" defines.
+ *
+ * Bitwise codes representing properties on controller_rule_t that have been found in the Rule file.
+ *
+ * controller_rule_has_*_d:
+ *   - cgroup:    Has type representing a control group.
+ *   - group:     Has type representing a group.
+ *   - nice:      Has type representing a nice.
+ *   - scheduler: Has type representing a scheduler.
+ *   - user:      Has type representing a user.
+ */
+#ifndef _di_controller_rule_has_d_
+  #define controller_rule_has_cgroup_d      0x1
+  #define controller_rule_has_environment_d 0x2
+  #define controller_rule_has_group_d       0x4
+  #define controller_rule_has_nice_d        0x8
+  #define controller_rule_has_scheduler_d   0x10
+  #define controller_rule_has_user_d        0x20
+#endif // _di_controller_rule_has_d_
+
+/**
+ * Controller Rule "rerun" "is" defines.
+ *
+ * controller_rule_rerun_is_*_d:
+ *   - failure:       The success re-run is enabled.
+ *   - failure_reset: Reset success counter when failure is returned.
+ *   - success:       The success re-run is enabled.
+ *   - success_reset: Reset failure counter when success is returned.
+ */
+#ifndef _di_controller_rule_rerun_d_
+  #define controller_rule_rerun_is_failure_d       0x1
+  #define controller_rule_rerun_is_failure_reset_d 0x2
+  #define controller_rule_rerun_is_success_d       0x4
+  #define controller_rule_rerun_is_success_reset_d 0x8
+#endif // _di_controller_rule_rerun_d_
+
+/**
+ * Controller Rule timeout code defines.
+ *
+ * Designate codes for timeout settings to be used during the loading of the Rule timeout settings.
+ *
+ * controller_rule_timeout_code_*_d:
+ *   - kill:  Forcibly stop a rule.
+ *   - start: Start a rule.
+ *   - stop:  Stop a rule.
+ */
+#ifndef _di_controller_rule_timeout_code_d_
+  #define controller_rule_timeout_code_kill_d  1
+  #define controller_rule_timeout_code_start_d 2
+  #define controller_rule_timeout_code_stop_d  3
+#endif // _di_controller_rule_timeout_code_d_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _controller_main_common_define_rule_h
index 8abba740b3b4ac529445b29f4d6b35ff020d61e0..1f8ae3b93a7a295e0c7d55f7be8ebba5055c5100 100644 (file)
@@ -101,6 +101,32 @@ extern "C" {
   }; // enum
 #endif // _di_controller_print_flag_e_
 
+/**
+ * A set of codes for resource limitations.
+ *
+ * This essentally converts the POSIX standard names into a more verbose format.
+ */
+#ifndef _di_controller_resource_limit_type_e_
+  enum {
+    controller_resource_limit_type_as_e = RLIMIT_AS,
+    controller_resource_limit_type_core_e = RLIMIT_CORE,
+    controller_resource_limit_type_cpu_e = RLIMIT_CPU,
+    controller_resource_limit_type_data_e = RLIMIT_DATA,
+    controller_resource_limit_type_fsize_e = RLIMIT_FSIZE,
+    controller_resource_limit_type_locks_e = RLIMIT_LOCKS,
+    controller_resource_limit_type_memlock_e = RLIMIT_MEMLOCK,
+    controller_resource_limit_type_msgqueue_e = RLIMIT_MSGQUEUE,
+    controller_resource_limit_type_nice_e = RLIMIT_NICE,
+    controller_resource_limit_type_nofile_e = RLIMIT_NOFILE,
+    controller_resource_limit_type_nproc_e = RLIMIT_NPROC,
+    controller_resource_limit_type_rss_e = RLIMIT_RSS,
+    controller_resource_limit_type_rtprio_e = RLIMIT_RTPRIO,
+    controller_resource_limit_type_rttime_e = RLIMIT_RTTIME,
+    controller_resource_limit_type_sigpending_e = RLIMIT_SIGPENDING,
+    controller_resource_limit_type_stack_e = RLIMIT_STACK,
+  }; // enum
+#endif // _di_controller_resource_limit_type_e_
+
 #ifdef __cplusplus
 } // extern "C"
 #endif
diff --git a/sources/c/main/common/string/general.c b/sources/c/main/common/string/general.c
new file mode 100644 (file)
index 0000000..357f260
--- /dev/null
@@ -0,0 +1,148 @@
+#include "../../controller.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_controller_string_s_
+  const f_string_static_t controller_action_s = macro_f_string_static_t_initialize_1(CONTROLLER_action_s, 0, CONTROLLER_action_s_length);
+  const f_string_static_t controller_actions_s = macro_f_string_static_t_initialize_1(CONTROLLER_actions_s, 0, CONTROLLER_actions_s_length);
+  const f_string_static_t controller_affinity_s = macro_f_string_static_t_initialize_1(CONTROLLER_affinity_s, 0, CONTROLLER_affinity_s_length);
+  const f_string_static_t controller_as_s = macro_f_string_static_t_initialize_1(CONTROLLER_as_s, 0, CONTROLLER_as_s_length);
+  const f_string_static_t controller_asynchronous_s = macro_f_string_static_t_initialize_1(CONTROLLER_asynchronous_s, 0, CONTROLLER_asynchronous_s_length);
+  const f_string_static_t controller_bash_s = macro_f_string_static_t_initialize_1(CONTROLLER_bash_s, 0, CONTROLLER_bash_s_length);
+  const f_string_static_t controller_batch_s = macro_f_string_static_t_initialize_1(CONTROLLER_batch_s, 0, CONTROLLER_batch_s_length);
+  const f_string_static_t controller_capability_s = macro_f_string_static_t_initialize_1(CONTROLLER_capability_s, 0, CONTROLLER_capability_s_length);
+  const f_string_static_t controller_cgroup_s = macro_f_string_static_t_initialize_1(CONTROLLER_cgroup_s, 0, CONTROLLER_cgroup_s_length);
+  const f_string_static_t controller_create_s = macro_f_string_static_t_initialize_1(CONTROLLER_create_s, 0, CONTROLLER_create_s_length);
+  const f_string_static_t controller_command_s = macro_f_string_static_t_initialize_1(CONTROLLER_command_s, 0, CONTROLLER_command_s_length);
+  const f_string_static_t controller_consider_s = macro_f_string_static_t_initialize_1(CONTROLLER_consider_s, 0, CONTROLLER_consider_s_length);
+  const f_string_static_t controller_control_s = macro_f_string_static_t_initialize_1(CONTROLLER_control_s, 0, CONTROLLER_control_s_length);
+  const f_string_static_t controller_control_group_s = macro_f_string_static_t_initialize_1(CONTROLLER_control_group_s, 0, CONTROLLER_control_group_s_length);
+  const f_string_static_t controller_control_has_s = macro_f_string_static_t_initialize_1(CONTROLLER_control_has_s, 0, CONTROLLER_control_has_s_length);
+  const f_string_static_t controller_control_mode_s = macro_f_string_static_t_initialize_1(CONTROLLER_control_mode_s, 0, CONTROLLER_control_mode_s_length);
+  const f_string_static_t controller_control_user_s = macro_f_string_static_t_initialize_1(CONTROLLER_control_user_s, 0, CONTROLLER_control_user_s_length);
+  const f_string_static_t controller_controller_s = macro_f_string_static_t_initialize_1(CONTROLLER_controller_s, 0, CONTROLLER_controller_s_length);
+  const f_string_static_t controller_cpu_s = macro_f_string_static_t_initialize_1(CONTROLLER_cpu_s, 0, CONTROLLER_cpu_s_length);
+  const f_string_static_t controller_core_s = macro_f_string_static_t_initialize_1(CONTROLLER_core_s, 0, CONTROLLER_core_s_length);
+  const f_string_static_t controller_data_s = macro_f_string_static_t_initialize_1(CONTROLLER_data_s, 0, CONTROLLER_data_s_length);
+  const f_string_static_t controller_deadline_s = macro_f_string_static_t_initialize_1(CONTROLLER_deadline_s, 0, CONTROLLER_deadline_s_length);
+  const f_string_static_t controller_default_s = macro_f_string_static_t_initialize_1(CONTROLLER_default_s, 0, CONTROLLER_default_s_length);
+  const f_string_static_t controller_define_s = macro_f_string_static_t_initialize_1(CONTROLLER_define_s, 0, CONTROLLER_define_s_length);
+  const f_string_static_t controller_delay_s = macro_f_string_static_t_initialize_1(CONTROLLER_delay_s, 0, CONTROLLER_delay_s_length);
+  const f_string_static_t controller_directory_s = macro_f_string_static_t_initialize_1(CONTROLLER_directory_s, 0, CONTROLLER_directory_s_length);
+  const f_string_static_t controller_disable_s = macro_f_string_static_t_initialize_1(CONTROLLER_disable_s, 0, CONTROLLER_disable_s_length);
+  const f_string_static_t controller_engine_s = macro_f_string_static_t_initialize_1(CONTROLLER_engine_s, 0, CONTROLLER_engine_s_length);
+  const f_string_static_t controller_entry_s = macro_f_string_static_t_initialize_1(CONTROLLER_entry_s, 0, CONTROLLER_entry_s_length);
+  const f_string_static_t controller_entries_s = macro_f_string_static_t_initialize_1(CONTROLLER_entries_s, 0, CONTROLLER_entries_s_length);
+  const f_string_static_t controller_environment_s = macro_f_string_static_t_initialize_1(CONTROLLER_environment_s, 0, CONTROLLER_environment_s_length);
+  const f_string_static_t controller_error_s = macro_f_string_static_t_initialize_1(CONTROLLER_error_s, 0, CONTROLLER_error_s_length);
+  const f_string_static_t controller_execute_s = macro_f_string_static_t_initialize_1(CONTROLLER_execute_s, 0, CONTROLLER_execute_s_length);
+  const f_string_static_t controller_existing_s = macro_f_string_static_t_initialize_1(CONTROLLER_existing_s, 0, CONTROLLER_existing_s_length);
+  const f_string_static_t controller_exit_s = macro_f_string_static_t_initialize_1(CONTROLLER_exit_s, 0, CONTROLLER_exit_s_length);
+  const f_string_static_t controller_exits_s = macro_f_string_static_t_initialize_1(CONTROLLER_exits_s, 0, CONTROLLER_exits_s_length);
+  const f_string_static_t controller_fail_s = macro_f_string_static_t_initialize_1(CONTROLLER_fail_s, 0, CONTROLLER_fail_s_length);
+  const f_string_static_t controller_failsafe_s = macro_f_string_static_t_initialize_1(CONTROLLER_failsafe_s, 0, CONTROLLER_failsafe_s_length);
+  const f_string_static_t controller_failure_s = macro_f_string_static_t_initialize_1(CONTROLLER_failure_s, 0, CONTROLLER_failure_s_length);
+  const f_string_static_t controller_fifo_s = macro_f_string_static_t_initialize_1(CONTROLLER_fifo_s, 0, CONTROLLER_fifo_s_length);
+  const f_string_static_t controller_file_s = macro_f_string_static_t_initialize_1(CONTROLLER_file_s, 0, CONTROLLER_file_s_length);
+  const f_string_static_t controller_freeze_s = macro_f_string_static_t_initialize_1(CONTROLLER_freeze_s, 0, CONTROLLER_freeze_s_length);
+  const f_string_static_t controller_fsize_s = macro_f_string_static_t_initialize_1(CONTROLLER_fsize_s, 0, CONTROLLER_fsize_s_length);
+  const f_string_static_t controller_full_path_s = macro_f_string_static_t_initialize_1(CONTROLLER_full_path_s, 0, CONTROLLER_full_path_s_length);
+  const f_string_static_t controller_group_s = macro_f_string_static_t_initialize_1(CONTROLLER_group_s, 0, CONTROLLER_group_s_length);
+  const f_string_static_t controller_groups_s = macro_f_string_static_t_initialize_1(CONTROLLER_groups_s, 0, CONTROLLER_groups_s_length);
+  const f_string_static_t controller_helper_s = macro_f_string_static_t_initialize_1(CONTROLLER_helper_s, 0, CONTROLLER_helper_s_length);
+  const f_string_static_t controller_how_s = macro_f_string_static_t_initialize_1(CONTROLLER_how_s, 0, CONTROLLER_how_s_length);
+  const f_string_static_t controller_idle_s = macro_f_string_static_t_initialize_1(CONTROLLER_idle_s, 0, CONTROLLER_idle_s_length);
+  const f_string_static_t controller_iki_s = macro_f_string_static_t_initialize_1(CONTROLLER_iki_s, 0, CONTROLLER_iki_s_length);
+  const f_string_static_t controller_item_s = macro_f_string_static_t_initialize_1(CONTROLLER_item_s, 0, CONTROLLER_item_s_length);
+  const f_string_static_t controller_init_s = macro_f_string_static_t_initialize_1(CONTROLLER_init_s, 0, CONTROLLER_init_s_length);
+  const f_string_static_t controller_kexec_s = macro_f_string_static_t_initialize_1(CONTROLLER_kexec_s, 0, CONTROLLER_kexec_s_length);
+  const f_string_static_t controller_kill_s = macro_f_string_static_t_initialize_1(CONTROLLER_kill_s, 0, CONTROLLER_kill_s_length);
+  const f_string_static_t controller_length_s = macro_f_string_static_t_initialize_1(CONTROLLER_length_s, 0, CONTROLLER_length_s_length);
+  const f_string_static_t controller_limit_s = macro_f_string_static_t_initialize_1(CONTROLLER_limit_s, 0, CONTROLLER_limit_s_length);
+  const f_string_static_t controller_locks_s = macro_f_string_static_t_initialize_1(CONTROLLER_locks_s, 0, CONTROLLER_locks_s_length);
+  const f_string_static_t controller_main_s = macro_f_string_static_t_initialize_1(CONTROLLER_main_s, 0, CONTROLLER_main_s_length);
+  const f_string_static_t controller_max_s = macro_f_string_static_t_initialize_1(CONTROLLER_max_s, 0, CONTROLLER_max_s_length);
+  const f_string_static_t controller_memlock_s = macro_f_string_static_t_initialize_1(CONTROLLER_memlock_s, 0, CONTROLLER_memlock_s_length);
+  const f_string_static_t controller_method_s = macro_f_string_static_t_initialize_1(CONTROLLER_method_s, 0, CONTROLLER_method_s_length);
+  const f_string_static_t controller_mode_s = macro_f_string_static_t_initialize_1(CONTROLLER_mode_s, 0, CONTROLLER_mode_s_length);
+  const f_string_static_t controller_msgqueue_s = macro_f_string_static_t_initialize_1(CONTROLLER_msgqueue_s, 0, CONTROLLER_msgqueue_s_length);
+  const f_string_static_t controller_name_s = macro_f_string_static_t_initialize_1(CONTROLLER_name_s, 0, CONTROLLER_name_s_length);
+  const f_string_static_t controller_need_s = macro_f_string_static_t_initialize_1(CONTROLLER_need_s, 0, CONTROLLER_need_s_length);
+  const f_string_static_t controller_new_s = macro_f_string_static_t_initialize_1(CONTROLLER_new_s, 0, CONTROLLER_new_s_length);
+  const f_string_static_t controller_nice_s = macro_f_string_static_t_initialize_1(CONTROLLER_nice_s, 0, CONTROLLER_nice_s_length);
+  const f_string_static_t controller_no_s = macro_f_string_static_t_initialize_1(CONTROLLER_no_s, 0, CONTROLLER_no_s_length);
+  const f_string_static_t controller_nofile_s = macro_f_string_static_t_initialize_1(CONTROLLER_nofile_s, 0, CONTROLLER_nofile_s_length);
+  const f_string_static_t controller_normal_s = macro_f_string_static_t_initialize_1(CONTROLLER_normal_s, 0, CONTROLLER_normal_s_length);
+  const f_string_static_t controller_nproc_s = macro_f_string_static_t_initialize_1(CONTROLLER_nproc_s, 0, CONTROLLER_nproc_s_length);
+  const f_string_static_t controller_on_s = macro_f_string_static_t_initialize_1(CONTROLLER_on_s, 0, CONTROLLER_on_s_length);
+  const f_string_static_t controller_optional_s = macro_f_string_static_t_initialize_1(CONTROLLER_optional_s, 0, CONTROLLER_optional_s_length);
+  const f_string_static_t controller_other_s = macro_f_string_static_t_initialize_1(CONTROLLER_other_s, 0, CONTROLLER_other_s_length);
+  const f_string_static_t controller_parameter_s = macro_f_string_static_t_initialize_1(CONTROLLER_parameter_s, 0, CONTROLLER_parameter_s_length);
+  const f_string_static_t controller_parameters_s = macro_f_string_static_t_initialize_1(CONTROLLER_parameters_s, 0, CONTROLLER_parameters_s_length);
+  const f_string_static_t controller_path_s = macro_f_string_static_t_initialize_1(CONTROLLER_path_s, 0, CONTROLLER_path_s_length);
+  const f_string_static_t controller_pause_s = macro_f_string_static_t_initialize_1(CONTROLLER_pause_s, 0, CONTROLLER_pause_s_length);
+  const f_string_static_t controller_payload_type_s = macro_f_string_static_t_initialize_1(CONTROLLER_payload_type_s, 0, CONTROLLER_payload_type_s_length);
+  const f_string_static_t controller_pid_s = macro_f_string_static_t_initialize_1(CONTROLLER_pid_s, 0, CONTROLLER_pid_s_length);
+  const f_string_static_t controller_pid_file_s = macro_f_string_static_t_initialize_1(CONTROLLER_pid_file_s, 0, CONTROLLER_pid_file_s_length);
+  const f_string_static_t controller_processor_s = macro_f_string_static_t_initialize_1(CONTROLLER_processor_s, 0, CONTROLLER_processor_s_length);
+  const f_string_static_t controller_program_s = macro_f_string_static_t_initialize_1(CONTROLLER_program_s, 0, CONTROLLER_program_s_length);
+  const f_string_static_t controller_readonly_s = macro_f_string_static_t_initialize_1(CONTROLLER_readonly_s, 0, CONTROLLER_readonly_s_length);
+  const f_string_static_t controller_ready_s = macro_f_string_static_t_initialize_1(CONTROLLER_ready_s, 0, CONTROLLER_ready_s_length);
+  const f_string_static_t controller_reboot_s = macro_f_string_static_t_initialize_1(CONTROLLER_reboot_s, 0, CONTROLLER_reboot_s_length);
+  const f_string_static_t controller_reload_s = macro_f_string_static_t_initialize_1(CONTROLLER_reload_s, 0, CONTROLLER_reload_s_length);
+  const f_string_static_t controller_require_s = macro_f_string_static_t_initialize_1(CONTROLLER_require_s, 0, CONTROLLER_require_s_length);
+  const f_string_static_t controller_required_s = macro_f_string_static_t_initialize_1(CONTROLLER_required_s, 0, CONTROLLER_required_s_length);
+  const f_string_static_t controller_rerun_s = macro_f_string_static_t_initialize_1(CONTROLLER_rerun_s, 0, CONTROLLER_rerun_s_length);
+  const f_string_static_t controller_reset_s = macro_f_string_static_t_initialize_1(CONTROLLER_reset_s, 0, CONTROLLER_reset_s_length);
+  const f_string_static_t controller_restart_s = macro_f_string_static_t_initialize_1(CONTROLLER_restart_s, 0, CONTROLLER_restart_s_length);
+  const f_string_static_t controller_resume_s = macro_f_string_static_t_initialize_1(CONTROLLER_resume_s, 0, CONTROLLER_resume_s_length);
+  const f_string_static_t controller_round_robin_s = macro_f_string_static_t_initialize_1(CONTROLLER_round_robin_s, 0, CONTROLLER_round_robin_s_length);
+  const f_string_static_t controller_rss_s = macro_f_string_static_t_initialize_1(CONTROLLER_rss_s, 0, CONTROLLER_rss_s_length);
+  const f_string_static_t controller_rtprio_s = macro_f_string_static_t_initialize_1(CONTROLLER_rtprio_s, 0, CONTROLLER_rtprio_s_length);
+  const f_string_static_t controller_rttime_s = macro_f_string_static_t_initialize_1(CONTROLLER_rttime_s, 0, CONTROLLER_rttime_s_length);
+  const f_string_static_t controller_rule_s = macro_f_string_static_t_initialize_1(CONTROLLER_rule_s, 0, CONTROLLER_rule_s_length);
+  const f_string_static_t controller_rules_s = macro_f_string_static_t_initialize_1(CONTROLLER_rules_s, 0, CONTROLLER_rules_s_length);
+  const f_string_static_t controller_same_s = macro_f_string_static_t_initialize_1(CONTROLLER_same_s, 0, CONTROLLER_same_s_length);
+  const f_string_static_t controller_scheduler_s = macro_f_string_static_t_initialize_1(CONTROLLER_scheduler_s, 0, CONTROLLER_scheduler_s_length);
+  const f_string_static_t controller_script_s = macro_f_string_static_t_initialize_1(CONTROLLER_script_s, 0, CONTROLLER_script_s_length);
+  const f_string_static_t controller_service_s = macro_f_string_static_t_initialize_1(CONTROLLER_service_s, 0, CONTROLLER_service_s_length);
+  const f_string_static_t controller_settings_s = macro_f_string_static_t_initialize_1(CONTROLLER_settings_s, 0, CONTROLLER_settings_s_length);
+  const f_string_static_t controller_session_s = macro_f_string_static_t_initialize_1(CONTROLLER_session_s, 0, CONTROLLER_session_s_length);
+  const f_string_static_t controller_session_new_s = macro_f_string_static_t_initialize_1(CONTROLLER_session_new_s, 0, CONTROLLER_session_new_s_length);
+  const f_string_static_t controller_session_same_s = macro_f_string_static_t_initialize_1(CONTROLLER_session_same_s, 0, CONTROLLER_session_same_s_length);
+  const f_string_static_t controller_show_s = macro_f_string_static_t_initialize_1(CONTROLLER_show_s, 0, CONTROLLER_show_s_length);
+  const f_string_static_t controller_shutdown_s = macro_f_string_static_t_initialize_1(CONTROLLER_shutdown_s, 0, CONTROLLER_shutdown_s_length);
+  const f_string_static_t controller_sigpending_s = macro_f_string_static_t_initialize_1(CONTROLLER_sigpending_s, 0, CONTROLLER_sigpending_s_length);
+  const f_string_static_t controller_stack_s = macro_f_string_static_t_initialize_1(CONTROLLER_stack_s, 0, CONTROLLER_stack_s_length);
+  const f_string_static_t controller_start_s = macro_f_string_static_t_initialize_1(CONTROLLER_start_s, 0, CONTROLLER_start_s_length);
+  const f_string_static_t controller_status_s = macro_f_string_static_t_initialize_1(CONTROLLER_status_s, 0, CONTROLLER_status_s_length);
+  const f_string_static_t controller_stop_s = macro_f_string_static_t_initialize_1(CONTROLLER_stop_s, 0, CONTROLLER_stop_s_length);
+  const f_string_static_t controller_succeed_s = macro_f_string_static_t_initialize_1(CONTROLLER_succeed_s, 0, CONTROLLER_succeed_s_length);
+  const f_string_static_t controller_success_s = macro_f_string_static_t_initialize_1(CONTROLLER_success_s, 0, CONTROLLER_success_s_length);
+  const f_string_static_t controller_synchronous_s = macro_f_string_static_t_initialize_1(CONTROLLER_synchronous_s, 0, CONTROLLER_synchronous_s_length);
+  const f_string_static_t controller_thaw_s = macro_f_string_static_t_initialize_1(CONTROLLER_thaw_s, 0, CONTROLLER_thaw_s_length);
+  const f_string_static_t controller_timeout_s = macro_f_string_static_t_initialize_1(CONTROLLER_timeout_s, 0, CONTROLLER_timeout_s_length);
+  const f_string_static_t controller_type_s = macro_f_string_static_t_initialize_1(CONTROLLER_type_s, 0, CONTROLLER_type_s_length);
+  const f_string_static_t controller_use_s = macro_f_string_static_t_initialize_1(CONTROLLER_use_s, 0, CONTROLLER_use_s_length);
+  const f_string_static_t controller_user_s = macro_f_string_static_t_initialize_1(CONTROLLER_user_s, 0, CONTROLLER_user_s_length);
+  const f_string_static_t controller_utility_s = macro_f_string_static_t_initialize_1(CONTROLLER_utility_s, 0, CONTROLLER_utility_s_length);
+  const f_string_static_t controller_value_s = macro_f_string_static_t_initialize_1(CONTROLLER_value_s, 0, CONTROLLER_value_s_length);
+  const f_string_static_t controller_wait_s = macro_f_string_static_t_initialize_1(CONTROLLER_wait_s, 0, CONTROLLER_wait_s_length);
+  const f_string_static_t controller_want_s = macro_f_string_static_t_initialize_1(CONTROLLER_want_s, 0, CONTROLLER_want_s_length);
+  const f_string_static_t controller_wish_s = macro_f_string_static_t_initialize_1(CONTROLLER_wish_s, 0, CONTROLLER_wish_s_length);
+  const f_string_static_t controller_with_s = macro_f_string_static_t_initialize_1(CONTROLLER_with_s, 0, CONTROLLER_with_s_length);
+  const f_string_static_t controller_yes_s = macro_f_string_static_t_initialize_1(CONTROLLER_yes_s, 0, CONTROLLER_yes_s_length);
+
+  const f_string_static_t controller_Entry_s = macro_f_string_static_t_initialize_1(CONTROLLER_Entry_s, 0, CONTROLLER_Entry_s_length);
+  const f_string_static_t controller_Exit_s = macro_f_string_static_t_initialize_1(CONTROLLER_Exit_s, 0, CONTROLLER_Exit_s_length);
+  const f_string_static_t controller_Item_s = macro_f_string_static_t_initialize_1(CONTROLLER_Item_s, 0, CONTROLLER_Item_s_length);
+
+  const f_string_static_t controller_parameter_map_option_s = macro_f_string_static_t_initialize_1(CONTROLLER_parameter_map_option_s, 0, CONTROLLER_parameter_map_option_s_length);
+  const f_string_static_t controller_parameter_map_value_s = macro_f_string_static_t_initialize_1(CONTROLLER_parameter_map_value_s, 0, CONTROLLER_parameter_map_value_s_length);
+#endif // _di_controller_string_s_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/sources/c/main/common/string/general.h b/sources/c/main/common/string/general.h
new file mode 100644 (file)
index 0000000..0450ea0
--- /dev/null
@@ -0,0 +1,441 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Controller
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides the common general string data.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _controller_main_common_string_general_h
+#define _controller_main_common_string_general_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * All special strings used within this program.
+ *
+ * These are generally the names to match, representing some action or setting.
+ */
+#ifndef _di_controller_string_s_
+  #define CONTROLLER_action_s        "action"
+  #define CONTROLLER_actions_s       "actions"
+  #define CONTROLLER_affinity_s      "affinity"
+  #define CONTROLLER_as_s            "as"
+  #define CONTROLLER_asynchronous_s  "asynchronous"
+  #define CONTROLLER_bash_s          "bash"
+  #define CONTROLLER_batch_s         "batch"
+  #define CONTROLLER_capability_s    "capability"
+  #define CONTROLLER_cgroup_s        "cgroup"
+  #define CONTROLLER_create_s        "create"
+  #define CONTROLLER_command_s       "command"
+  #define CONTROLLER_consider_s      "consider"
+  #define CONTROLLER_control_s       "control"
+  #define CONTROLLER_control_group_s "control_group"
+  #define CONTROLLER_control_has_s   "control_has"
+  #define CONTROLLER_control_mode_s  "control_mode"
+  #define CONTROLLER_control_user_s  "control_user"
+  #define CONTROLLER_controller_s    "controller"
+  #define CONTROLLER_cpu_s           "cpu"
+  #define CONTROLLER_core_s          "core"
+  #define CONTROLLER_data_s          "data"
+  #define CONTROLLER_deadline_s      "deadline"
+  #define CONTROLLER_default_s       "default"
+  #define CONTROLLER_define_s        "define"
+  #define CONTROLLER_delay_s         "delay"
+  #define CONTROLLER_directory_s     "directory"
+  #define CONTROLLER_disable_s       "disable"
+  #define CONTROLLER_engine_s        "engine"
+  #define CONTROLLER_entry_s         "entry"
+  #define CONTROLLER_entries_s       "entries"
+  #define CONTROLLER_environment_s   "environment"
+  #define CONTROLLER_error_s         "error"
+  #define CONTROLLER_execute_s       "execute"
+  #define CONTROLLER_existing_s      "existing"
+  #define CONTROLLER_exit_s          "exit"
+  #define CONTROLLER_exits_s         "exits"
+  #define CONTROLLER_fail_s          "fail"
+  #define CONTROLLER_failsafe_s      "failsafe"
+  #define CONTROLLER_failure_s       "failure"
+  #define CONTROLLER_fifo_s          "fifo"
+  #define CONTROLLER_file_s          "file"
+  #define CONTROLLER_freeze_s        "freeze"
+  #define CONTROLLER_fsize_s         "fsize"
+  #define CONTROLLER_full_path_s     "full_path"
+  #define CONTROLLER_group_s         "group"
+  #define CONTROLLER_groups_s        "groups"
+  #define CONTROLLER_helper_s        "helper"
+  #define CONTROLLER_how_s           "how"
+  #define CONTROLLER_idle_s          "idle"
+  #define CONTROLLER_iki_s           "iki"
+  #define CONTROLLER_item_s          "item"
+  #define CONTROLLER_init_s          "init"
+  #define CONTROLLER_kexec_s         "kexec"
+  #define CONTROLLER_kill_s          "kill"
+  #define CONTROLLER_length_s        "length"
+  #define CONTROLLER_limit_s         "limit"
+  #define CONTROLLER_locks_s         "locks"
+  #define CONTROLLER_main_s          "main"
+  #define CONTROLLER_max_s           "max"
+  #define CONTROLLER_memlock_s       "memlock"
+  #define CONTROLLER_method_s        "method"
+  #define CONTROLLER_mode_s          "mode"
+  #define CONTROLLER_msgqueue_s      "msgqueue"
+  #define CONTROLLER_name_s          "name"
+  #define CONTROLLER_need_s          "need"
+  #define CONTROLLER_new_s           "new"
+  #define CONTROLLER_nice_s          "nice"
+  #define CONTROLLER_no_s            "no"
+  #define CONTROLLER_nofile_s        "nofile"
+  #define CONTROLLER_normal_s        "normal"
+  #define CONTROLLER_nproc_s         "nproc"
+  #define CONTROLLER_on_s            "on"
+  #define CONTROLLER_optional_s      "optional"
+  #define CONTROLLER_other_s         "other"
+  #define CONTROLLER_parameter_s     "parameter"
+  #define CONTROLLER_parameters_s    "parameters"
+  #define CONTROLLER_path_s          "path"
+  #define CONTROLLER_pause_s         "pause"
+  #define CONTROLLER_payload_type_s  "# fss-000e\n"
+  #define CONTROLLER_pid_s           "pid"
+  #define CONTROLLER_pid_file_s      "pid_file"
+  #define CONTROLLER_processor_s     "processor"
+  #define CONTROLLER_program_s       "program"
+  #define CONTROLLER_readonly_s      "readonly"
+  #define CONTROLLER_ready_s         "ready"
+  #define CONTROLLER_reboot_s        "reboot"
+  #define CONTROLLER_reload_s        "reload"
+  #define CONTROLLER_require_s       "require"
+  #define CONTROLLER_required_s      "required"
+  #define CONTROLLER_rerun_s         "rerun"
+  #define CONTROLLER_reset_s         "reset"
+  #define CONTROLLER_restart_s       "restart"
+  #define CONTROLLER_resume_s        "resume"
+  #define CONTROLLER_round_robin_s   "round_robin"
+  #define CONTROLLER_rss_s           "rss"
+  #define CONTROLLER_rtprio_s        "rtprio"
+  #define CONTROLLER_rttime_s        "rttime"
+  #define CONTROLLER_rule_s          "rule"
+  #define CONTROLLER_rules_s         "rules"
+  #define CONTROLLER_same_s          "same"
+  #define CONTROLLER_scheduler_s     "scheduler"
+  #define CONTROLLER_script_s        "script"
+  #define CONTROLLER_service_s       "service"
+  #define CONTROLLER_session_s       "session"
+  #define CONTROLLER_session_new_s   "session_new"
+  #define CONTROLLER_session_same_s  "session_same"
+  #define CONTROLLER_settings_s      "settings"
+  #define CONTROLLER_sigpending_s    "sigpending"
+  #define CONTROLLER_show_s          "show"
+  #define CONTROLLER_shutdown_s      "shutdown"
+  #define CONTROLLER_stack_s         "stack"
+  #define CONTROLLER_start_s         "start"
+  #define CONTROLLER_status_s        "status"
+  #define CONTROLLER_stop_s          "stop"
+  #define CONTROLLER_succeed_s       "succeed"
+  #define CONTROLLER_success_s       "success"
+  #define CONTROLLER_synchronous_s   "synchronous"
+  #define CONTROLLER_thaw_s          "thaw"
+  #define CONTROLLER_timeout_s       "timeout"
+  #define CONTROLLER_type_s          "type"
+  #define CONTROLLER_use_s           "use"
+  #define CONTROLLER_user_s          "user"
+  #define CONTROLLER_utility_s       "utility"
+  #define CONTROLLER_value_s         "value"
+  #define CONTROLLER_wait_s          "wait"
+  #define CONTROLLER_want_s          "want"
+  #define CONTROLLER_wish_s          "wish"
+  #define CONTROLLER_with_s          "with"
+  #define CONTROLLER_yes_s           "yes"
+
+  #define CONTROLLER_Entry_s "Entry"
+  #define CONTROLLER_Exit_s  "Exit"
+  #define CONTROLLER_Item_s  "Item"
+
+  #define CONTROLLER_parameter_map_option_s ":option"
+  #define CONTROLLER_parameter_map_value_s  ":value"
+
+  #define CONTROLLER_action_s_length        6
+  #define CONTROLLER_actions_s_length       7
+  #define CONTROLLER_affinity_s_length      8
+  #define CONTROLLER_as_s_length            2
+  #define CONTROLLER_asynchronous_s_length  12
+  #define CONTROLLER_bash_s_length          4
+  #define CONTROLLER_batch_s_length         5
+  #define CONTROLLER_capability_s_length    10
+  #define CONTROLLER_cgroup_s_length        6
+  #define CONTROLLER_create_s_length        6
+  #define CONTROLLER_command_s_length       7
+  #define CONTROLLER_consider_s_length      8
+  #define CONTROLLER_control_s_length       7
+  #define CONTROLLER_control_group_s_length 13
+  #define CONTROLLER_control_has_s_length   11
+  #define CONTROLLER_control_mode_s_length  12
+  #define CONTROLLER_control_user_s_length  12
+  #define CONTROLLER_controller_s_length    10
+  #define CONTROLLER_core_s_length          4
+  #define CONTROLLER_cpu_s_length           3
+  #define CONTROLLER_data_s_length          4
+  #define CONTROLLER_deadline_s_length      8
+  #define CONTROLLER_default_s_length       7
+  #define CONTROLLER_define_s_length        6
+  #define CONTROLLER_delay_s_length         5
+  #define CONTROLLER_directory_s_length     9
+  #define CONTROLLER_disable_s_length       7
+  #define CONTROLLER_engine_s_length        6
+  #define CONTROLLER_entry_s_length         5
+  #define CONTROLLER_entries_s_length       7
+  #define CONTROLLER_environment_s_length   11
+  #define CONTROLLER_error_s_length         5
+  #define CONTROLLER_existing_s_length      8
+  #define CONTROLLER_execute_s_length       7
+  #define CONTROLLER_exit_s_length          4
+  #define CONTROLLER_exits_s_length         5
+  #define CONTROLLER_fail_s_length          4
+  #define CONTROLLER_failure_s_length       7
+  #define CONTROLLER_failsafe_s_length      8
+  #define CONTROLLER_fifo_s_length          4
+  #define CONTROLLER_file_s_length          4
+  #define CONTROLLER_freeze_s_length        6
+  #define CONTROLLER_fsize_s_length         5
+  #define CONTROLLER_full_path_s_length     9
+  #define CONTROLLER_group_s_length         5
+  #define CONTROLLER_groups_s_length        6
+  #define CONTROLLER_helper_s_length        6
+  #define CONTROLLER_how_s_length           3
+  #define CONTROLLER_idle_s_length          4
+  #define CONTROLLER_iki_s_length           3
+  #define CONTROLLER_init_s_length          4
+  #define CONTROLLER_item_s_length          4
+  #define CONTROLLER_kexec_s_length         5
+  #define CONTROLLER_kill_s_length          4
+  #define CONTROLLER_length_s_length        6
+  #define CONTROLLER_limit_s_length         5
+  #define CONTROLLER_locks_s_length         5
+  #define CONTROLLER_main_s_length          4
+  #define CONTROLLER_max_s_length           3
+  #define CONTROLLER_memlock_s_length       7
+  #define CONTROLLER_method_s_length        6
+  #define CONTROLLER_mode_s_length          4
+  #define CONTROLLER_msgqueue_s_length      8
+  #define CONTROLLER_name_s_length          4
+  #define CONTROLLER_need_s_length          4
+  #define CONTROLLER_new_s_length           3
+  #define CONTROLLER_nice_s_length          4
+  #define CONTROLLER_no_s_length            2
+  #define CONTROLLER_nofile_s_length        6
+  #define CONTROLLER_normal_s_length        6
+  #define CONTROLLER_nproc_s_length         5
+  #define CONTROLLER_on_s_length            2
+  #define CONTROLLER_optional_s_length      8
+  #define CONTROLLER_other_s_length         5
+  #define CONTROLLER_parameter_s_length     9
+  #define CONTROLLER_parameters_s_length    10
+  #define CONTROLLER_path_s_length          4
+  #define CONTROLLER_pause_s_length         5
+  #define CONTROLLER_payload_type_s_length  11
+  #define CONTROLLER_pid_s_length           3
+  #define CONTROLLER_pid_file_s_length      8
+  #define CONTROLLER_processor_s_length     9
+  #define CONTROLLER_program_s_length       7
+  #define CONTROLLER_readonly_s_length      8
+  #define CONTROLLER_ready_s_length         5
+  #define CONTROLLER_reboot_s_length        6
+  #define CONTROLLER_reload_s_length        6
+  #define CONTROLLER_require_s_length       7
+  #define CONTROLLER_required_s_length      8
+  #define CONTROLLER_rerun_s_length         5
+  #define CONTROLLER_reset_s_length         5
+  #define CONTROLLER_restart_s_length       7
+  #define CONTROLLER_resume_s_length        6
+  #define CONTROLLER_round_robin_s_length   11
+  #define CONTROLLER_rss_s_length           3
+  #define CONTROLLER_rtprio_s_length        6
+  #define CONTROLLER_rttime_s_length        6
+  #define CONTROLLER_rule_s_length          4
+  #define CONTROLLER_rules_s_length         5
+  #define CONTROLLER_same_s_length          4
+  #define CONTROLLER_scheduler_s_length     9
+  #define CONTROLLER_script_s_length        6
+  #define CONTROLLER_service_s_length       7
+  #define CONTROLLER_session_s_length       7
+  #define CONTROLLER_session_new_s_length   11
+  #define CONTROLLER_session_same_s_length  12
+  #define CONTROLLER_settings_s_length      8
+  #define CONTROLLER_show_s_length          4
+  #define CONTROLLER_shutdown_s_length      8
+  #define CONTROLLER_sigpending_s_length    10
+  #define CONTROLLER_stack_s_length         5
+  #define CONTROLLER_start_s_length         5
+  #define CONTROLLER_status_s_length        6
+  #define CONTROLLER_stop_s_length          4
+  #define CONTROLLER_succeed_s_length       7
+  #define CONTROLLER_success_s_length       7
+  #define CONTROLLER_synchronous_s_length   11
+  #define CONTROLLER_thaw_s_length          4
+  #define CONTROLLER_timeout_s_length       7
+  #define CONTROLLER_type_s_length          4
+  #define CONTROLLER_use_s_length           3
+  #define CONTROLLER_user_s_length          4
+  #define CONTROLLER_utility_s_length       7
+  #define CONTROLLER_value_s_length         5
+  #define CONTROLLER_wait_s_length          4
+  #define CONTROLLER_want_s_length          4
+  #define CONTROLLER_wish_s_length          4
+  #define CONTROLLER_with_s_length          4
+  #define CONTROLLER_yes_s_length           3
+
+  #define CONTROLLER_Entry_s_length 5
+  #define CONTROLLER_Exit_s_length  4
+  #define CONTROLLER_Item_s_length  4
+
+  #define CONTROLLER_parameter_map_option_s_length 7
+  #define CONTROLLER_parameter_map_value_s_length  6
+
+  extern const f_string_static_t controller_action_s;
+  extern const f_string_static_t controller_actions_s;
+  extern const f_string_static_t controller_affinity_s;
+  extern const f_string_static_t controller_as_s;
+  extern const f_string_static_t controller_asynchronous_s;
+  extern const f_string_static_t controller_bash_s;
+  extern const f_string_static_t controller_batch_s;
+  extern const f_string_static_t controller_capability_s;
+  extern const f_string_static_t controller_cgroup_s;
+  extern const f_string_static_t controller_create_s;
+  extern const f_string_static_t controller_command_s;
+  extern const f_string_static_t controller_consider_s;
+  extern const f_string_static_t controller_control_s;
+  extern const f_string_static_t controller_control_group_s;
+  extern const f_string_static_t controller_control_has_s;
+  extern const f_string_static_t controller_control_mode_s;
+  extern const f_string_static_t controller_control_user_s;
+  extern const f_string_static_t controller_controller_s;
+  extern const f_string_static_t controller_core_s;
+  extern const f_string_static_t controller_cpu_s;
+  extern const f_string_static_t controller_data_s;
+  extern const f_string_static_t controller_deadline_s;
+  extern const f_string_static_t controller_default_s;
+  extern const f_string_static_t controller_define_s;
+  extern const f_string_static_t controller_delay_s;
+  extern const f_string_static_t controller_directory_s;
+  extern const f_string_static_t controller_disable_s;
+  extern const f_string_static_t controller_engine_s;
+  extern const f_string_static_t controller_entry_s;
+  extern const f_string_static_t controller_entries_s;
+  extern const f_string_static_t controller_environment_s;
+  extern const f_string_static_t controller_error_s;
+  extern const f_string_static_t controller_existing_s;
+  extern const f_string_static_t controller_execute_s;
+  extern const f_string_static_t controller_exit_s;
+  extern const f_string_static_t controller_exits_s;
+  extern const f_string_static_t controller_fail_s;
+  extern const f_string_static_t controller_failsafe_s;
+  extern const f_string_static_t controller_failure_s;
+  extern const f_string_static_t controller_fifo_s;
+  extern const f_string_static_t controller_file_s;
+  extern const f_string_static_t controller_freeze_s;
+  extern const f_string_static_t controller_fsize_s;
+  extern const f_string_static_t controller_full_path_s;
+  extern const f_string_static_t controller_group_s;
+  extern const f_string_static_t controller_groups_s;
+  extern const f_string_static_t controller_helper_s;
+  extern const f_string_static_t controller_how_s;
+  extern const f_string_static_t controller_idle_s;
+  extern const f_string_static_t controller_iki_s;
+  extern const f_string_static_t controller_init_s;
+  extern const f_string_static_t controller_item_s;
+  extern const f_string_static_t controller_kexec_s;
+  extern const f_string_static_t controller_kill_s;
+  extern const f_string_static_t controller_length_s;
+  extern const f_string_static_t controller_limit_s;
+  extern const f_string_static_t controller_locks_s;
+  extern const f_string_static_t controller_main_s;
+  extern const f_string_static_t controller_max_s;
+  extern const f_string_static_t controller_memlock_s;
+  extern const f_string_static_t controller_method_s;
+  extern const f_string_static_t controller_mode_s;
+  extern const f_string_static_t controller_msgqueue_s;
+  extern const f_string_static_t controller_name_s;
+  extern const f_string_static_t controller_need_s;
+  extern const f_string_static_t controller_new_s;
+  extern const f_string_static_t controller_nice_s;
+  extern const f_string_static_t controller_no_s;
+  extern const f_string_static_t controller_nofile_s;
+  extern const f_string_static_t controller_normal_s;
+  extern const f_string_static_t controller_nproc_s;
+  extern const f_string_static_t controller_on_s;
+  extern const f_string_static_t controller_optional_s;
+  extern const f_string_static_t controller_other_s;
+  extern const f_string_static_t controller_parameter_s;
+  extern const f_string_static_t controller_parameters_s;
+  extern const f_string_static_t controller_path_s;
+  extern const f_string_static_t controller_pause_s;
+  extern const f_string_static_t controller_payload_type_s;
+  extern const f_string_static_t controller_pid_s;
+  extern const f_string_static_t controller_pid_file_s;
+  extern const f_string_static_t controller_processor_s;
+  extern const f_string_static_t controller_program_s;
+  extern const f_string_static_t controller_readonly_s;
+  extern const f_string_static_t controller_ready_s;
+  extern const f_string_static_t controller_reboot_s;
+  extern const f_string_static_t controller_reload_s;
+  extern const f_string_static_t controller_require_s;
+  extern const f_string_static_t controller_required_s;
+  extern const f_string_static_t controller_rerun_s;
+  extern const f_string_static_t controller_reset_s;
+  extern const f_string_static_t controller_restart_s;
+  extern const f_string_static_t controller_resume_s;
+  extern const f_string_static_t controller_round_robin_s;
+  extern const f_string_static_t controller_rss_s;
+  extern const f_string_static_t controller_rtprio_s;
+  extern const f_string_static_t controller_rttime_s;
+  extern const f_string_static_t controller_rule_s;
+  extern const f_string_static_t controller_rules_s;
+  extern const f_string_static_t controller_same_s;
+  extern const f_string_static_t controller_scheduler_s;
+  extern const f_string_static_t controller_script_s;
+  extern const f_string_static_t controller_service_s;
+  extern const f_string_static_t controller_session_s;
+  extern const f_string_static_t controller_session_new_s;
+  extern const f_string_static_t controller_session_same_s;
+  extern const f_string_static_t controller_settings_s;
+  extern const f_string_static_t controller_show_s;
+  extern const f_string_static_t controller_shutdown_s;
+  extern const f_string_static_t controller_sigpending_s;
+  extern const f_string_static_t controller_stack_s;
+  extern const f_string_static_t controller_start_s;
+  extern const f_string_static_t controller_status_s;
+  extern const f_string_static_t controller_stop_s;
+  extern const f_string_static_t controller_succeed_s;
+  extern const f_string_static_t controller_success_s;
+  extern const f_string_static_t controller_synchronous_s;
+  extern const f_string_static_t controller_thaw_s;
+  extern const f_string_static_t controller_timeout_s;
+  extern const f_string_static_t controller_type_s;
+  extern const f_string_static_t controller_use_s;
+  extern const f_string_static_t controller_user_s;
+  extern const f_string_static_t controller_utility_s;
+  extern const f_string_static_t controller_value_s;
+  extern const f_string_static_t controller_wait_s;
+  extern const f_string_static_t controller_want_s;
+  extern const f_string_static_t controller_wish_s;
+  extern const f_string_static_t controller_with_s;
+  extern const f_string_static_t controller_yes_s;
+
+  extern const f_string_static_t controller_Entry_s;
+  extern const f_string_static_t controller_Exit_s;
+  extern const f_string_static_t controller_Item_s;
+
+  extern const f_string_static_t controller_parameter_map_option_s;
+  extern const f_string_static_t controller_parameter_map_value_s;
+#endif // _di_controller_string_s_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _controller_main_common_string_general_h
diff --git a/sources/c/main/common/string/rule.c b/sources/c/main/common/string/rule.c
new file mode 100644 (file)
index 0000000..5484055
--- /dev/null
@@ -0,0 +1,14 @@
+#include "../../controller.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _di_controller_rule_action_method_s_
+  const f_string_static_t controller_rule_action_method_extended_s = macro_f_string_static_t_initialize_1(CONTROLLER_rule_action_method_extended_s, 0, CONTROLLER_rule_action_method_extended_s_length);
+  const f_string_static_t controller_rule_action_method_extended_list_s = macro_f_string_static_t_initialize_1(CONTROLLER_rule_action_method_extended_list_s, 0, CONTROLLER_rule_action_method_extended_list_s_length);
+#endif // _di_controller_rule_action_method_s_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/sources/c/main/common/string/rule.h b/sources/c/main/common/string/rule.h
new file mode 100644 (file)
index 0000000..08e8c13
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+ * FLL - Level 3
+ *
+ * Project: Controller
+ * API Version: 0.7
+ * Licenses: lgpl-2.1-or-later
+ *
+ * Provides the common rule string data.
+ *
+ * This is auto-included and should not need to be explicitly included.
+ */
+#ifndef _controller_main_common_string_rule_h
+#define _controller_main_common_string_rule_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Controller Rule Action strings.
+ *
+ * controller_rule_action_method_*_s:
+ *   - extended:      Designate that this Action is represented using FSS Extended.
+ *   - extended_list: Designate that this Action is represented using FSS Extended List.
+ */
+#ifndef _di_controller_rule_action_method_s_
+  #define CONTROLLER_rule_action_method_extended_s      "FSS-0001 (Extended)"
+  #define CONTROLLER_rule_action_method_extended_list_s "FSS-0003 (Extended List)"
+
+  #define CONTROLLER_rule_action_method_extended_s_length      19
+  #define CONTROLLER_rule_action_method_extended_list_s_length 24
+
+  extern const f_string_static_t controller_rule_action_method_extended_s;
+  extern const f_string_static_t controller_rule_action_method_extended_list_s;
+#endif // _di_controller_rule_action_method_s_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _controller_main_common_string_rule_h
index 2610190b5578bf13e2fd829b19101dd083d9fbc8..f7103908e930294e4fca9949b2d1f3090b27a490 100644 (file)
 #ifndef _controller_h
 #define _controller_h
 
+// Include pre-requirements.
+#ifndef _GNU_SOURCE
+  #define _GNU_SOURCE
+#endif // _GNU_SOURCE
+
 // Libc includes.
 #include <stdio.h>
 #include <stdlib.h>
 #include <program/controller/main/common/enumeration.h>
 #include <program/controller/main/common/print.h>
 #include <program/controller/main/common/string.h>
+#include <program/controller/main/common/string/general.h>
+#include <program/controller/main/common/string/rule.h>
+#include <program/controller/main/common/define/control.h>
+#include <program/controller/main/common/define/entry.h>
+#include <program/controller/main/common/define/rule.h>
 #include <program/controller/main/common/enumeration/control.h>
 #include <program/controller/main/common/enumeration/entry.h>
 #include <program/controller/main/common/enumeration/rule.h>