Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions system/init/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# ##############################################################################
# apps/system/init/CMakeLists.txt
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements. See the NOTICE file distributed with this work for
# additional information regarding copyright ownership. The ASF licenses this
# file to you under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
#
# ##############################################################################

if(CONFIG_SYSTEM_INIT)

set(CSRCS init.c action.c builtin.c import.c parser.c service.c)

nuttx_add_application(
MODULE
${CONFIG_SYSTEM_INIT}
NAME
${CONFIG_SYSTEM_INIT_PROGNAME}
STACKSIZE
${CONFIG_SYSTEM_INIT_STACKSIZE}
PRIORITY
${CONFIG_SYSTEM_INIT_PRIORITY}
SRCS
${CSRCS})

endif()
124 changes: 124 additions & 0 deletions system/init/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

config SYSTEM_INIT
tristate "System Init"
default n
depends on LIBC_EXECFUNCS
depends on SCHED_CHILD_STATUS
---help---
Enable system init.

if SYSTEM_INIT

#
# Basic
#

config SYSTEM_INIT_PRIORITY
int "Thread priority"
default 100

config SYSTEM_INIT_STACKSIZE
int "Stack size"
default DEFAULT_TASK_STACKSIZE

config SYSTEM_INIT_PROGNAME
string "Program name"
default "init"

#
# RC
#

config SYSTEM_INIT_RC_LINE_MAX
int "Max line length of RC file"
default 128
---help---
Maximum line length of RC file.
More details: https://android.googlesource.com/platform/system/core/+/master/init/README.md

#
# Action
#

config SYSTEM_INIT_ACTION_CMD_ARGS_MAX
int "Max number of command arguments"
default 8
---help---
Maximum number of command arguments.
Form:
```
on <trigger>
<command>
<command>
<command>
...
```

config SYSTEM_INIT_ACTION_WARN_SLOW
int "Warn if command takes too long"
default 50
depends on SYSTEM_INIT_WARN
---help---
Warning if command took more than `SYSTEM_INIT_ACTION_WARN_SLOW` ms.

config SYSTEM_INIT_ACTION_MANAGER_EVENT_MAX
int "Max number of action manager events"
default 32
---help---
Maximum number of action manager events.
```
struct action_manager_s
{
...
FAR char *events[CONFIG_SYSTEM_INIT_ACTION_MANAGER_EVENT_MAX];
...
};
```

#
# Service
#

config SYSTEM_INIT_SERVICE_ARGS_MAX
int "Max number of service arguments"
default 8
range 3 64
---help---
Maximum number of service arguments,
including "name", "pathname" and key word "service"(at least 3). Form:
```
service <name> <pathname> [ <argument> ]*
<option>
<option>
...
```

config SYSTEM_INIT_SERVICE_RESTART_PERIOD
int "Service restart period in ms"
default 5000

#
# Log level
#

config SYSTEM_INIT_ERR
bool "Enable error log"
default !DEFAULT_SMALL

config SYSTEM_INIT_WARN
bool "Enable warning log"
depends on SYSTEM_INIT_ERR

config SYSTEM_INIT_INFO
bool "Enable info log"
depends on SYSTEM_INIT_WARN

config SYSTEM_INIT_DEBUG
bool "Enable debug log"
depends on SYSTEM_INIT_INFO

endif
25 changes: 25 additions & 0 deletions system/init/Make.defs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
############################################################################
# apps/system/init/Make.defs
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

ifneq ($(CONFIG_SYSTEM_INIT),)
CONFIGURED_APPS += $(APPDIR)/system/init
endif
39 changes: 39 additions & 0 deletions system/init/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
############################################################################
# apps/system/init/Makefile
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

include $(APPDIR)/Make.defs

# Init Example

MAINSRC = init.c
CSRCS += builtin.c
CSRCS += parser.c
CSRCS += action.c
CSRCS += service.c
CSRCS += import.c

PROGNAME = $(CONFIG_SYSTEM_INIT_PROGNAME)
PRIORITY = $(CONFIG_SYSTEM_INIT_PRIORITY)
STACKSIZE = $(CONFIG_SYSTEM_INIT_STACKSIZE)
MODULE = $(CONFIG_SYSTEM_INIT)

include $(APPDIR)/Application.mk
Loading
Loading