arch: Remove the duplicated up_tls_info implementation
Define up_tls_info in arch/arch.h directly if the general one isn't suitable Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
parent
19e5ee6ce0
commit
a0990ee416
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/arm/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_ARM_INCLUDE_TLS_H
|
||||
#define __ARCH_ARM_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_ARM_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/avr/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_AVR_INCLUDE_TLS_H
|
||||
#define __ARCH_AVR_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_AVR_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/hc/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_HC_INCLUDE_TLS_H
|
||||
#define __ARCH_HC_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_HC_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/mips/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_MIPS_INCLUDE_TLS_H
|
||||
#define __ARCH_MIPS_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_MIPS_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/misoc/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_MISOC_INCLUDE_TLS_H
|
||||
#define __ARCH_MISOC_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_MISOC_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/or1k/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_OR1K_INCLUDE_TLS_H
|
||||
#define __ARCH_OR1K_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_OR1K_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/renesas/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_RENESAS_INCLUDE_TLS_H
|
||||
#define __ARCH_RENESAS_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_RENESAS_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/risc-v/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_RISCV_INCLUDE_TLS_H
|
||||
#define __ARCH_RISCV_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_RISCV_INCLUDE_TLS_H */
|
@ -1,74 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/sim/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_SIM_INCLUDE_TLS_H
|
||||
#define __ARCH_SIM_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
return TLS_INFO(up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_SIM_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/x86/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_X86_INCLUDE_TLS_H
|
||||
#define __ARCH_X86_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_X86_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/x86_64/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_X86_64_INCLUDE_TLS_H
|
||||
#define __ARCH_X86_64_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline FAR struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_X86_64_INCLUDE_TLS_H */
|
@ -1,75 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/xtensa/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_XTENSA_INCLUDE_TLS_H
|
||||
#define __ARCH_XTENSA_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
static inline struct tls_info_s *up_tls_info(void)
|
||||
{
|
||||
DEBUGASSERT(!up_interrupt_context());
|
||||
return TLS_INFO((uintptr_t)up_getsp());
|
||||
}
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_XTENSA_INCLUDE_TLS_H */
|
@ -1,71 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/z16/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_Z16_INCLUDE_TLS_H
|
||||
#define __ARCH_Z16_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
# error "Aligned TLS not supported"
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_Z16_INCLUDE_TLS_H */
|
@ -1,71 +0,0 @@
|
||||
/****************************************************************************
|
||||
* arch/z80/include/tls.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ARCH_Z80_INCLUDE_TLS_H
|
||||
#define __ARCH_Z80_INCLUDE_TLS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <assert.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Inline Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: up_tls_info
|
||||
*
|
||||
* Description:
|
||||
* Return the TLS information structure for the currently executing thread.
|
||||
* When TLS is enabled, up_createstack() will align allocated stacks to
|
||||
* the TLS_STACK_ALIGN value. An instance of the following structure will
|
||||
* be implicitly positioned at the "lower" end of the stack. Assuming a
|
||||
* "push down" stack, this is at the "far" end of the stack (and can be
|
||||
* clobbered if the stack overflows).
|
||||
*
|
||||
* If an MCU has a "push up" then that TLS structure will lie at the top
|
||||
* of the stack and stack allocation and initialization logic must take
|
||||
* care to preserve this structure content.
|
||||
*
|
||||
* The stack memory is fully accessible to user mode threads.
|
||||
*
|
||||
* Input Parameters:
|
||||
* None
|
||||
*
|
||||
* Returned Value:
|
||||
* A pointer to TLS info structure at the beginning of the STACK memory
|
||||
* allocation. This is essentially an application of the TLS_INFO(sp)
|
||||
* macro and has a platform dependency only in the manner in which the
|
||||
* stack pointer (sp) is obtained and interpreted.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_TLS_ALIGNED
|
||||
# error "Aligned TLS not supported"
|
||||
#else
|
||||
# define up_tls_info() tls_get_info()
|
||||
#endif
|
||||
|
||||
#endif /* __ARCH_Z80_INCLUDE_TLS_H */
|
@ -1791,10 +1791,18 @@ int up_timer_start(FAR const struct timespec *ts);
|
||||
/* struct tls_info_s;
|
||||
* FAR struct tls_info_s *up_tls_info(void);
|
||||
*
|
||||
* The actual declaration or definition is provided in arch/tls.h. The
|
||||
* actual implementation may be a MACRO or an inline function.
|
||||
* The actual definition is provided in arch/arch.h as a macro. The default
|
||||
* implementation provided here assume the arch has a "push down" stack.
|
||||
*/
|
||||
|
||||
#ifndef up_tls_info
|
||||
# ifdef CONFIG_TLS_ALIGNED
|
||||
# define up_tls_info() TLS_INFO((uintptr_t)up_getsp())
|
||||
# else
|
||||
# define up_tls_info() tls_get_info()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
* Multiple CPU support
|
||||
****************************************************************************/
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <nuttx/sched.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/lib/getopt.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <sched.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <arch/tls.h>
|
||||
#include <nuttx/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
|
@ -32,7 +32,6 @@
|
||||
#include <nuttx/sched.h>
|
||||
#include <nuttx/tls.h>
|
||||
#include <nuttx/pthread.h>
|
||||
#include <arch/tls.h>
|
||||
|
||||
#ifdef CONFIG_PTHREAD_CLEANUP
|
||||
|
||||
|
@ -26,7 +26,6 @@
|
||||
|
||||
#include <nuttx/sched.h>
|
||||
#include <nuttx/tls.h>
|
||||
#include <arch/tls.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
#include <arch/tls.h>
|
||||
|
||||
#if CONFIG_TLS_NELEM > 0
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
#include <arch/tls.h>
|
||||
|
||||
#ifndef CONFIG_TLS_ALIGNED
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
#include <arch/tls.h>
|
||||
|
||||
#if CONFIG_TLS_NELEM > 0
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/tls.h>
|
||||
#include <arch/tls.h>
|
||||
|
||||
#if CONFIG_TLS_NELEM > 0
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user