sched/: Make more naming consistent

Rename various functions per the quidelines of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
This commit is contained in:
Gregory Nutt 2020-05-16 09:06:29 -06:00 committed by Alan Carvalho de Assis
parent e6a984dc2b
commit d823a3ab3e
39 changed files with 360 additions and 467 deletions

View File

@ -71,8 +71,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -83,8 +83,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -72,8 +72,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -84,8 +84,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -58,8 +58,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* This consists of: * This consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -70,8 +70,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -58,8 +58,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -70,8 +70,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -59,8 +59,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -71,8 +71,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -58,8 +58,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* This consists of: * This consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -70,8 +70,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -58,8 +58,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -70,8 +70,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -66,8 +66,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* This consists of: * This consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -78,10 +78,10 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* nxtask_vforkabort() may be called if an error occurs between steps 3 and * nxtask_abort_vfork() may be called if an error occurs between steps 3 and
* 6. * 6.
* *
* Input Parameters: * Input Parameters:
@ -117,10 +117,10 @@ pid_t up_vfork(const struct vfork_s *context)
/* Allocate and initialize a TCB for the child task. */ /* Allocate and initialize a TCB for the child task. */
child = nxtask_vforksetup((start_t)(context->lr & ~1), &argsize); child = nxtask_setup_vfork((start_t)(context->lr & ~1), &argsize);
if (!child) if (!child)
{ {
serr("ERROR: nxtask_vforksetup failed\n"); serr("ERROR: nxtask_setup_vfork failed\n");
return (pid_t)ERROR; return (pid_t)ERROR;
} }
@ -140,7 +140,7 @@ pid_t up_vfork(const struct vfork_s *context)
if (ret != OK) if (ret != OK)
{ {
serr("ERROR: up_create_stack failed: %d\n", ret); serr("ERROR: up_create_stack failed: %d\n", ret);
nxtask_vforkabort(child, -ret); nxtask_abort_vfork(child, -ret);
return (pid_t)ERROR; return (pid_t)ERROR;
} }
@ -250,9 +250,9 @@ pid_t up_vfork(const struct vfork_s *context)
} }
#endif #endif
/* And, finally, start the child task. On a failure, nxtask_vforkstart() /* And, finally, start the child task. On a failure, nxtask_start_vfork()
* will discard the TCB by calling nxtask_vforkabort(). * will discard the TCB by calling nxtask_abort_vfork().
*/ */
return nxtask_vforkstart(child); return nxtask_start_vfork(child);
} }

View File

@ -83,8 +83,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* this consists of: * this consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -95,10 +95,10 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* nxtask_vforkabort() may be called if an error occurs between steps 3 and 6 * nxtask_abort_vfork() may be called if an error occurs between steps 3 and 6
* *
* Input Parameters: * Input Parameters:
* context - Caller context information saved by vfork() * context - Caller context information saved by vfork()
@ -151,10 +151,10 @@ pid_t up_vfork(const struct vfork_s *context)
/* Allocate and initialize a TCB for the child task. */ /* Allocate and initialize a TCB for the child task. */
child = nxtask_vforksetup((start_t)context->ra, &argsize); child = nxtask_setup_vfork((start_t)context->ra, &argsize);
if (!child) if (!child)
{ {
sinfo("nxtask_vforksetup failed\n"); sinfo("nxtask_setup_vfork failed\n");
return (pid_t)ERROR; return (pid_t)ERROR;
} }
@ -174,7 +174,7 @@ pid_t up_vfork(const struct vfork_s *context)
if (ret != OK) if (ret != OK)
{ {
serr("ERROR: up_create_stack failed: %d\n", ret); serr("ERROR: up_create_stack failed: %d\n", ret);
nxtask_vforkabort(child, -ret); nxtask_abort_vfork(child, -ret);
return (pid_t)ERROR; return (pid_t)ERROR;
} }
@ -254,9 +254,9 @@ pid_t up_vfork(const struct vfork_s *context)
child->cmn.xcp.regs[REG_GP] = context->gp; /* Global pointer */ child->cmn.xcp.regs[REG_GP] = context->gp; /* Global pointer */
#endif #endif
/* And, finally, start the child task. On a failure, nxtask_vforkstart() /* And, finally, start the child task. On a failure, nxtask_start_vfork()
* will discard the TCB by calling nxtask_vforkabort(). * will discard the TCB by calling nxtask_abort_vfork().
*/ */
return nxtask_vforkstart(child); return nxtask_start_vfork(child);
} }

View File

@ -71,8 +71,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -83,8 +83,8 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* None * None

View File

@ -83,8 +83,8 @@
* *
* 1) User code calls vfork(). vfork() collects context information and * 1) User code calls vfork(). vfork() collects context information and
* transfers control up up_vfork(). * transfers control up up_vfork().
* 2) up_vfork()and calls nxtask_vforksetup(). * 2) up_vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* This consists of: * This consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -95,10 +95,10 @@
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* nxtask_vforkabort() may be called if an error occurs between steps 3 * nxtask_abort_vfork() may be called if an error occurs between steps 3
* and 6. * and 6.
* *
* Input Parameters: * Input Parameters:
@ -156,10 +156,10 @@ pid_t up_vfork(const struct vfork_s *context)
/* Allocate and initialize a TCB for the child task. */ /* Allocate and initialize a TCB for the child task. */
child = nxtask_vforksetup((start_t)context->ra, &argsize); child = nxtask_setup_vfork((start_t)context->ra, &argsize);
if (!child) if (!child)
{ {
sinfo("nxtask_vforksetup failed\n"); sinfo("nxtask_setup_vfork failed\n");
return (pid_t)ERROR; return (pid_t)ERROR;
} }
@ -179,7 +179,7 @@ pid_t up_vfork(const struct vfork_s *context)
if (ret != OK) if (ret != OK)
{ {
serr("ERROR: up_create_stack failed: %d\n", ret); serr("ERROR: up_create_stack failed: %d\n", ret);
nxtask_vforkabort(child, -ret); nxtask_abort_vfork(child, -ret);
return (pid_t)ERROR; return (pid_t)ERROR;
} }
@ -259,11 +259,11 @@ pid_t up_vfork(const struct vfork_s *context)
child->cmn.xcp.regs[REG_GP] = newsp; /* Global pointer */ child->cmn.xcp.regs[REG_GP] = newsp; /* Global pointer */
#endif #endif
/* And, finally, start the child task. On a failure, nxtask_vforkstart() /* And, finally, start the child task. On a failure, nxtask_start_vfork()
* will discard the TCB by calling nxtask_vforkabort(). * will discard the TCB by calling nxtask_abort_vfork().
*/ */
return nxtask_vforkstart(child); return nxtask_start_vfork(child);
} }
#endif /* CONFIG_ARCH_HAVE_VFORK */ #endif /* CONFIG_ARCH_HAVE_VFORK */

View File

@ -936,8 +936,8 @@ void nxtask_starthook(FAR struct task_tcb_s *tcb, starthook_t starthook,
* *
* 1) User code calls vfork(). vfork() is provided in architecture-specific * 1) User code calls vfork(). vfork() is provided in architecture-specific
* code. * code.
* 2) vfork()and calls nxtask_vforksetup(). * 2) vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. This * 3) nxtask_setup_vfork() allocates and configures the child task's TCB. This
* consists of: * consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -948,16 +948,16 @@ void nxtask_starthook(FAR struct task_tcb_s *tcb, starthook_t starthook,
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) vfork() then calls nxtask_vforkstart() * 5) vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* nxtask_vforkabort() may be called if an error occurs between steps 3 and 6. * nxtask_abort_vfork() may be called if an error occurs between steps 3 and 6.
* *
********************************************************************************/ ********************************************************************************/
FAR struct task_tcb_s *nxtask_vforksetup(start_t retaddr, size_t *argsize); FAR struct task_tcb_s *nxtask_setup_vfork(start_t retaddr, size_t *argsize);
pid_t nxtask_vforkstart(FAR struct task_tcb_s *child); pid_t nxtask_start_vfork(FAR struct task_tcb_s *child);
void nxtask_vforkabort(FAR struct task_tcb_s *child, int errcode); void nxtask_abort_vfork(FAR struct task_tcb_s *child, int errcode);
/******************************************************************************** /********************************************************************************
* Name: group_exitinfo * Name: group_exitinfo

View File

@ -1,36 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/group/group.h * sched/group/group.h
* *
* Copyright (C) 2007-2013, 2015, 2018-2019 Gregory Nutt. All rights * Licensed to the Apache Software Foundation (ASF) under one or more
* reserved. * contributor license agreements. See the NOTICE file distributed with
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -105,8 +89,8 @@ int group_join(FAR struct pthread_tcb_s *tcb);
#endif #endif
void group_leave(FAR struct tcb_s *tcb); void group_leave(FAR struct tcb_s *tcb);
#if defined(CONFIG_SCHED_WAITPID) && !defined(CONFIG_SCHED_HAVE_PARENT) #if defined(CONFIG_SCHED_WAITPID) && !defined(CONFIG_SCHED_HAVE_PARENT)
void group_addwaiter(FAR struct task_group_s *group); void group_add_waiter(FAR struct task_group_s *group);
void group_delwaiter(FAR struct task_group_s *group); void group_del_waiter(FAR struct task_group_s *group);
#endif #endif
#if defined(HAVE_GROUP_MEMBERS) || defined(CONFIG_ARCH_ADDRENV) #if defined(HAVE_GROUP_MEMBERS) || defined(CONFIG_ARCH_ADDRENV)
@ -117,9 +101,9 @@ FAR struct task_group_s *group_findby_grpid(grpid_t grpid);
FAR struct task_group_s *group_findbypid(pid_t pid); FAR struct task_group_s *group_findbypid(pid_t pid);
int group_foreachchild(FAR struct task_group_s *group, int group_foreachchild(FAR struct task_group_s *group,
foreachchild_t handler, FAR void *arg); foreachchild_t handler, FAR void *arg);
int group_killchildren(FAR struct task_tcb_s *tcb); int group_kill_children(FAR struct task_tcb_s *tcb);
#ifdef CONFIG_SIG_SIGSTOP_ACTION #ifdef CONFIG_SIG_SIGSTOP_ACTION
int group_suspendchildren(FAR struct tcb_s *tcb); int group_suspend_children(FAR struct tcb_s *tcb);
int group_continue(FAR struct tcb_s *tcb); int group_continue(FAR struct tcb_s *tcb);
#endif #endif
#endif #endif
@ -144,16 +128,16 @@ int group_signal(FAR struct task_group_s *group, FAR siginfo_t *siginfo);
int task_reparent(pid_t ppid, pid_t chpid); int task_reparent(pid_t ppid, pid_t chpid);
#ifdef CONFIG_SCHED_CHILD_STATUS #ifdef CONFIG_SCHED_CHILD_STATUS
FAR struct child_status_s *group_allocchild(void); FAR struct child_status_s *group_alloc_child(void);
void group_freechild(FAR struct child_status_s *status); void group_free_child(FAR struct child_status_s *status);
void group_addchild(FAR struct task_group_s *group, void group_add_child(FAR struct task_group_s *group,
FAR struct child_status_s *child); FAR struct child_status_s *child);
FAR struct child_status_s *group_exitchild(FAR struct task_group_s *group); FAR struct child_status_s *group_exit_child(FAR struct task_group_s *group);
FAR struct child_status_s *group_findchild(FAR struct task_group_s *group, FAR struct child_status_s *group_find_child(FAR struct task_group_s *group,
pid_t pid); pid_t pid);
FAR struct child_status_s *group_removechild(FAR struct task_group_s *group, FAR struct child_status_s *group_remove_child(FAR struct task_group_s *group,
pid_t pid); pid_t pid);
void group_removechildren(FAR struct task_group_s *group); void group_remove_children(FAR struct task_group_s *group);
#endif /* CONFIG_SCHED_CHILD_STATUS */ #endif /* CONFIG_SCHED_CHILD_STATUS */
#endif /* CONFIG_SCHED_HAVE_PARENT */ #endif /* CONFIG_SCHED_HAVE_PARENT */

View File

@ -1,35 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/group/group_childstatus.c * sched/group/group_childstatus.c
* *
* Copyright (C) 2013 Gregory Nutt. All rights reserved. * Licensed to the Apache Software Foundation (ASF) under one or more
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -94,7 +79,7 @@ static struct child_pool_s g_child_pool;
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: group_dumpchildren * Name: group_dump_children
* *
* Description: * Description:
* Dump all of the children when the part TCB list is modified. * Dump all of the children when the part TCB list is modified.
@ -111,8 +96,8 @@ static struct child_pool_s g_child_pool;
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_DEBUG_CHILDSTATUS #ifdef CONFIG_DEBUG_CHILDSTATUS
static void group_dumpchildren(FAR struct task_group_s *group, static void group_dump_children(FAR struct task_group_s *group,
FAR const char *msg) FAR const char *msg)
{ {
FAR struct child_status_s *child; FAR struct child_status_s *child;
int i; int i;
@ -125,7 +110,7 @@ static void group_dumpchildren(FAR struct task_group_s *group,
} }
} }
#else #else
# define group_dumpchildren(t,m) # define group_dump_children(t,m)
#endif #endif
/**************************************************************************** /****************************************************************************
@ -169,7 +154,7 @@ void task_initialize(void)
} }
/**************************************************************************** /****************************************************************************
* Name: group_allocchild * Name: group_alloc_child
* *
* Description: * Description:
* Allocate a child status structure by removing the next entry from a * Allocate a child status structure by removing the next entry from a
@ -188,7 +173,7 @@ void task_initialize(void)
* *
****************************************************************************/ ****************************************************************************/
FAR struct child_status_s *group_allocchild(void) FAR struct child_status_s *group_alloc_child(void)
{ {
FAR struct child_status_s *ret; FAR struct child_status_s *ret;
@ -205,7 +190,7 @@ FAR struct child_status_s *group_allocchild(void)
} }
/**************************************************************************** /****************************************************************************
* Name: group_freechild * Name: group_free_child
* *
* Description: * Description:
* Release a child status structure by returning it to a free list. * Release a child status structure by returning it to a free list.
@ -222,7 +207,7 @@ FAR struct child_status_s *group_allocchild(void)
* *
****************************************************************************/ ****************************************************************************/
void group_freechild(FAR struct child_status_s *child) void group_free_child(FAR struct child_status_s *child)
{ {
/* Return the child status structure to the free list */ /* Return the child status structure to the free list */
@ -234,7 +219,7 @@ void group_freechild(FAR struct child_status_s *child)
} }
/**************************************************************************** /****************************************************************************
* Name: group_addchild * Name: group_add_child
* *
* Description: * Description:
* Add a child status structure in the given TCB. * Add a child status structure in the given TCB.
@ -252,19 +237,19 @@ void group_freechild(FAR struct child_status_s *child)
* *
****************************************************************************/ ****************************************************************************/
void group_addchild(FAR struct task_group_s *group, void group_add_child(FAR struct task_group_s *group,
FAR struct child_status_s *child) FAR struct child_status_s *child)
{ {
/* Add the entry into the TCB list of children */ /* Add the entry into the TCB list of children */
child->flink = group->tg_children; child->flink = group->tg_children;
group->tg_children = child; group->tg_children = child;
group_dumpchildren(group, "group_addchild"); group_dump_children(group, "group_add_child");
} }
/**************************************************************************** /****************************************************************************
* Name: group_findchild * Name: group_find_child
* *
* Description: * Description:
* Find a child status structure in the given task group. A reference to * Find a child status structure in the given task group. A reference to
@ -280,13 +265,13 @@ void group_addchild(FAR struct task_group_s *group,
* returned if there is child status structure for that pid in the TCB. * returned if there is child status structure for that pid in the TCB.
* *
* Assumptions: * Assumptions:
* Called during SIGCHLD processing in a safe context. No special precautions * Called during SIGCHLD processing in a safe context. No special
* are required here. * precautions are required here.
* *
****************************************************************************/ ****************************************************************************/
FAR struct child_status_s *group_findchild(FAR struct task_group_s *group, FAR struct child_status_s *group_find_child(FAR struct task_group_s *group,
pid_t pid) pid_t pid)
{ {
FAR struct child_status_s *child; FAR struct child_status_s *child;
@ -306,10 +291,10 @@ FAR struct child_status_s *group_findchild(FAR struct task_group_s *group,
} }
/**************************************************************************** /****************************************************************************
* Name: group_exitchild * Name: group_exit_child
* *
* Description: * Description:
* Search for any child that has exitted. * Search for any child that has exited.
* *
* Input Parameters: * Input Parameters:
* tcb - The TCB of the parent task to containing the child status. * tcb - The TCB of the parent task to containing the child status.
@ -319,12 +304,12 @@ FAR struct child_status_s *group_findchild(FAR struct task_group_s *group,
* exited child. NULL is returned if not child has exited. * exited child. NULL is returned if not child has exited.
* *
* Assumptions: * Assumptions:
* Called during SIGCHLD processing in a safe context. No special precautions * Called during SIGCHLD processing in a safe context. No special
* are required here. * precautions are required here.
* *
****************************************************************************/ ****************************************************************************/
FAR struct child_status_s *group_exitchild(FAR struct task_group_s *group) FAR struct child_status_s *group_exit_child(FAR struct task_group_s *group)
{ {
FAR struct child_status_s *child; FAR struct child_status_s *child;
@ -342,11 +327,11 @@ FAR struct child_status_s *group_exitchild(FAR struct task_group_s *group)
} }
/**************************************************************************** /****************************************************************************
* Name: group_removechild * Name: group_remove_child
* *
* Description: * Description:
* Remove one child structure from a task group. The child is removed, but * Remove one child structure from a task group. The child is removed, but
* is not yet freed. group_freechild must be called in order to free the * is not yet freed. group_free_child must be called in order to free the
* child status structure. * child status structure.
* *
* Input Parameters: * Input Parameters:
@ -358,13 +343,13 @@ FAR struct child_status_s *group_exitchild(FAR struct task_group_s *group)
* returned if there is child status structure for that pid in the TCB. * returned if there is child status structure for that pid in the TCB.
* *
* Assumptions: * Assumptions:
* Called during SIGCHLD processing in a safe context. No special precautions * Called during SIGCHLD processing in a safe context. No special
* are required here. * precautionsare required here.
* *
****************************************************************************/ ****************************************************************************/
FAR struct child_status_s *group_removechild(FAR struct task_group_s *group, FAR struct child_status_s *group_remove_child(FAR struct task_group_s *group,
pid_t pid) pid_t pid)
{ {
FAR struct child_status_s *curr; FAR struct child_status_s *curr;
FAR struct child_status_s *prev; FAR struct child_status_s *prev;
@ -399,14 +384,14 @@ FAR struct child_status_s *group_removechild(FAR struct task_group_s *group,
} }
curr->flink = NULL; curr->flink = NULL;
group_dumpchildren(group, "group_removechild"); group_dump_children(group, "group_remove_child");
} }
return curr; return curr;
} }
/**************************************************************************** /****************************************************************************
* Name: group_removechildren * Name: group_remove_children
* *
* Description: * Description:
* Remove and free all child structure from the task group. * Remove and free all child structure from the task group.
@ -423,7 +408,7 @@ FAR struct child_status_s *group_removechild(FAR struct task_group_s *group,
* *
****************************************************************************/ ****************************************************************************/
void group_removechildren(FAR struct task_group_s *group) void group_remove_children(FAR struct task_group_s *group)
{ {
FAR struct child_status_s *curr; FAR struct child_status_s *curr;
FAR struct child_status_s *next; FAR struct child_status_s *next;
@ -433,11 +418,11 @@ void group_removechildren(FAR struct task_group_s *group)
for (curr = group->tg_children; curr; curr = next) for (curr = group->tg_children; curr; curr = next)
{ {
next = curr->flink; next = curr->flink;
group_freechild(curr); group_free_child(curr);
} }
group->tg_children = NULL; group->tg_children = NULL;
group_dumpchildren(group, "group_removechildren"); group_dump_children(group, "group_remove_children");
} }
#endif /* CONFIG_SCHED_HAVE_PARENT && CONFIG_SCHED_CHILD_STATUS */ #endif /* CONFIG_SCHED_HAVE_PARENT && CONFIG_SCHED_CHILD_STATUS */

View File

@ -1,35 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/group/group_killchildren.c * sched/group/group_killchildren.c
* *
* Copyright (C) 2013, 2018 Gregory Nutt. All rights reserved. * Licensed to the Apache Software Foundation (ASF) under one or more
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -56,7 +41,7 @@
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: group_killchildren_handler * Name: group_kill_children_handler
* *
* Description: * Description:
* Callback from group_foreachchild that handles one member of the group. * Callback from group_foreachchild that handles one member of the group.
@ -70,7 +55,7 @@
* *
****************************************************************************/ ****************************************************************************/
static int group_killchildren_handler(pid_t pid, FAR void *arg) static int group_kill_children_handler(pid_t pid, FAR void *arg)
{ {
FAR struct tcb_s *rtcb; FAR struct tcb_s *rtcb;
int ret; int ret;
@ -126,7 +111,7 @@ static int group_killchildren_handler(pid_t pid, FAR void *arg)
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: group_killchildren * Name: group_kill_children
* *
* Description: * Description:
* Delete all children of a task except for the specified task. This is * Delete all children of a task except for the specified task. This is
@ -142,7 +127,7 @@ static int group_killchildren_handler(pid_t pid, FAR void *arg)
* *
****************************************************************************/ ****************************************************************************/
int group_killchildren(FAR struct task_tcb_s *tcb) int group_kill_children(FAR struct task_tcb_s *tcb)
{ {
int ret; int ret;
@ -151,8 +136,8 @@ int group_killchildren(FAR struct task_tcb_s *tcb)
*/ */
sched_lock(); sched_lock();
ret = group_foreachchild(tcb->cmn.group, group_killchildren_handler, ret = group_foreachchild(tcb->cmn.group, group_kill_children_handler,
(FAR void *)((uintptr_t)tcb->cmn.pid)); (FAR void *)((uintptr_t)tcb->cmn.pid));
sched_unlock(); sched_unlock();
return ret; return ret;
} }

View File

@ -1,35 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/group/group_leave.c * sched/group/group_leave.c
* *
* Copyright (C) 2013-2019 Gregory Nutt. All rights reserved. * Licensed to the Apache Software Foundation (ASF) under one or more
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -145,7 +130,7 @@ static inline void group_release(FAR struct task_group_s *group)
#if defined(CONFIG_SCHED_HAVE_PARENT) && defined(CONFIG_SCHED_CHILD_STATUS) #if defined(CONFIG_SCHED_HAVE_PARENT) && defined(CONFIG_SCHED_CHILD_STATUS)
/* Free all un-reaped child exit status */ /* Free all un-reaped child exit status */
group_removechildren(group); group_remove_children(group);
#endif #endif
/* Release pending signals */ /* Release pending signals */

View File

@ -1,35 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/group/group_suspendchildren.c * sched/group/group_suspendchildren.c
* *
* Copyright (C) 2018 Gregory Nutt. All rights reserved. * Licensed to the Apache Software Foundation (ASF) under one or more
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -56,7 +41,7 @@
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: group_suspendchildren_handler * Name: group_suspend_children_handler
* *
* Description: * Description:
* Callback from group_foreachchild that handles one member of the group. * Callback from group_foreachchild that handles one member of the group.
@ -70,7 +55,7 @@
* *
****************************************************************************/ ****************************************************************************/
static int group_suspendchildren_handler(pid_t pid, FAR void *arg) static int group_suspend_children_handler(pid_t pid, FAR void *arg)
{ {
FAR struct tcb_s *rtcb; FAR struct tcb_s *rtcb;
@ -97,7 +82,7 @@ static int group_suspendchildren_handler(pid_t pid, FAR void *arg)
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: group_suspendchildren * Name: group_suspend_children
* *
* Description: * Description:
* Suspend all children of a task except for the specified task. This is * Suspend all children of a task except for the specified task. This is
@ -112,7 +97,7 @@ static int group_suspendchildren_handler(pid_t pid, FAR void *arg)
* *
****************************************************************************/ ****************************************************************************/
int group_suspendchildren(FAR struct tcb_s *tcb) int group_suspend_children(FAR struct tcb_s *tcb)
{ {
int ret; int ret;
@ -121,8 +106,8 @@ int group_suspendchildren(FAR struct tcb_s *tcb)
*/ */
sched_lock(); sched_lock();
ret = group_foreachchild(tcb->group, group_suspendchildren_handler, ret = group_foreachchild(tcb->group, group_suspend_children_handler,
(FAR void *)((uintptr_t)tcb->pid)); (FAR void *)((uintptr_t)tcb->pid));
sched_unlock(); sched_unlock();
return ret; return ret;
} }

View File

@ -51,7 +51,7 @@
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: group_addwaiter * Name: group_add_waiter
* *
* Description: * Description:
* Increment the number of instances of waitpid that are waiting for this * Increment the number of instances of waitpid that are waiting for this
@ -62,14 +62,14 @@
* *
****************************************************************************/ ****************************************************************************/
void group_addwaiter(FAR struct task_group_s *group) void group_add_waiter(FAR struct task_group_s *group)
{ {
group->tg_nwaiters++; group->tg_nwaiters++;
DEBUGASSERT(group->tg_nwaiters > 0); DEBUGASSERT(group->tg_nwaiters > 0);
} }
/**************************************************************************** /****************************************************************************
* Name: group_addwaiter * Name: group_add_waiter
* *
* Description: * Description:
* Decrement the number of instances of waitpid that are waiting for this * Decrement the number of instances of waitpid that are waiting for this
@ -81,7 +81,7 @@ void group_addwaiter(FAR struct task_group_s *group)
* *
****************************************************************************/ ****************************************************************************/
void group_delwaiter(FAR struct task_group_s *group) void group_del_waiter(FAR struct task_group_s *group)
{ {
DEBUGASSERT(group->tg_nwaiters > 0); DEBUGASSERT(group->tg_nwaiters > 0);
group->tg_nwaiters--; group->tg_nwaiters--;

View File

@ -197,7 +197,7 @@ static inline void nx_workqueues(void)
* halves. * halves.
*/ */
work_hpstart(); work_start_highpri();
#endif /* CONFIG_SCHED_HPWORK */ #endif /* CONFIG_SCHED_HPWORK */
@ -206,7 +206,7 @@ static inline void nx_workqueues(void)
* tasks * tasks
*/ */
work_lpstart(); work_start_lowpri();
#endif /* CONFIG_SCHED_LPWORK */ #endif /* CONFIG_SCHED_LPWORK */

View File

@ -95,8 +95,8 @@ struct pthread_tcb_s; /* Forward reference */
struct task_group_s; /* Forward reference */ struct task_group_s; /* Forward reference */
void weak_function pthread_initialize(void); void weak_function pthread_initialize(void);
int pthread_schedsetup(FAR struct pthread_tcb_s *tcb, int priority, int pthread_setup_scheduler(FAR struct pthread_tcb_s *tcb, int priority,
start_t start, pthread_startroutine_t entry); start_t start, pthread_startroutine_t entry);
#ifdef CONFIG_PTHREAD_CLEANUP #ifdef CONFIG_PTHREAD_CLEANUP
void pthread_cleanup_popall(FAR struct pthread_tcb_s *tcb); void pthread_cleanup_popall(FAR struct pthread_tcb_s *tcb);

View File

@ -420,7 +420,7 @@ int pthread_create(FAR pthread_t *thread, FAR const pthread_attr_t *attr,
/* Initialize the task control block */ /* Initialize the task control block */
ret = pthread_schedsetup(ptcb, param.sched_priority, pthread_start, ret = pthread_setup_scheduler(ptcb, param.sched_priority, pthread_start,
start_routine); start_routine);
if (ret != OK) if (ret != OK)
{ {
@ -429,7 +429,7 @@ int pthread_create(FAR pthread_t *thread, FAR const pthread_attr_t *attr,
} }
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* pthread_schedsetup() will set the affinity mask by inheriting the /* pthread_setup_scheduler() will set the affinity mask by inheriting the
* setting from the parent task. We need to override this setting * setting from the parent task. We need to override this setting
* with the value from the pthread attributes unless that value is * with the value from the pthread attributes unless that value is
* zero: Zero is the default value and simply means to inherit the * zero: Zero is the default value and simply means to inherit the

View File

@ -43,7 +43,7 @@
* *
* Description: * Description:
* Suspend/pause the specified thread. This is normally calling indirectly * Suspend/pause the specified thread. This is normally calling indirectly
* via group_suspendchildren(); * via group_suspend_children();
* *
****************************************************************************/ ****************************************************************************/

View File

@ -83,8 +83,8 @@ static void exited_child(FAR struct tcb_s *rtcb,
/* Discard the child entry */ /* Discard the child entry */
group_removechild(rtcb->group, child->ch_pid); group_remove_child(rtcb->group, child->ch_pid);
group_freechild(child); group_free_child(child);
} }
#endif #endif
@ -182,7 +182,7 @@ int nx_waitid(int idtype, id_t id, FAR siginfo_t *info, int options)
{ {
/* Check if this specific pid has allocated child status? */ /* Check if this specific pid has allocated child status? */
if (group_findchild(rtcb->group, (pid_t)id) == NULL) if (group_find_child(rtcb->group, (pid_t)id) == NULL)
{ {
/* This specific pid is not a child */ /* This specific pid is not a child */
@ -237,7 +237,7 @@ int nx_waitid(int idtype, id_t id, FAR siginfo_t *info, int options)
{ {
/* We are waiting for any child to exit */ /* We are waiting for any child to exit */
if (retains && (child = group_exitchild(rtcb->group)) != NULL) if (retains && (child = group_exit_child(rtcb->group)) != NULL)
{ {
/* A child has exited. Apparently we missed the signal. /* A child has exited. Apparently we missed the signal.
* Return the exit status and break out of the loop. * Return the exit status and break out of the loop.
@ -256,7 +256,7 @@ int nx_waitid(int idtype, id_t id, FAR siginfo_t *info, int options)
{ {
/* Yes ... Get the current status of the child task. */ /* Yes ... Get the current status of the child task. */
child = group_findchild(rtcb->group, (pid_t)id); child = group_find_child(rtcb->group, (pid_t)id);
DEBUGASSERT(child); DEBUGASSERT(child);
/* Did the child exit? */ /* Did the child exit? */

View File

@ -92,7 +92,7 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
/* Lock this group so that it cannot be deleted until the wait completes */ /* Lock this group so that it cannot be deleted until the wait completes */
group_addwaiter(group); group_add_waiter(group);
/* "If more than one thread is suspended in waitpid() awaiting termination /* "If more than one thread is suspended in waitpid() awaiting termination
* of the same process, exactly one thread will return the process status * of the same process, exactly one thread will return the process status
@ -132,7 +132,7 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
ret = nxsem_wait(&group->tg_exitsem); ret = nxsem_wait(&group->tg_exitsem);
} }
group_delwaiter(group); group_del_waiter(group);
if (ret < 0) if (ret < 0)
{ {
@ -247,7 +247,7 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
{ {
/* Yes.. Check if this specific pid has allocated child status? */ /* Yes.. Check if this specific pid has allocated child status? */
if (group_findchild(rtcb->group, pid) == NULL) if (group_find_child(rtcb->group, pid) == NULL)
{ {
ret = -ECHILD; ret = -ECHILD;
goto errout; goto errout;
@ -303,7 +303,7 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
*/ */
DEBUGASSERT(!retains || rtcb->group->tg_children); DEBUGASSERT(!retains || rtcb->group->tg_children);
if (retains && (child = group_exitchild(rtcb->group)) != NULL) if (retains && (child = group_exit_child(rtcb->group)) != NULL)
{ {
/* A child has exited. Apparently we missed the signal. /* A child has exited. Apparently we missed the signal.
* Return the saved exit status. * Return the saved exit status.
@ -315,8 +315,8 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
/* Discard the child entry and break out of the loop */ /* Discard the child entry and break out of the loop */
group_removechild(rtcb->group, child->ch_pid); group_remove_child(rtcb->group, child->ch_pid);
group_freechild(child); group_free_child(child);
break; break;
} }
} }
@ -329,7 +329,7 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
{ {
/* Get the current status of the child task. */ /* Get the current status of the child task. */
child = group_findchild(rtcb->group, pid); child = group_find_child(rtcb->group, pid);
DEBUGASSERT(child); DEBUGASSERT(child);
/* Did the child exit? */ /* Did the child exit? */
@ -342,8 +342,8 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
/* Discard the child entry and break out of the loop */ /* Discard the child entry and break out of the loop */
group_removechild(rtcb->group, pid); group_remove_child(rtcb->group, pid);
group_freechild(child); group_free_child(child);
break; break;
} }
} }
@ -415,15 +415,15 @@ pid_t nx_waitpid(pid_t pid, int *stat_loc, int options)
{ {
/* Recover the exiting child */ /* Recover the exiting child */
child = group_exitchild(rtcb->group); child = group_exit_child(rtcb->group);
DEBUGASSERT(child != NULL); DEBUGASSERT(child != NULL);
/* Discard the child entry, if we have one */ /* Discard the child entry, if we have one */
if (child != NULL) if (child != NULL)
{ {
group_removechild(rtcb->group, child->ch_pid); group_remove_child(rtcb->group, child->ch_pid);
group_freechild(child); group_free_child(child);
} }
} }
#endif /* CONFIG_SCHED_CHILD_STATUS */ #endif /* CONFIG_SCHED_CHILD_STATUS */

View File

@ -1,36 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/signal/sig_action.c * sched/signal/sig_action.c
* *
* Copyright (C) 2007-2009, 2013, 2016-2018 Gregory Nutt. All rights * Licensed to the Apache Software Foundation (ASF) under one or more
* reserved. * contributor license agreements. See the NOTICE file distributed with
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -267,7 +251,7 @@ int nxsig_action(int signo, FAR const struct sigaction *act,
/* Free all pending exit status */ /* Free all pending exit status */
group_removechildren(rtcb->group); group_remove_children(rtcb->group);
leave_critical_section(flags); leave_critical_section(flags);
} }
#endif #endif

View File

@ -273,7 +273,7 @@ static void nxsig_abnormal_termination(int signo)
* task group if this_task is a pthread. * task group if this_task is a pthread.
*/ */
group_killchildren((FAR struct task_tcb_s *)rtcb); group_kill_children((FAR struct task_tcb_s *)rtcb);
#endif #endif
#ifndef CONFIG_DISABLE_PTHREAD #ifndef CONFIG_DISABLE_PTHREAD
@ -333,7 +333,7 @@ static void nxsig_stop_task(int signo)
* main thread of the task group if this_task is a pthread. * main thread of the task group if this_task is a pthread.
*/ */
group_suspendchildren(rtcb); group_suspend_children(rtcb);
#endif #endif
/* Lock the scheduler so this thread is not pre-empted until after we /* Lock the scheduler so this thread is not pre-empted until after we

View File

@ -83,7 +83,7 @@ void exit(int status)
* exit through a different mechanism. * exit through a different mechanism.
*/ */
group_killchildren((FAR struct task_tcb_s *)tcb); group_kill_children((FAR struct task_tcb_s *)tcb);
#endif #endif
/* Perform common task termination logic. This will get called again later /* Perform common task termination logic. This will get called again later

View File

@ -57,9 +57,9 @@ struct tcb_s; /* Forward reference */
/* Task start-up */ /* Task start-up */
void nxtask_start(void); void nxtask_start(void);
int nxtask_schedsetup(FAR struct task_tcb_s *tcb, int priority, int nxtask_setup_scheduler(FAR struct task_tcb_s *tcb, int priority,
start_t start, main_t main, uint8_t ttype); start_t start, main_t main, uint8_t ttype);
int nxtask_argsetup(FAR struct task_tcb_s *tcb, FAR const char *name, int nxtask_setup_arguments(FAR struct task_tcb_s *tcb, FAR const char *name,
FAR char * const argv[]); FAR char * const argv[]);
/* Task exit */ /* Task exit */

View File

@ -54,7 +54,7 @@
* Name: task_activate * Name: task_activate
* *
* Description: * Description:
* This function activates tasks initialized by nxtask_schedsetup(). * This function activates tasks initialized by nxtask_setup_scheduler().
* Without activation, a task is ineligible for execution by the * Without activation, a task is ineligible for execution by the
* scheduler. * scheduler.
* *

View File

@ -121,7 +121,7 @@ static int nxthread_create(FAR const char *name, uint8_t ttype,
/* Initialize the task control block */ /* Initialize the task control block */
ret = nxtask_schedsetup(tcb, priority, nxtask_start, entry, ttype); ret = nxtask_setup_scheduler(tcb, priority, nxtask_start, entry, ttype);
if (ret < OK) if (ret < OK)
{ {
goto errout_with_tcb; goto errout_with_tcb;
@ -129,7 +129,7 @@ static int nxthread_create(FAR const char *name, uint8_t ttype,
/* Setup to pass parameters to the new task */ /* Setup to pass parameters to the new task */
nxtask_argsetup(tcb, name, argv); nxtask_setup_arguments(tcb, name, argv);
/* Now we have enough in place that we can join the group */ /* Now we have enough in place that we can join the group */
@ -148,7 +148,7 @@ static int nxthread_create(FAR const char *name, uint8_t ttype,
ret = task_activate((FAR struct tcb_s *)tcb); ret = task_activate((FAR struct tcb_s *)tcb);
if (ret < OK) if (ret < OK)
{ {
/* The TCB was added to the active task list by nxtask_schedsetup() */ /* The TCB was added to the active task list by nxtask_setup_scheduler() */
dq_rem((FAR dq_entry_t *)tcb, (FAR dq_queue_t *)&g_inactivetasks); dq_rem((FAR dq_entry_t *)tcb, (FAR dq_queue_t *)&g_inactivetasks);
goto errout_with_tcb; goto errout_with_tcb;

View File

@ -228,7 +228,7 @@ static inline void nxtask_exitstatus(FAR struct task_group_s *group,
{ {
/* No.. Find the exit status entry for this task in the parent TCB */ /* No.. Find the exit status entry for this task in the parent TCB */
child = group_findchild(group, getpid()); child = group_find_child(group, getpid());
if (child) if (child)
{ {
#ifndef HAVE_GROUP_MEMBERS #ifndef HAVE_GROUP_MEMBERS
@ -272,7 +272,7 @@ static inline void nxtask_groupexit(FAR struct task_group_s *group)
{ {
/* No.. Find the exit status entry for this task in the parent TCB */ /* No.. Find the exit status entry for this task in the parent TCB */
child = group_findchild(group, getpid()); child = group_find_child(group, getpid());
if (child) if (child)
{ {
/* Mark that all members of the child task group has exited */ /* Mark that all members of the child task group has exited */

View File

@ -66,7 +66,7 @@
* *
* Returned Value: * Returned Value:
* OK on success; negative error value on failure appropriately. (See * OK on success; negative error value on failure appropriately. (See
* nxtask_schedsetup() for possible failure conditions). On failure, the * nxtask_setup_scheduler() for possible failure conditions). On failure, the
* caller is responsible for freeing the stack memory and for calling * caller is responsible for freeing the stack memory and for calling
* nxsched_release_tcb() to free the TCB (which could be in most any * nxsched_release_tcb() to free the TCB (which could be in most any
* state). * state).
@ -109,7 +109,7 @@ int task_init(FAR struct tcb_s *tcb, const char *name, int priority,
/* Initialize the task control block */ /* Initialize the task control block */
ret = nxtask_schedsetup(ttcb, priority, nxtask_start, entry, ret = nxtask_setup_scheduler(ttcb, priority, nxtask_start, entry,
TCB_FLAG_TTYPE_TASK); TCB_FLAG_TTYPE_TASK);
if (ret < OK) if (ret < OK)
{ {
@ -118,7 +118,7 @@ int task_init(FAR struct tcb_s *tcb, const char *name, int priority,
/* Setup to pass parameters to the new task */ /* Setup to pass parameters to the new task */
nxtask_argsetup(ttcb, name, argv); nxtask_setup_arguments(ttcb, name, argv);
/* Now we have enough in place that we can join the group */ /* Now we have enough in place that we can join the group */

View File

@ -144,7 +144,7 @@ int task_reparent(pid_t ppid, pid_t chpid)
#ifdef CONFIG_SCHED_CHILD_STATUS #ifdef CONFIG_SCHED_CHILD_STATUS
/* Remove the child status entry from old parent task group */ /* Remove the child status entry from old parent task group */
child = group_removechild(ogrp, chpid); child = group_remove_child(ogrp, chpid);
if (child) if (child)
{ {
/* Has the new parent's task group suppressed child exit status? */ /* Has the new parent's task group suppressed child exit status? */
@ -153,13 +153,13 @@ int task_reparent(pid_t ppid, pid_t chpid)
{ {
/* No.. Add the child status entry to the new parent's task group */ /* No.. Add the child status entry to the new parent's task group */
group_addchild(pgrp, child); group_add_child(pgrp, child);
} }
else else
{ {
/* Yes.. Discard the child status entry */ /* Yes.. Discard the child status entry */
group_freechild(child); group_free_child(child);
} }
/* Either case is a success */ /* Either case is a success */
@ -259,7 +259,7 @@ int task_reparent(pid_t ppid, pid_t chpid)
#ifdef CONFIG_SCHED_CHILD_STATUS #ifdef CONFIG_SCHED_CHILD_STATUS
/* Remove the child status entry from old parent TCB */ /* Remove the child status entry from old parent TCB */
child = group_removechild(otcb->group, chpid); child = group_remove_child(otcb->group, chpid);
if (child) if (child)
{ {
/* Has the new parent's task group suppressed child exit status? */ /* Has the new parent's task group suppressed child exit status? */
@ -268,13 +268,13 @@ int task_reparent(pid_t ppid, pid_t chpid)
{ {
/* No.. Add the child status entry to the new parent's task group */ /* No.. Add the child status entry to the new parent's task group */
group_addchild(ptcb->group, child); group_add_child(ptcb->group, child);
} }
else else
{ {
/* Yes.. Discard the child status entry */ /* Yes.. Discard the child status entry */
group_freechild(child); group_free_child(child);
} }
/* Either case is a success */ /* Either case is a success */

View File

@ -127,7 +127,7 @@ int task_restart(pid_t pid)
/* Kill any children of this thread */ /* Kill any children of this thread */
#ifdef HAVE_GROUP_MEMBERS #ifdef HAVE_GROUP_MEMBERS
group_killchildren(tcb); group_kill_children(tcb);
#endif #endif
/* Remove the TCB from whatever list it is in. After this point, the TCB /* Remove the TCB from whatever list it is in. After this point, the TCB

View File

@ -63,7 +63,7 @@ static const char g_noname[] = "<noname>";
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: nxtask_assignpid * Name: nxtask_assign_pid
* *
* Description: * Description:
* This function assigns the next unique task ID to a task. * This function assigns the next unique task ID to a task.
@ -76,7 +76,7 @@ static const char g_noname[] = "<noname>";
* *
****************************************************************************/ ****************************************************************************/
static int nxtask_assignpid(FAR struct tcb_s *tcb) static int nxtask_assign_pid(FAR struct tcb_s *tcb)
{ {
pid_t next_pid; pid_t next_pid;
int hash_ndx; int hash_ndx;
@ -167,7 +167,7 @@ static inline void nxtask_inherit_affinity(FAR struct tcb_s *tcb)
#endif #endif
/**************************************************************************** /****************************************************************************
* Name: nxtask_saveparent * Name: nxtask_save_parent
* *
* Description: * Description:
* Save the task ID of the parent task in the child task's group and * Save the task ID of the parent task in the child task's group and
@ -188,7 +188,7 @@ static inline void nxtask_inherit_affinity(FAR struct tcb_s *tcb)
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_SCHED_HAVE_PARENT #ifdef CONFIG_SCHED_HAVE_PARENT
static inline void nxtask_saveparent(FAR struct tcb_s *tcb, uint8_t ttype) static inline void nxtask_save_parent(FAR struct tcb_s *tcb, uint8_t ttype)
{ {
DEBUGASSERT(tcb != NULL && tcb->group != NULL); DEBUGASSERT(tcb != NULL && tcb->group != NULL);
@ -234,13 +234,13 @@ static inline void nxtask_saveparent(FAR struct tcb_s *tcb, uint8_t ttype)
* the parent TCB. There should not be. * the parent TCB. There should not be.
*/ */
child = group_findchild(rtcb->group, tcb->pid); child = group_find_child(rtcb->group, tcb->pid);
DEBUGASSERT(child == NULL); DEBUGASSERT(child == NULL);
if (child == NULL) if (child == NULL)
{ {
/* Allocate a new status structure */ /* Allocate a new status structure */
child = group_allocchild(); child = group_alloc_child();
} }
/* Did we successfully find/allocate the child status structure? */ /* Did we successfully find/allocate the child status structure? */
@ -256,7 +256,7 @@ static inline void nxtask_saveparent(FAR struct tcb_s *tcb, uint8_t ttype)
/* Add the entry into the group's list of children */ /* Add the entry into the group's list of children */
group_addchild(rtcb->group, child); group_add_child(rtcb->group, child);
} }
} }
@ -272,11 +272,11 @@ static inline void nxtask_saveparent(FAR struct tcb_s *tcb, uint8_t ttype)
} }
} }
#else #else
# define nxtask_saveparent(tcb,ttype) # define nxtask_save_parent(tcb,ttype)
#endif #endif
/**************************************************************************** /****************************************************************************
* Name: nxtask_dupdspace * Name: nxtask_dup_dspace
* *
* Description: * Description:
* When a new task or thread is created from a PIC module, then that * When a new task or thread is created from a PIC module, then that
@ -296,7 +296,7 @@ static inline void nxtask_saveparent(FAR struct tcb_s *tcb, uint8_t ttype)
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_PIC #ifdef CONFIG_PIC
static inline void nxtask_dupdspace(FAR struct tcb_s *tcb) static inline void nxtask_dup_dspace(FAR struct tcb_s *tcb)
{ {
FAR struct tcb_s *rtcb = this_task(); FAR struct tcb_s *rtcb = this_task();
if (rtcb->dspace != NULL) if (rtcb->dspace != NULL)
@ -311,18 +311,18 @@ static inline void nxtask_dupdspace(FAR struct tcb_s *tcb)
} }
} }
#else #else
# define nxtask_dupdspace(tcb) # define nxtask_dup_dspace(tcb)
#endif #endif
/**************************************************************************** /****************************************************************************
* Name: nxthread_schedsetup * Name: nxthread_setup_scheduler
* *
* Description: * Description:
* This functions initializes the common portions of the Task Control Block * This functions initializes the common portions of the Task Control Block
* (TCB) in preparation for starting a new thread. * (TCB) in preparation for starting a new thread.
* *
* nxthread_schedsetup() is called from nxtask_schedsetup() and * nxthread_setup_scheduler() is called from nxtask_setup_scheduler() and
* pthread_schedsetup(). * pthread_setup_scheduler().
* *
* Input Parameters: * Input Parameters:
* tcb - Address of the new task's TCB * tcb - Address of the new task's TCB
@ -339,15 +339,15 @@ static inline void nxtask_dupdspace(FAR struct tcb_s *tcb)
* *
****************************************************************************/ ****************************************************************************/
static int nxthread_schedsetup(FAR struct tcb_s *tcb, int priority, static int nxthread_setup_scheduler(FAR struct tcb_s *tcb, int priority,
start_t start, CODE void *entry, start_t start, CODE void *entry,
uint8_t ttype) uint8_t ttype)
{ {
int ret; int ret;
/* Assign a unique task ID to the task. */ /* Assign a unique task ID to the task. */
ret = nxtask_assignpid(tcb); ret = nxtask_assign_pid(tcb);
if (ret == OK) if (ret == OK)
{ {
/* Save task priority and entry point in the TCB */ /* Save task priority and entry point in the TCB */
@ -378,7 +378,7 @@ static int nxthread_schedsetup(FAR struct tcb_s *tcb, int priority,
* a child status structure. * a child status structure.
*/ */
nxtask_saveparent(tcb, ttype); nxtask_save_parent(tcb, ttype);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* exec(), task_create(), and vfork() all inherit the affinity mask /* exec(), task_create(), and vfork() all inherit the affinity mask
@ -408,7 +408,7 @@ static int nxthread_schedsetup(FAR struct tcb_s *tcb, int priority,
* state setup will take the PIC address base into account. * state setup will take the PIC address base into account.
*/ */
nxtask_dupdspace(tcb); nxtask_dup_dspace(tcb);
/* Initialize the processor-specific portion of the TCB */ /* Initialize the processor-specific portion of the TCB */
@ -426,7 +426,7 @@ static int nxthread_schedsetup(FAR struct tcb_s *tcb, int priority,
} }
/**************************************************************************** /****************************************************************************
* Name: nxtask_namesetup * Name: nxtask_setup_name
* *
* Description: * Description:
* Assign the task name. * Assign the task name.
@ -441,8 +441,8 @@ static int nxthread_schedsetup(FAR struct tcb_s *tcb, int priority,
****************************************************************************/ ****************************************************************************/
#if CONFIG_TASK_NAME_SIZE > 0 #if CONFIG_TASK_NAME_SIZE > 0
static void nxtask_namesetup(FAR struct task_tcb_s *tcb, static void nxtask_setup_name(FAR struct task_tcb_s *tcb,
FAR const char *name) FAR const char *name)
{ {
/* Give a name to the unnamed tasks */ /* Give a name to the unnamed tasks */
@ -457,14 +457,14 @@ static void nxtask_namesetup(FAR struct task_tcb_s *tcb,
tcb->cmn.name[CONFIG_TASK_NAME_SIZE] = '\0'; tcb->cmn.name[CONFIG_TASK_NAME_SIZE] = '\0';
} }
#else #else
# define nxtask_namesetup(t,n) # define nxtask_setup_name(t,n)
#endif /* CONFIG_TASK_NAME_SIZE */ #endif /* CONFIG_TASK_NAME_SIZE */
/**************************************************************************** /****************************************************************************
* Name: nxtask_stackargsetup * Name: nxtask_setup_stackargs
* *
* Description: * Description:
* This functions is called only from nxtask_argsetup() It will allocate * This functions is called only from nxtask_setup_arguments() It will allocate
* space on the new task's stack and will copy the argv[] array and all * space on the new task's stack and will copy the argv[] array and all
* strings to the task's stack where it is readily accessible to the * strings to the task's stack where it is readily accessible to the
* task. Data on the stack, on the other hand, is guaranteed to be * task. Data on the stack, on the other hand, is guaranteed to be
@ -481,8 +481,8 @@ static void nxtask_namesetup(FAR struct task_tcb_s *tcb,
* *
****************************************************************************/ ****************************************************************************/
static inline int nxtask_stackargsetup(FAR struct task_tcb_s *tcb, static inline int nxtask_setup_stackargs(FAR struct task_tcb_s *tcb,
FAR char * const argv[]) FAR char * const argv[])
{ {
FAR char **stackargv; FAR char **stackargv;
FAR const char *name; FAR const char *name;
@ -601,13 +601,13 @@ static inline int nxtask_stackargsetup(FAR struct task_tcb_s *tcb,
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: nxtask_schedsetup * Name: nxtask_setup_scheduler
* *
* Description: * Description:
* This functions initializes a Task Control Block (TCB) in preparation * This functions initializes a Task Control Block (TCB) in preparation
* for starting a new task. * for starting a new task.
* *
* nxtask_schedsetup() is called from task_init() and nxtask_start(). * nxtask_setup_scheduler() is called from task_init() and nxtask_start().
* *
* Input Parameters: * Input Parameters:
* tcb - Address of the new task's TCB * tcb - Address of the new task's TCB
@ -624,23 +624,23 @@ static inline int nxtask_stackargsetup(FAR struct task_tcb_s *tcb,
* *
****************************************************************************/ ****************************************************************************/
int nxtask_schedsetup(FAR struct task_tcb_s *tcb, int priority, int nxtask_setup_scheduler(FAR struct task_tcb_s *tcb, int priority,
start_t start, main_t main, uint8_t ttype) start_t start, main_t main, uint8_t ttype)
{ {
/* Perform common thread setup */ /* Perform common thread setup */
return nxthread_schedsetup((FAR struct tcb_s *)tcb, priority, start, return nxthread_setup_scheduler((FAR struct tcb_s *)tcb, priority, start,
(CODE void *)main, ttype); (CODE void *)main, ttype);
} }
/**************************************************************************** /****************************************************************************
* Name: pthread_schedsetup * Name: pthread_setup_scheduler
* *
* Description: * Description:
* This functions initializes a Task Control Block (TCB) in preparation * This functions initializes a Task Control Block (TCB) in preparation
* for starting a new pthread. * for starting a new pthread.
* *
* pthread_schedsetup() is called from pthread_create(), * pthread_setup_scheduler() is called from pthread_create(),
* *
* Input Parameters: * Input Parameters:
* tcb - Address of the new task's TCB * tcb - Address of the new task's TCB
@ -658,24 +658,24 @@ int nxtask_schedsetup(FAR struct task_tcb_s *tcb, int priority,
****************************************************************************/ ****************************************************************************/
#ifndef CONFIG_DISABLE_PTHREAD #ifndef CONFIG_DISABLE_PTHREAD
int pthread_schedsetup(FAR struct pthread_tcb_s *tcb, int priority, int pthread_setup_scheduler(FAR struct pthread_tcb_s *tcb, int priority,
start_t start, pthread_startroutine_t entry) start_t start, pthread_startroutine_t entry)
{ {
/* Perform common thread setup */ /* Perform common thread setup */
return nxthread_schedsetup((FAR struct tcb_s *)tcb, priority, start, return nxthread_setup_scheduler((FAR struct tcb_s *)tcb, priority, start,
(CODE void *)entry, TCB_FLAG_TTYPE_PTHREAD); (CODE void *)entry, TCB_FLAG_TTYPE_PTHREAD);
} }
#endif #endif
/**************************************************************************** /****************************************************************************
* Name: nxtask_argsetup * Name: nxtask_setup_arguments
* *
* Description: * Description:
* This functions sets up parameters in the Task Control Block (TCB) in * This functions sets up parameters in the Task Control Block (TCB) in
* preparation for starting a new thread. * preparation for starting a new thread.
* *
* nxtask_argsetup() is called only from task_init() and nxtask_start() to * nxtask_setup_arguments() is called only from task_init() and nxtask_start() to
* create a new task. In the "normal" case, the argv[] array is a * create a new task. In the "normal" case, the argv[] array is a
* structure in the TCB, the arguments are cloned via strdup. * structure in the TCB, the arguments are cloned via strdup.
* *
@ -697,17 +697,17 @@ int pthread_schedsetup(FAR struct pthread_tcb_s *tcb, int priority,
* *
****************************************************************************/ ****************************************************************************/
int nxtask_argsetup(FAR struct task_tcb_s *tcb, FAR const char *name, int nxtask_setup_arguments(FAR struct task_tcb_s *tcb, FAR const char *name,
FAR char * const argv[]) FAR char * const argv[])
{ {
/* Setup the task name */ /* Setup the task name */
nxtask_namesetup(tcb, name); nxtask_setup_name(tcb, name);
/* Copy the argv[] array and all strings are to the task's stack. Data on /* Copy the argv[] array and all strings are to the task's stack. Data on
* the stack is guaranteed to be accessible by the ask no matter what * the stack is guaranteed to be accessible by the ask no matter what
* privilege mode the task runs in. * privilege mode the task runs in.
*/ */
return nxtask_stackargsetup(tcb, argv); return nxtask_setup_stackargs(tcb, argv);
} }

View File

@ -1,35 +1,20 @@
/**************************************************************************** /****************************************************************************
* sched/task/task_vfork * sched/task/task_vfork
* *
* Copyright (C) 2013-2014, 2019 Gregory Nutt. All rights reserved. * Licensed to the Apache Software Foundation (ASF) under one or more
* Author: Gregory Nutt <gnutt@nuttx.org> * 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
* *
* Redistribution and use in source and binary forms, with or without * http://www.apache.org/licenses/LICENSE-2.0
* modification, are permitted provided that the following conditions
* are met:
* *
* 1. Redistributions of source code must retain the above copyright * Unless required by applicable law or agreed to in writing, software
* notice, this list of conditions and the following disclaimer. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* 2. Redistributions in binary form must reproduce the above copyright * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* notice, this list of conditions and the following disclaimer in * License for the specific language governing permissions and limitations
* the documentation and/or other materials provided with the * under the License.
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************/ ****************************************************************************/
@ -73,7 +58,7 @@
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: nxvfork_namesetup * Name: nxvfork_setup_name
* *
* Description: * Description:
* Copy the task name. * Copy the task name.
@ -88,19 +73,19 @@
****************************************************************************/ ****************************************************************************/
#if CONFIG_TASK_NAME_SIZE > 0 #if CONFIG_TASK_NAME_SIZE > 0
static inline void nxvfork_namesetup(FAR struct tcb_s *parent, static inline void nxvfork_setup_name(FAR struct tcb_s *parent,
FAR struct task_tcb_s *child) FAR struct task_tcb_s *child)
{ {
/* Copy the name from the parent into the child TCB */ /* Copy the name from the parent into the child TCB */
strncpy(child->cmn.name, parent->name, CONFIG_TASK_NAME_SIZE); strncpy(child->cmn.name, parent->name, CONFIG_TASK_NAME_SIZE);
} }
#else #else
# define nxvfork_namesetup(p,c) # define nxvfork_setup_name(p,c)
#endif /* CONFIG_TASK_NAME_SIZE */ #endif /* CONFIG_TASK_NAME_SIZE */
/**************************************************************************** /****************************************************************************
* Name: nxvfork_stackargsetup * Name: nxvfork_setup_stackargs
* *
* Description: * Description:
* Clone the task arguments in the same relative positions on the child's * Clone the task arguments in the same relative positions on the child's
@ -115,8 +100,8 @@ static inline void nxvfork_namesetup(FAR struct tcb_s *parent,
* *
****************************************************************************/ ****************************************************************************/
static inline int nxvfork_stackargsetup(FAR struct tcb_s *parent, static inline int nxvfork_setup_stackargs(FAR struct tcb_s *parent,
FAR struct task_tcb_s *child) FAR struct task_tcb_s *child)
{ {
/* Is the parent a task? or a pthread? Only tasks (and kernel threads) /* Is the parent a task? or a pthread? Only tasks (and kernel threads)
* have command line arguments. * have command line arguments.
@ -169,7 +154,7 @@ static inline int nxvfork_stackargsetup(FAR struct tcb_s *parent,
} }
/**************************************************************************** /****************************************************************************
* Name: nxvfork_argsetup * Name: nxvfork_setup_arguments
* *
* Description: * Description:
* Clone the argument list from the parent to the child. * Clone the argument list from the parent to the child.
@ -183,20 +168,20 @@ static inline int nxvfork_stackargsetup(FAR struct tcb_s *parent,
* *
****************************************************************************/ ****************************************************************************/
static inline int nxvfork_argsetup(FAR struct tcb_s *parent, static inline int nxvfork_setup_arguments(FAR struct tcb_s *parent,
FAR struct task_tcb_s *child) FAR struct task_tcb_s *child)
{ {
/* Clone the task name */ /* Clone the task name */
nxvfork_namesetup(parent, child); nxvfork_setup_name(parent, child);
/* Adjust and copy the argv[] array. */ /* Adjust and copy the argv[] array. */
return nxvfork_stackargsetup(parent, child); return nxvfork_setup_stackargs(parent, child);
} }
/**************************************************************************** /****************************************************************************
* Name: nxvfork_argsize * Name: nxvfork_sizeof_arguments
* *
* Description: * Description:
* Get the parent's argument size. * Get the parent's argument size.
@ -209,7 +194,7 @@ static inline int nxvfork_argsetup(FAR struct tcb_s *parent,
* *
****************************************************************************/ ****************************************************************************/
static inline size_t nxvfork_argsize(FAR struct tcb_s *parent) static inline size_t nxvfork_sizeof_arguments(FAR struct tcb_s *parent)
{ {
if ((parent->flags & TCB_FLAG_TTYPE_MASK) != TCB_FLAG_TTYPE_PTHREAD) if ((parent->flags & TCB_FLAG_TTYPE_MASK) != TCB_FLAG_TTYPE_PTHREAD)
{ {
@ -239,7 +224,7 @@ static inline size_t nxvfork_argsize(FAR struct tcb_s *parent)
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: nxtask_vforksetup * Name: nxtask_setup_vfork
* *
* Description: * Description:
* The vfork() function has the same effect as fork(), except that the * The vfork() function has the same effect as fork(), except that the
@ -255,8 +240,8 @@ static inline size_t nxvfork_argsize(FAR struct tcb_s *parent)
* *
* 1) User code calls vfork(). vfork() is provided in * 1) User code calls vfork(). vfork() is provided in
* architecture-specific code. * architecture-specific code.
* 2) vfork()and calls nxtask_vforksetup(). * 2) vfork()and calls nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* This consists of: * This consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -267,21 +252,21 @@ static inline size_t nxvfork_argsize(FAR struct tcb_s *parent)
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) up_vfork() then calls nxtask_vforkstart() * 5) up_vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* retaddr - Return address * retaddr - Return address
* argsize - Location to return the argument size * argsize - Location to return the argument size
* *
* Returned Value: * Returned Value:
* Upon successful completion, nxtask_vforksetup() returns a pointer to * Upon successful completion, nxtask_setup_vfork() returns a pointer to
* newly allocated and initialized child task's TCB. NULL is returned * newly allocated and initialized child task's TCB. NULL is returned
* on any failure and the errno is set appropriately. * on any failure and the errno is set appropriately.
* *
****************************************************************************/ ****************************************************************************/
FAR struct task_tcb_s *nxtask_vforksetup(start_t retaddr, size_t *argsize) FAR struct task_tcb_s *nxtask_setup_vfork(start_t retaddr, size_t *argsize)
{ {
FAR struct tcb_s *parent = this_task(); FAR struct tcb_s *parent = this_task();
FAR struct task_tcb_s *child; FAR struct task_tcb_s *child;
@ -343,7 +328,7 @@ FAR struct task_tcb_s *nxtask_vforksetup(start_t retaddr, size_t *argsize)
/* Initialize the task control block. This calls up_initial_state() */ /* Initialize the task control block. This calls up_initial_state() */
sinfo("Child priority=%d start=%p\n", priority, retaddr); sinfo("Child priority=%d start=%p\n", priority, retaddr);
ret = nxtask_schedsetup(child, priority, retaddr, parent->entry.main, ret = nxtask_setup_scheduler(child, priority, retaddr, parent->entry.main,
ttype); ttype);
if (ret < OK) if (ret < OK)
{ {
@ -352,7 +337,7 @@ FAR struct task_tcb_s *nxtask_vforksetup(start_t retaddr, size_t *argsize)
/* Return the argument size */ /* Return the argument size */
*argsize = nxvfork_argsize(parent); *argsize = nxvfork_sizeof_arguments(parent);
sinfo("parent=%p, returning child=%p\n", parent, child); sinfo("parent=%p, returning child=%p\n", parent, child);
return child; return child;
@ -364,7 +349,7 @@ errout_with_tcb:
} }
/**************************************************************************** /****************************************************************************
* Name: nxtask_vforkstart * Name: nxtask_start_vfork
* *
* Description: * Description:
* The vfork() function has the same effect as fork(), except that the * The vfork() function has the same effect as fork(), except that the
@ -380,8 +365,8 @@ errout_with_tcb:
* *
* 1) User code calls vfork() * 1) User code calls vfork()
* 2) Architecture-specific code provides vfork()and calls * 2) Architecture-specific code provides vfork()and calls
* nxtask_vforksetup(). * nxtask_setup_vfork().
* 3) nxtask_vforksetup() allocates and configures the child task's TCB. * 3) nxtask_setup_vfork() allocates and configures the child task's TCB.
* This consists of: * This consists of:
* - Allocation of the child task's TCB. * - Allocation of the child task's TCB.
* - Initialization of file descriptors and streams * - Initialization of file descriptors and streams
@ -392,8 +377,8 @@ errout_with_tcb:
* - Allocate and initialize the stack * - Allocate and initialize the stack
* - Initialize special values in any CPU registers that were not * - Initialize special values in any CPU registers that were not
* already configured by up_initial_state() * already configured by up_initial_state()
* 5) vfork() then calls nxtask_vforkstart() * 5) vfork() then calls nxtask_start_vfork()
* 6) nxtask_vforkstart() then executes the child thread. * 6) nxtask_start_vfork() then executes the child thread.
* *
* Input Parameters: * Input Parameters:
* retaddr - The return address from vfork() where the child task * retaddr - The return address from vfork() where the child task
@ -407,7 +392,7 @@ errout_with_tcb:
* *
****************************************************************************/ ****************************************************************************/
pid_t nxtask_vforkstart(FAR struct task_tcb_s *child) pid_t nxtask_start_vfork(FAR struct task_tcb_s *child)
{ {
FAR struct tcb_s *parent = this_task(); FAR struct tcb_s *parent = this_task();
pid_t pid; pid_t pid;
@ -419,10 +404,10 @@ pid_t nxtask_vforkstart(FAR struct task_tcb_s *child)
/* Duplicate the original argument list in the forked child TCB */ /* Duplicate the original argument list in the forked child TCB */
ret = nxvfork_argsetup(parent, child); ret = nxvfork_setup_arguments(parent, child);
if (ret < 0) if (ret < 0)
{ {
nxtask_vforkabort(child, -ret); nxtask_abort_vfork(child, -ret);
return ERROR; return ERROR;
} }
@ -431,7 +416,7 @@ pid_t nxtask_vforkstart(FAR struct task_tcb_s *child)
ret = group_initialize(child); ret = group_initialize(child);
if (ret < 0) if (ret < 0)
{ {
nxtask_vforkabort(child, -ret); nxtask_abort_vfork(child, -ret);
return ERROR; return ERROR;
} }
@ -452,7 +437,7 @@ pid_t nxtask_vforkstart(FAR struct task_tcb_s *child)
ret = task_activate((FAR struct tcb_s *)child); ret = task_activate((FAR struct tcb_s *)child);
if (ret < OK) if (ret < OK)
{ {
nxtask_vforkabort(child, -ret); nxtask_abort_vfork(child, -ret);
sched_unlock(); sched_unlock();
return ERROR; return ERROR;
} }
@ -491,19 +476,19 @@ pid_t nxtask_vforkstart(FAR struct task_tcb_s *child)
} }
/**************************************************************************** /****************************************************************************
* Name: nxtask_vforkabort * Name: nxtask_abort_vfork
* *
* Description: * Description:
* Recover from any errors after nxtask_vforksetup() was called. * Recover from any errors after nxtask_setup_vfork() was called.
* *
* Returned Value: * Returned Value:
* None * None
* *
****************************************************************************/ ****************************************************************************/
void nxtask_vforkabort(FAR struct task_tcb_s *child, int errcode) void nxtask_abort_vfork(FAR struct task_tcb_s *child, int errcode)
{ {
/* The TCB was added to the active task list by nxtask_schedsetup() */ /* The TCB was added to the active task list by nxtask_setup_scheduler() */
dq_rem((FAR dq_entry_t *)child, (FAR dq_queue_t *)&g_inactivetasks); dq_rem((FAR dq_entry_t *)child, (FAR dq_queue_t *)&g_inactivetasks);

View File

@ -115,7 +115,7 @@ static int work_hpthread(int argc, char *argv[])
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: work_hpstart * Name: work_start_highpri
* *
* Description: * Description:
* Start the high-priority, kernel-mode worker thread(s) * Start the high-priority, kernel-mode worker thread(s)
@ -129,7 +129,7 @@ static int work_hpthread(int argc, char *argv[])
* *
****************************************************************************/ ****************************************************************************/
int work_hpstart(void) int work_start_highpri(void)
{ {
pid_t pid; pid_t pid;
int wndx; int wndx;

View File

@ -115,7 +115,7 @@ static int work_lpthread(int argc, char *argv[])
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: work_lpstart * Name: work_start_lowpri
* *
* Description: * Description:
* Start the low-priority, kernel-mode worker thread(s) * Start the low-priority, kernel-mode worker thread(s)
@ -129,7 +129,7 @@ static int work_lpthread(int argc, char *argv[])
* *
****************************************************************************/ ****************************************************************************/
int work_lpstart(void) int work_start_lowpri(void)
{ {
pid_t pid; pid_t pid;
int wndx; int wndx;

View File

@ -114,7 +114,7 @@ extern struct lp_wqueue_s g_lpwork;
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: work_hpstart * Name: work_start_highpri
* *
* Description: * Description:
* Start the high-priority, kernel-mode work queue. * Start the high-priority, kernel-mode work queue.
@ -129,11 +129,11 @@ extern struct lp_wqueue_s g_lpwork;
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_SCHED_HPWORK #ifdef CONFIG_SCHED_HPWORK
int work_hpstart(void); int work_start_highpri(void);
#endif #endif
/**************************************************************************** /****************************************************************************
* Name: work_lpstart * Name: work_start_lowpri
* *
* Description: * Description:
* Start the low-priority, kernel-mode worker thread(s) * Start the low-priority, kernel-mode worker thread(s)
@ -148,7 +148,7 @@ int work_hpstart(void);
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_SCHED_LPWORK #ifdef CONFIG_SCHED_LPWORK
int work_lpstart(void); int work_start_lowpri(void);
#endif #endif
/**************************************************************************** /****************************************************************************
@ -172,7 +172,7 @@ int work_lpstart(void);
void work_process(FAR struct kwork_wqueue_s *wqueue, int wndx); void work_process(FAR struct kwork_wqueue_s *wqueue, int wndx);
/**************************************************************************** /****************************************************************************
* Name: work_notifier_initialize * Name: work_initialize_notifier
* *
* Description: * Description:
* Set up the notification data structures for normal operation. * Set up the notification data structures for normal operation.
@ -180,7 +180,7 @@ void work_process(FAR struct kwork_wqueue_s *wqueue, int wndx);
****************************************************************************/ ****************************************************************************/
#ifdef CONFIG_WQUEUE_NOTIFIER #ifdef CONFIG_WQUEUE_NOTIFIER
void work_notifier_initialize(void); void work_initialize_notifier(void);
#endif #endif
#endif /* CONFIG_SCHED_WORKQUEUE */ #endif /* CONFIG_SCHED_WORKQUEUE */