mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 08:36:24 +08:00
arch/arm: Remove FAR and CODE from common/ and arm*/ folder
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
committed by
Petro Karashchenko
parent
7a0fd8d10f
commit
7c5b2e3305
@@ -65,7 +65,7 @@ do { \
|
||||
"\tmov %0, " PIC_REG_STRING "\n\t" \
|
||||
: "=r"(picbase) \
|
||||
); \
|
||||
*ppicbase = (FAR void*)picbase; \
|
||||
*ppicbase = (void *)picbase; \
|
||||
} while (0)
|
||||
|
||||
#define up_setpicbase(picbase) \
|
||||
@@ -129,12 +129,12 @@ struct group_addrenv_s
|
||||
{
|
||||
/* Level 1 page table entries for each group section */
|
||||
|
||||
FAR uintptr_t *text[ARCH_TEXT_NSECTS];
|
||||
FAR uintptr_t *data[ARCH_DATA_NSECTS];
|
||||
uintptr_t *text[ARCH_TEXT_NSECTS];
|
||||
uintptr_t *data[ARCH_DATA_NSECTS];
|
||||
#ifdef CONFIG_BUILD_KERNEL
|
||||
FAR uintptr_t *heap[ARCH_HEAP_NSECTS];
|
||||
uintptr_t *heap[ARCH_HEAP_NSECTS];
|
||||
#ifdef CONFIG_MM_SHM
|
||||
FAR uintptr_t *shm[ARCH_SHM_NSECTS];
|
||||
uintptr_t *shm[ARCH_SHM_NSECTS];
|
||||
#endif
|
||||
|
||||
/* Initial heap allocation (in bytes). This exists only provide an
|
||||
@@ -160,12 +160,12 @@ typedef struct group_addrenv_s group_addrenv_t;
|
||||
|
||||
struct save_addrenv_s
|
||||
{
|
||||
FAR uint32_t text[ARCH_TEXT_NSECTS];
|
||||
FAR uint32_t data[ARCH_DATA_NSECTS];
|
||||
uint32_t text[ARCH_TEXT_NSECTS];
|
||||
uint32_t data[ARCH_DATA_NSECTS];
|
||||
#ifdef CONFIG_BUILD_KERNEL
|
||||
FAR uint32_t heap[ARCH_HEAP_NSECTS];
|
||||
uint32_t heap[ARCH_HEAP_NSECTS];
|
||||
#ifdef CONFIG_MM_SHM
|
||||
FAR uint32_t shm[ARCH_SHM_NSECTS];
|
||||
uint32_t shm[ARCH_SHM_NSECTS];
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -295,7 +295,7 @@ struct xcptcontext
|
||||
* handling to support dynamically sized stacks for each thread.
|
||||
*/
|
||||
|
||||
FAR uintptr_t *ustack[ARCH_STACK_NSECTS];
|
||||
uintptr_t *ustack[ARCH_STACK_NSECTS];
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_KERNEL_STACK
|
||||
@@ -307,9 +307,9 @@ struct xcptcontext
|
||||
* stack in place.
|
||||
*/
|
||||
|
||||
FAR uint32_t *ustkptr; /* Saved user stack pointer */
|
||||
FAR uint32_t *kstack; /* Allocate base of the (aligned) kernel stack */
|
||||
FAR uint32_t *kstkptr; /* Saved kernel stack pointer */
|
||||
uint32_t *ustkptr; /* Saved user stack pointer */
|
||||
uint32_t *kstack; /* Allocate base of the (aligned) kernel stack */
|
||||
uint32_t *kstkptr; /* Saved kernel stack pointer */
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -118,7 +118,7 @@ struct xcptcontext
|
||||
* are pending signals to be processed.
|
||||
*/
|
||||
|
||||
FAR void *sigdeliver; /* Actual type is sig_deliver_t */
|
||||
void *sigdeliver; /* Actual type is sig_deliver_t */
|
||||
|
||||
/* These are saved copies of the context used during
|
||||
* signal processing.
|
||||
|
||||
@@ -294,7 +294,7 @@ struct xcptcontext
|
||||
* handling to support dynamically sized stacks for each thread.
|
||||
*/
|
||||
|
||||
FAR uintptr_t *ustack[ARCH_STACK_NSECTS];
|
||||
uintptr_t *ustack[ARCH_STACK_NSECTS];
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_KERNEL_STACK
|
||||
@@ -306,9 +306,9 @@ struct xcptcontext
|
||||
* stack in place.
|
||||
*/
|
||||
|
||||
FAR uint32_t *ustkptr; /* Saved user stack pointer */
|
||||
FAR uint32_t *kstack; /* Allocate base of the (aligned) kernel stack */
|
||||
FAR uint32_t *kstkptr; /* Saved kernel stack pointer */
|
||||
uint32_t *ustkptr; /* Saved user stack pointer */
|
||||
uint32_t *kstack; /* Allocate base of the (aligned) kernel stack */
|
||||
uint32_t *kstkptr; /* Saved kernel stack pointer */
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -123,7 +123,7 @@ struct xcptcontext
|
||||
* are pending signals to be processed.
|
||||
*/
|
||||
|
||||
FAR void *sigdeliver; /* Actual type is sig_deliver_t */
|
||||
void *sigdeliver; /* Actual type is sig_deliver_t */
|
||||
|
||||
/* These are saved copies of the context used during
|
||||
* signal processing.
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
#ifndef CONFIG_BUILD_FLAT
|
||||
/* SYS call 4:
|
||||
*
|
||||
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
|
||||
* void up_task_start(main_t taskentry, int argc, char *argv[])
|
||||
* noreturn_function;
|
||||
*/
|
||||
|
||||
@@ -115,8 +115,8 @@
|
||||
/* SYS call 6:
|
||||
*
|
||||
* void signal_handler(_sa_sigaction_t sighand,
|
||||
* int signo, FAR siginfo_t *info,
|
||||
* FAR void *ucontext);
|
||||
* int signo, siginfo_t *info,
|
||||
* void *ucontext);
|
||||
*/
|
||||
|
||||
#define SYS_signal_handler (6)
|
||||
|
||||
@@ -150,7 +150,7 @@ static bool g_pgwrap;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_allocpage(FAR struct tcb_s *tcb, FAR void **vpage)
|
||||
int up_allocpage(struct tcb_s *tcb, void **vpage)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
uintptr_t paddr;
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
bool up_checkmapping(FAR struct tcb_s *tcb)
|
||||
bool up_checkmapping(struct tcb_s *tcb)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
uint32_t *pte;
|
||||
|
||||
@@ -82,9 +82,9 @@ void up_initial_state(struct tcb_s *tcb)
|
||||
|
||||
/* Initialize the context registers to stack top */
|
||||
|
||||
xcp->regs = (FAR void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
xcp->regs = (void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
/* Initialize the xcp registers */
|
||||
|
||||
|
||||
@@ -134,10 +134,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -176,7 +176,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void arm_dumpnvic(FAR const char *msg)
|
||||
void arm_dumpnvic(const char *msg)
|
||||
{
|
||||
#ifdef CONFIG_DEBUG_INFO
|
||||
irqstate_t flags;
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_hardfault(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_hardfault(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t *regs = (uint32_t *)context;
|
||||
|
||||
|
||||
@@ -83,9 +83,9 @@ void up_initial_state(struct tcb_s *tcb)
|
||||
|
||||
/* Initialize the context registers to stack top */
|
||||
|
||||
xcp->regs = (FAR void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
xcp->regs = (void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
/* Initialize the xcp registers */
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ void arm_ramvec_initialize(void)
|
||||
* protect against NULL pointer references.
|
||||
*/
|
||||
|
||||
src = (const CODE up_vector_t *)getreg32(ARMV6M_SYSCON_VECTAB);
|
||||
src = (const up_vector_t *)getreg32(ARMV6M_SYSCON_VECTAB);
|
||||
dest = g_ram_vectors;
|
||||
|
||||
irqinfo("src=%p dest=%p\n", src, dest);
|
||||
|
||||
@@ -123,7 +123,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* And make sure that the saved context in the TCB is the same
|
||||
* as the interrupt return context.
|
||||
@@ -136,10 +136,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -172,7 +172,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* by the signal trampoline after the signal has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* Save the current register context location */
|
||||
|
||||
@@ -183,7 +183,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
@@ -276,7 +276,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* Save the current register context location */
|
||||
|
||||
@@ -287,7 +287,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs,
|
||||
@@ -318,7 +318,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* signal has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* And make sure that the saved context in the TCB is the
|
||||
* same as the interrupt return context.
|
||||
@@ -331,10 +331,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -388,7 +388,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* by the signal trampoline after the signal has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* Save the current register context location */
|
||||
|
||||
@@ -399,7 +399,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
|
||||
@@ -114,7 +114,7 @@ static void dispatch_syscall(void)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_svcall(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t *regs = (uint32_t *)context;
|
||||
uint32_t cmd;
|
||||
@@ -268,7 +268,7 @@ int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
|
||||
/* R0=SYS_task_start: This a user task start
|
||||
*
|
||||
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
|
||||
* void up_task_start(main_t taskentry, int argc, char *argv[])
|
||||
* noreturn_function;
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
@@ -335,7 +335,7 @@ int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
/* R0=SYS_signal_handler: This a user signal handler callback
|
||||
*
|
||||
* void signal_handler(_sa_sigaction_t sighand, int signo,
|
||||
* FAR siginfo_t *info, FAR void *ucontext);
|
||||
* siginfo_t *info, void *ucontext);
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
*
|
||||
@@ -408,7 +408,7 @@ int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
default:
|
||||
{
|
||||
#ifdef CONFIG_LIB_SYSCALL
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
int index = rtcb->xcp.nsyscalls;
|
||||
|
||||
/* Verify that the SYS call number is within range */
|
||||
|
||||
@@ -378,7 +378,7 @@ extern "C"
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_DEBUG_FEATURES
|
||||
void arm_dumpnvic(FAR const char *msg);
|
||||
void arm_dumpnvic(const char *msg);
|
||||
#else
|
||||
# define arm_dumpnvic(m)
|
||||
#endif
|
||||
|
||||
@@ -85,7 +85,7 @@ extern "C"
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_addrenv_create_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
int arm_addrenv_create_region(uintptr_t **list, unsigned int listlen,
|
||||
uintptr_t vaddr, size_t regionsize,
|
||||
uint32_t mmuflags);
|
||||
|
||||
@@ -97,7 +97,7 @@ int arm_addrenv_create_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void arm_addrenv_destroy_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
void arm_addrenv_destroy_region(uintptr_t **list, unsigned int listlen,
|
||||
uintptr_t vaddr, bool keep);
|
||||
|
||||
#undef EXTERN
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
static int up_addrenv_initdata(uintptr_t l2table)
|
||||
{
|
||||
irqstate_t flags;
|
||||
FAR uint32_t *virtptr;
|
||||
uint32_t *virtptr;
|
||||
uintptr_t paddr;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
uint32_t l1save;
|
||||
@@ -161,13 +161,13 @@ static int up_addrenv_initdata(uintptr_t l2table)
|
||||
* address
|
||||
*/
|
||||
|
||||
virtptr = (FAR uint32_t *)arm_pgvaddr(l2table);
|
||||
virtptr = (uint32_t *)arm_pgvaddr(l2table);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(l2table & ~SECTION_MASK, ARCH_SCRATCH_VBASE, MMU_MEMFLAGS);
|
||||
virtptr = (FAR uint32_t *)(ARCH_SCRATCH_VBASE | (l2table & SECTION_MASK));
|
||||
virtptr = (uint32_t *)(ARCH_SCRATCH_VBASE | (l2table & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
/* Invalidate D-Cache so that we read from the physical memory */
|
||||
@@ -183,12 +183,12 @@ static int up_addrenv_initdata(uintptr_t l2table)
|
||||
#ifdef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
/* Get the virtual address corresponding to the physical page address */
|
||||
|
||||
virtptr = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
virtptr = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE, MMU_MEMFLAGS);
|
||||
virtptr = (FAR uint32_t *)(ARCH_SCRATCH_VBASE | (paddr & SECTION_MASK));
|
||||
virtptr = (uint32_t *)(ARCH_SCRATCH_VBASE | (paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
/* Finally, after of all of that, we can initialize the tiny region at
|
||||
@@ -246,7 +246,7 @@ static int up_addrenv_initdata(uintptr_t l2table)
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_create(size_t textsize, size_t datasize, size_t heapsize,
|
||||
FAR group_addrenv_t *addrenv)
|
||||
group_addrenv_t *addrenv)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -349,7 +349,7 @@ errout:
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_destroy(FAR group_addrenv_t *addrenv)
|
||||
int up_addrenv_destroy(group_addrenv_t *addrenv)
|
||||
{
|
||||
binfo("addrenv=%p\n", addrenv);
|
||||
DEBUGASSERT(addrenv);
|
||||
@@ -401,14 +401,14 @@ int up_addrenv_destroy(FAR group_addrenv_t *addrenv)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_vtext(FAR group_addrenv_t *addrenv, FAR void **vtext)
|
||||
int up_addrenv_vtext(group_addrenv_t *addrenv, void **vtext)
|
||||
{
|
||||
binfo("return=%p\n", (FAR void *)CONFIG_ARCH_TEXT_VBASE);
|
||||
binfo("return=%p\n", (void *)CONFIG_ARCH_TEXT_VBASE);
|
||||
|
||||
/* Not much to do in this case */
|
||||
|
||||
DEBUGASSERT(addrenv && vtext);
|
||||
*vtext = (FAR void *)CONFIG_ARCH_TEXT_VBASE;
|
||||
*vtext = (void *)CONFIG_ARCH_TEXT_VBASE;
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -434,16 +434,16 @@ int up_addrenv_vtext(FAR group_addrenv_t *addrenv, FAR void **vtext)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_vdata(FAR group_addrenv_t *addrenv, uintptr_t textsize,
|
||||
FAR void **vdata)
|
||||
int up_addrenv_vdata(group_addrenv_t *addrenv, uintptr_t textsize,
|
||||
void **vdata)
|
||||
{
|
||||
binfo("return=%p\n",
|
||||
(FAR void *)(CONFIG_ARCH_DATA_VBASE + ARCH_DATA_RESERVE_SIZE));
|
||||
(void *)(CONFIG_ARCH_DATA_VBASE + ARCH_DATA_RESERVE_SIZE));
|
||||
|
||||
/* Not much to do in this case */
|
||||
|
||||
DEBUGASSERT(addrenv && vdata);
|
||||
*vdata = (FAR void *)(CONFIG_ARCH_DATA_VBASE + ARCH_DATA_RESERVE_SIZE);
|
||||
*vdata = (void *)(CONFIG_ARCH_DATA_VBASE + ARCH_DATA_RESERVE_SIZE);
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -467,7 +467,7 @@ int up_addrenv_vdata(FAR group_addrenv_t *addrenv, uintptr_t textsize,
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_BUILD_KERNEL
|
||||
ssize_t up_addrenv_heapsize(FAR const group_addrenv_t *addrenv)
|
||||
ssize_t up_addrenv_heapsize(const group_addrenv_t *addrenv)
|
||||
{
|
||||
DEBUGASSERT(addrenv);
|
||||
return (ssize_t)addrenv->heapsize;
|
||||
@@ -499,8 +499,8 @@ ssize_t up_addrenv_heapsize(FAR const group_addrenv_t *addrenv)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_select(FAR const group_addrenv_t *addrenv,
|
||||
FAR save_addrenv_t *oldenv)
|
||||
int up_addrenv_select(const group_addrenv_t *addrenv,
|
||||
save_addrenv_t *oldenv)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
uintptr_t paddr;
|
||||
@@ -636,7 +636,7 @@ int up_addrenv_select(FAR const group_addrenv_t *addrenv,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_restore(FAR const save_addrenv_t *oldenv)
|
||||
int up_addrenv_restore(const save_addrenv_t *oldenv)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
int i;
|
||||
@@ -704,7 +704,7 @@ int up_addrenv_restore(FAR const save_addrenv_t *oldenv)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_coherent(FAR const group_addrenv_t *addrenv)
|
||||
int up_addrenv_coherent(const group_addrenv_t *addrenv)
|
||||
{
|
||||
DEBUGASSERT(addrenv);
|
||||
|
||||
@@ -754,8 +754,8 @@ int up_addrenv_coherent(FAR const group_addrenv_t *addrenv)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_clone(FAR const group_addrenv_t *src,
|
||||
FAR group_addrenv_t *dest)
|
||||
int up_addrenv_clone(const group_addrenv_t *src,
|
||||
group_addrenv_t *dest)
|
||||
{
|
||||
binfo("src=%p dest=%p\n", src, dest);
|
||||
DEBUGASSERT(src && dest);
|
||||
@@ -787,7 +787,7 @@ int up_addrenv_clone(FAR const group_addrenv_t *src,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_attach(FAR struct task_group_s *group, FAR struct tcb_s *tcb)
|
||||
int up_addrenv_attach(struct task_group_s *group, struct tcb_s *tcb)
|
||||
{
|
||||
binfo("group=%p tcb=%p\n", group, tcb);
|
||||
|
||||
@@ -820,7 +820,7 @@ int up_addrenv_attach(FAR struct task_group_s *group, FAR struct tcb_s *tcb)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_detach(FAR struct task_group_s *group, FAR struct tcb_s *tcb)
|
||||
int up_addrenv_detach(struct task_group_s *group, struct tcb_s *tcb)
|
||||
{
|
||||
binfo("group=%p tcb=%p\n", group, tcb);
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_kstackalloc(FAR struct tcb_s *tcb)
|
||||
int up_addrenv_kstackalloc(struct tcb_s *tcb)
|
||||
{
|
||||
binfo("tcb=%p stacksize=%u\n", tcb, ARCH_KERNEL_STACKSIZE);
|
||||
|
||||
@@ -137,7 +137,7 @@ int up_addrenv_kstackalloc(FAR struct tcb_s *tcb)
|
||||
|
||||
/* Allocate the kernel stack */
|
||||
|
||||
tcb->xcp.kstack = (FAR uint32_t *)kmm_memalign(8, ARCH_KERNEL_STACKSIZE);
|
||||
tcb->xcp.kstack = (uint32_t *)kmm_memalign(8, ARCH_KERNEL_STACKSIZE);
|
||||
if (!tcb->xcp.kstack)
|
||||
{
|
||||
berr("ERROR: Failed to allocate the kernel stack\n");
|
||||
@@ -162,7 +162,7 @@ int up_addrenv_kstackalloc(FAR struct tcb_s *tcb)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_kstackfree(FAR struct tcb_s *tcb)
|
||||
int up_addrenv_kstackfree(struct tcb_s *tcb)
|
||||
{
|
||||
binfo("tcb=%p\n", tcb);
|
||||
DEBUGASSERT(tcb);
|
||||
|
||||
@@ -63,12 +63,12 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr)
|
||||
int up_shmat(uintptr_t *pages, unsigned int npages, uintptr_t vaddr)
|
||||
{
|
||||
FAR struct tcb_s *tcb = nxsched_self();
|
||||
FAR struct task_group_s *group;
|
||||
FAR uintptr_t *l1entry;
|
||||
FAR uint32_t *l2table;
|
||||
struct tcb_s *tcb = nxsched_self();
|
||||
struct task_group_s *group;
|
||||
uintptr_t *l1entry;
|
||||
uint32_t *l2table;
|
||||
irqstate_t flags;
|
||||
uintptr_t paddr;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
@@ -118,21 +118,21 @@ int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr)
|
||||
*/
|
||||
|
||||
flags = enter_critical_section();
|
||||
group->tg_addrenv.shm[shmndx] = (FAR uintptr_t *)paddr;
|
||||
group->tg_addrenv.shm[shmndx] = (uintptr_t *)paddr;
|
||||
|
||||
#ifdef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
/* Get the virtual address corresponding to the physical page
|
||||
* address.
|
||||
*/
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)
|
||||
l2table = (uint32_t *)
|
||||
(ARCH_SCRATCH_VBASE | (paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
@@ -154,14 +154,14 @@ int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr)
|
||||
* address.
|
||||
*/
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)
|
||||
l2table = (uint32_t *)
|
||||
(ARCH_SCRATCH_VBASE | (paddr & SECTION_MASK));
|
||||
#endif
|
||||
}
|
||||
@@ -216,10 +216,10 @@ int up_shmat(FAR uintptr_t *pages, unsigned int npages, uintptr_t vaddr)
|
||||
|
||||
int up_shmdt(uintptr_t vaddr, unsigned int npages)
|
||||
{
|
||||
FAR struct tcb_s *tcb = nxsched_self();
|
||||
FAR struct task_group_s *group;
|
||||
FAR uintptr_t *l1entry;
|
||||
FAR uint32_t *l2table;
|
||||
struct tcb_s *tcb = nxsched_self();
|
||||
struct task_group_s *group;
|
||||
uintptr_t *l1entry;
|
||||
uint32_t *l2table;
|
||||
irqstate_t flags;
|
||||
uintptr_t paddr;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
@@ -265,14 +265,14 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages)
|
||||
* address.
|
||||
*/
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)
|
||||
l2table = (uint32_t *)
|
||||
(ARCH_SCRATCH_VBASE | (paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_ustackalloc(FAR struct tcb_s *tcb, size_t stacksize)
|
||||
int up_addrenv_ustackalloc(struct tcb_s *tcb, size_t stacksize)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -175,7 +175,7 @@ int up_addrenv_ustackalloc(FAR struct tcb_s *tcb, size_t stacksize)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_ustackfree(FAR struct tcb_s *tcb)
|
||||
int up_addrenv_ustackfree(struct tcb_s *tcb)
|
||||
{
|
||||
binfo("tcb=%p\n", tcb);
|
||||
DEBUGASSERT(tcb);
|
||||
@@ -206,14 +206,14 @@ int up_addrenv_ustackfree(FAR struct tcb_s *tcb)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_vustack(FAR const struct tcb_s *tcb, FAR void **vstack)
|
||||
int up_addrenv_vustack(const struct tcb_s *tcb, void **vstack)
|
||||
{
|
||||
binfo("Return=%p\n", (FAR void *)CONFIG_ARCH_STACK_VBASE);
|
||||
binfo("Return=%p\n", (void *)CONFIG_ARCH_STACK_VBASE);
|
||||
|
||||
/* Not much to do in this case */
|
||||
|
||||
DEBUGASSERT(tcb);
|
||||
*vstack = (FAR void *)CONFIG_ARCH_STACK_VBASE;
|
||||
*vstack = (void *)CONFIG_ARCH_STACK_VBASE;
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ int up_addrenv_vustack(FAR const struct tcb_s *tcb, FAR void **vstack)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_addrenv_ustackselect(FAR const struct tcb_s *tcb)
|
||||
int up_addrenv_ustackselect(const struct tcb_s *tcb)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
uintptr_t paddr;
|
||||
|
||||
@@ -55,13 +55,13 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_addrenv_create_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
int arm_addrenv_create_region(uintptr_t **list, unsigned int listlen,
|
||||
uintptr_t vaddr, size_t regionsize,
|
||||
uint32_t mmuflags)
|
||||
{
|
||||
irqstate_t flags;
|
||||
uintptr_t paddr;
|
||||
FAR uint32_t *l2table;
|
||||
uint32_t *l2table;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
uint32_t l1save;
|
||||
#endif
|
||||
@@ -106,21 +106,21 @@ int arm_addrenv_create_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
}
|
||||
|
||||
DEBUGASSERT(MM_ISALIGNED(paddr));
|
||||
list[i] = (FAR uintptr_t *)paddr;
|
||||
list[i] = (uintptr_t *)paddr;
|
||||
|
||||
flags = enter_critical_section();
|
||||
|
||||
#ifdef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
/* Get the virtual address corresponding to the physical page address */
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
l2table = (uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
(paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
@@ -179,12 +179,12 @@ int arm_addrenv_create_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void arm_addrenv_destroy_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
void arm_addrenv_destroy_region(uintptr_t **list, unsigned int listlen,
|
||||
uintptr_t vaddr, bool keep)
|
||||
{
|
||||
irqstate_t flags;
|
||||
uintptr_t paddr;
|
||||
FAR uint32_t *l2table;
|
||||
uint32_t *l2table;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
uint32_t l1save;
|
||||
#endif
|
||||
@@ -211,14 +211,14 @@ void arm_addrenv_destroy_region(FAR uintptr_t **list, unsigned int listlen,
|
||||
* address
|
||||
*/
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
l2table = (uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
(paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ static bool g_pgwrap;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_allocpage(FAR struct tcb_s *tcb, FAR void **vpage)
|
||||
int arm_allocpage(struct tcb_s *tcb, void **vpage)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
uintptr_t paddr;
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
bool arm_checkmapping(FAR struct tcb_s *tcb)
|
||||
bool arm_checkmapping(struct tcb_s *tcb)
|
||||
{
|
||||
uintptr_t vaddr;
|
||||
uint32_t *pte;
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#if CONFIG_SMP_NCPUS > 1
|
||||
static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] =
|
||||
static const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] =
|
||||
{
|
||||
0
|
||||
, g_cpu1_idlestack
|
||||
@@ -108,7 +108,7 @@ static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] =
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size)
|
||||
int up_cpu_idlestack(int cpu, struct tcb_s *tcb, size_t stack_size)
|
||||
{
|
||||
#if CONFIG_SMP_NCPUS > 1
|
||||
uintptr_t stack_alloc;
|
||||
@@ -122,7 +122,7 @@ int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size)
|
||||
DEBUGASSERT(stack_alloc != 0 && STACK_ISALIGNED(stack_alloc));
|
||||
|
||||
tcb->adj_stack_size = SMP_STACK_SIZE;
|
||||
tcb->stack_alloc_ptr = (FAR void *)stack_alloc;
|
||||
tcb->stack_alloc_ptr = (void *)stack_alloc;
|
||||
tcb->stack_base_ptr = tcb->stack_alloc_ptr;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ bool up_cpu_pausereq(int cpu)
|
||||
|
||||
int up_cpu_paused(int cpu)
|
||||
{
|
||||
FAR struct tcb_s *tcb = this_task();
|
||||
struct tcb_s *tcb = this_task();
|
||||
|
||||
/* Update scheduler parameters */
|
||||
|
||||
@@ -188,7 +188,7 @@ int up_cpu_paused(int cpu)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_pause_handler(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_pause_handler(int irq, void *context, void *arg)
|
||||
{
|
||||
int cpu = this_cpu();
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#if 0 /* Was useful in solving some startup problems */
|
||||
static inline void arm_registerdump(FAR struct tcb_s *tcb)
|
||||
static inline void arm_registerdump(struct tcb_s *tcb)
|
||||
{
|
||||
int regndx;
|
||||
|
||||
@@ -90,9 +90,9 @@ static inline void arm_registerdump(FAR struct tcb_s *tcb)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_start_handler(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_start_handler(int irq, void *context, void *arg)
|
||||
{
|
||||
FAR struct tcb_s *tcb = this_task();
|
||||
struct tcb_s *tcb = this_task();
|
||||
|
||||
sinfo("CPU%d Started\n", this_cpu());
|
||||
|
||||
|
||||
@@ -82,9 +82,9 @@ void up_initial_state(struct tcb_s *tcb)
|
||||
|
||||
/* Initialize the context registers to stack top */
|
||||
|
||||
xcp->regs = (FAR void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
xcp->regs = (void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
/* Initialize the xcp registers */
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ static uintptr_t alloc_pgtable(void)
|
||||
{
|
||||
irqstate_t flags;
|
||||
uintptr_t paddr;
|
||||
FAR uint32_t *l2table;
|
||||
uint32_t *l2table;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
uint32_t l1save;
|
||||
#endif
|
||||
@@ -73,14 +73,14 @@ static uintptr_t alloc_pgtable(void)
|
||||
#ifdef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
/* Get the virtual address corresponding to the physical page address */
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
l2table = (uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
(paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
@@ -115,7 +115,7 @@ static uintptr_t alloc_pgtable(void)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int get_pgtable(FAR group_addrenv_t *addrenv, uintptr_t vaddr)
|
||||
static int get_pgtable(group_addrenv_t *addrenv, uintptr_t vaddr)
|
||||
{
|
||||
uint32_t l1entry;
|
||||
uintptr_t paddr;
|
||||
@@ -150,7 +150,7 @@ static int get_pgtable(FAR group_addrenv_t *addrenv, uintptr_t vaddr)
|
||||
*/
|
||||
|
||||
l1entry = paddr | MMU_L1_PGTABFLAGS;
|
||||
addrenv->heap[hpndx] = (FAR uintptr_t *)l1entry;
|
||||
addrenv->heap[hpndx] = (uintptr_t *)l1entry;
|
||||
|
||||
/* And instantiate the modified environment */
|
||||
|
||||
@@ -200,9 +200,9 @@ static int get_pgtable(FAR group_addrenv_t *addrenv, uintptr_t vaddr)
|
||||
|
||||
uintptr_t pgalloc(uintptr_t brkaddr, unsigned int npages)
|
||||
{
|
||||
FAR struct tcb_s *tcb = nxsched_self();
|
||||
FAR struct task_group_s *group;
|
||||
FAR uint32_t *l2table;
|
||||
struct tcb_s *tcb = nxsched_self();
|
||||
struct task_group_s *group;
|
||||
uint32_t *l2table;
|
||||
irqstate_t flags;
|
||||
uintptr_t paddr;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
@@ -250,7 +250,7 @@ uintptr_t pgalloc(uintptr_t brkaddr, unsigned int npages)
|
||||
#ifdef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
/* Get the virtual address corresponding to the physical page address */
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the level 2 page table into the "scratch" virtual
|
||||
* address space
|
||||
@@ -259,7 +259,7 @@ uintptr_t pgalloc(uintptr_t brkaddr, unsigned int npages)
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE,
|
||||
MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
l2table = (uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
(paddr & SECTION_MASK));
|
||||
#endif
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
uintptr_t arm_physpgaddr(uintptr_t vaddr)
|
||||
{
|
||||
FAR uint32_t *l2table;
|
||||
uint32_t *l2table;
|
||||
uintptr_t paddr;
|
||||
uint32_t l1entry;
|
||||
#ifndef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
@@ -84,14 +84,14 @@ uintptr_t arm_physpgaddr(uintptr_t vaddr)
|
||||
#ifdef CONFIG_ARCH_PGPOOL_MAPPING
|
||||
/* Get the virtual address of the base of level 2 page table */
|
||||
|
||||
l2table = (FAR uint32_t *)arm_pgvaddr(paddr);
|
||||
l2table = (uint32_t *)arm_pgvaddr(paddr);
|
||||
#else
|
||||
/* Temporarily map the page into the virtual address space */
|
||||
|
||||
l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK,
|
||||
ARCH_SCRATCH_VBASE, MMU_MEMFLAGS);
|
||||
l2table = (FAR uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
l2table = (uint32_t *)(ARCH_SCRATCH_VBASE |
|
||||
(paddr & SECTION_MASK));
|
||||
#endif
|
||||
if (l2table)
|
||||
|
||||
@@ -139,10 +139,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -184,7 +184,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
@@ -286,7 +286,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs,
|
||||
@@ -316,7 +316,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* And make sure that the saved context in the TCB is the
|
||||
* same as the interrupt return context.
|
||||
@@ -329,10 +329,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -397,7 +397,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
|
||||
@@ -196,7 +196,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
#ifdef CONFIG_LIB_SYSCALL
|
||||
case SYS_syscall_return:
|
||||
{
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
int index = (int)rtcb->xcp.nsyscalls - 1;
|
||||
|
||||
/* Make sure that there is a saved SYSCALL return address. */
|
||||
@@ -294,7 +294,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
/* R0=SYS_task_start: This a user task start
|
||||
*
|
||||
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
|
||||
* void up_task_start(main_t taskentry, int argc, char *argv[])
|
||||
* noreturn_function;
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
@@ -365,7 +365,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
/* R0=SYS_signal_handler: This a user signal handler callback
|
||||
*
|
||||
* void signal_handler(_sa_sigaction_t sighand, int signo,
|
||||
* FAR siginfo_t *info, FAR void *ucontext);
|
||||
* siginfo_t *info, void *ucontext);
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
*
|
||||
@@ -378,7 +378,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
case SYS_signal_handler:
|
||||
{
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
|
||||
/* Remember the caller's return address */
|
||||
|
||||
@@ -415,7 +415,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
DEBUGASSERT(rtcb->xcp.kstkptr == NULL &&
|
||||
rtcb->xcp.ustkptr != NULL);
|
||||
|
||||
rtcb->xcp.kstkptr = (FAR uint32_t *)regs[REG_SP];
|
||||
rtcb->xcp.kstkptr = (uint32_t *)regs[REG_SP];
|
||||
regs[REG_SP] = (uint32_t)rtcb->xcp.ustkptr;
|
||||
}
|
||||
#endif
|
||||
@@ -435,7 +435,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
case SYS_signal_handler_return:
|
||||
{
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
|
||||
/* Set up to return to the kernel-mode signal dispatching logic. */
|
||||
|
||||
@@ -473,7 +473,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
default:
|
||||
{
|
||||
#ifdef CONFIG_LIB_SYSCALL
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
int index = rtcb->xcp.nsyscalls;
|
||||
|
||||
/* Verify that the SYS call number is within range */
|
||||
@@ -513,7 +513,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
if (index == 0 && rtcb->xcp.kstack != NULL)
|
||||
{
|
||||
rtcb->xcp.ustkptr = (FAR uint32_t *)regs[REG_SP];
|
||||
rtcb->xcp.ustkptr = (uint32_t *)regs[REG_SP];
|
||||
regs[REG_SP] = (uint32_t)rtcb->xcp.kstack +
|
||||
ARCH_KERNEL_STACKSIZE;
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ static void sig_trampoline(void)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void _start(int argc, FAR char *argv[])
|
||||
void _start(int argc, char *argv[])
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
||||
@@ -797,7 +797,7 @@ uint32_t *arm_decodeirq(uint32_t *regs);
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
int arm_start_handler(int irq, FAR void *context, FAR void *arg);
|
||||
int arm_start_handler(int irq, void *context, void *arg);
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
@@ -821,7 +821,7 @@ int arm_start_handler(int irq, FAR void *context, FAR void *arg);
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
int arm_pause_handler(int irq, FAR void *context, FAR void *arg);
|
||||
int arm_pause_handler(int irq, void *context, void *arg);
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#if !defined(CONFIG_ARCH_PGPOOL_MAPPING) && defined(CONFIG_ARCH_USE_MMU)
|
||||
static inline uintptr_t arm_tmpmap(uintptr_t paddr, FAR uint32_t *l1save)
|
||||
static inline uintptr_t arm_tmpmap(uintptr_t paddr, uint32_t *l1save)
|
||||
{
|
||||
*l1save = mmu_l1_getentry(ARCH_SCRATCH_VBASE);
|
||||
mmu_l1_setentry(paddr & ~SECTION_MASK, ARCH_SCRATCH_VBASE, MMU_MEMFLAGS);
|
||||
@@ -138,7 +138,7 @@ static inline bool arm_uservaddr(uintptr_t vaddr)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static inline void set_l2_entry(FAR uint32_t *l2table, uintptr_t paddr,
|
||||
static inline void set_l2_entry(uint32_t *l2table, uintptr_t paddr,
|
||||
uintptr_t vaddr, uint32_t mmuflags)
|
||||
{
|
||||
uint32_t index;
|
||||
@@ -163,7 +163,7 @@ static inline void set_l2_entry(FAR uint32_t *l2table, uintptr_t paddr,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static inline void clr_l2_entry(FAR uint32_t *l2table, uintptr_t vaddr)
|
||||
static inline void clr_l2_entry(uint32_t *l2table, uintptr_t vaddr)
|
||||
{
|
||||
uint32_t index;
|
||||
|
||||
@@ -188,7 +188,7 @@ static inline void clr_l2_entry(FAR uint32_t *l2table, uintptr_t vaddr)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static inline uintptr_t get_l2_entry(FAR uint32_t *l2table, uintptr_t vaddr)
|
||||
static inline uintptr_t get_l2_entry(uint32_t *l2table, uintptr_t vaddr)
|
||||
{
|
||||
uint32_t index;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_busfault(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_busfault(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t cfsr = getreg32(NVIC_CFAULTS);
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_hardfault(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_hardfault(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t hfsr = getreg32(NVIC_HFAULTS);
|
||||
uint32_t cfsr = getreg32(NVIC_CFAULTS);
|
||||
|
||||
@@ -84,9 +84,9 @@ void up_initial_state(struct tcb_s *tcb)
|
||||
|
||||
/* Initialize the context registers to stack top */
|
||||
|
||||
xcp->regs = (FAR void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
xcp->regs = (void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
/* Initialize the xcp registers */
|
||||
|
||||
|
||||
@@ -62,8 +62,8 @@
|
||||
|
||||
/* SYSLOG channel methods */
|
||||
|
||||
static int itm_putc(FAR struct syslog_channel_s *channel, int ch);
|
||||
static int itm_flush(FAR struct syslog_channel_s *channel);
|
||||
static int itm_putc(struct syslog_channel_s *channel, int ch);
|
||||
static int itm_flush(struct syslog_channel_s *channel);
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
@@ -97,7 +97,7 @@ static const struct syslog_channel_s g_itm_channel =
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int itm_putc(FAR struct syslog_channel_s *channel, int ch)
|
||||
static int itm_putc(struct syslog_channel_s *channel, int ch)
|
||||
{
|
||||
UNUSED(channel);
|
||||
|
||||
@@ -127,7 +127,7 @@ static int itm_putc(FAR struct syslog_channel_s *channel, int ch)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static int itm_flush(FAR struct syslog_channel_s *channel)
|
||||
static int itm_flush(struct syslog_channel_s *channel)
|
||||
{
|
||||
UNUSED(channel);
|
||||
return OK;
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_memfault(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_memfault(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t cfsr = getreg32(NVIC_CFAULTS);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ static uint32_t g_cpu_freq;
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
void up_perf_init(FAR void *arg)
|
||||
void up_perf_init(void *arg)
|
||||
{
|
||||
g_cpu_freq = (uint32_t)(uintptr_t)arg;
|
||||
|
||||
@@ -66,7 +66,7 @@ uint32_t up_perf_gettime(void)
|
||||
return getreg32(DWT_CYCCNT);
|
||||
}
|
||||
|
||||
void up_perf_convert(uint32_t elapsed, FAR struct timespec *ts)
|
||||
void up_perf_convert(uint32_t elapsed, struct timespec *ts)
|
||||
{
|
||||
uint32_t left;
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ void arm_ramvec_initialize(void)
|
||||
* protect against NULL pointer references.
|
||||
*/
|
||||
|
||||
src = (const CODE up_vector_t *)getreg32(NVIC_VECTAB);
|
||||
src = (const up_vector_t *)getreg32(NVIC_VECTAB);
|
||||
dest = g_ram_vectors;
|
||||
|
||||
irqinfo("src=%p dest=%p\n", src, dest);
|
||||
|
||||
@@ -124,7 +124,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* And make sure that the saved context in the TCB is the same
|
||||
* as the interrupt return context.
|
||||
@@ -137,10 +137,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -177,7 +177,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* by the signal trampoline after the signal has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* Save the current register context location */
|
||||
|
||||
@@ -188,7 +188,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
@@ -285,7 +285,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* Save the current register context location */
|
||||
|
||||
@@ -296,7 +296,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs,
|
||||
@@ -331,7 +331,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* signal has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* And make sure that the saved context in the TCB is the
|
||||
* same as the interrupt return context.
|
||||
@@ -344,10 +344,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* been delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -405,7 +405,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* by the signal trampoline after the signal has been delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.sigdeliver = (FAR void *)sigdeliver;
|
||||
tcb->xcp.sigdeliver = (void *)sigdeliver;
|
||||
|
||||
/* Save the current register context location */
|
||||
|
||||
@@ -416,7 +416,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
|
||||
@@ -122,7 +122,7 @@ static void dispatch_syscall(void)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_svcall(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t *regs = (uint32_t *)context;
|
||||
uint32_t cmd;
|
||||
@@ -282,7 +282,7 @@ int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
|
||||
/* R0=SYS_task_start: This a user task start
|
||||
*
|
||||
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
|
||||
* void up_task_start(main_t taskentry, int argc, char *argv[])
|
||||
* noreturn_function;
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
@@ -349,7 +349,7 @@ int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
/* R0=SYS_signal_handler: This a user signal handler callback
|
||||
*
|
||||
* void signal_handler(_sa_sigaction_t sighand, int signo,
|
||||
* FAR siginfo_t *info, FAR void *ucontext);
|
||||
* siginfo_t *info, void *ucontext);
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
*
|
||||
@@ -422,7 +422,7 @@ int arm_svcall(int irq, FAR void *context, FAR void *arg)
|
||||
default:
|
||||
{
|
||||
#ifdef CONFIG_LIB_SYSCALL
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
int index = rtcb->xcp.nsyscalls;
|
||||
|
||||
/* Verify that the SYS call number is within range */
|
||||
|
||||
@@ -57,15 +57,15 @@ struct systick_lowerhalf_s
|
||||
* Private Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
static int systick_start(FAR struct timer_lowerhalf_s *lower_);
|
||||
static int systick_stop(FAR struct timer_lowerhalf_s *lower_);
|
||||
static int systick_getstatus(FAR struct timer_lowerhalf_s *lower_,
|
||||
FAR struct timer_status_s *status);
|
||||
static int systick_settimeout(FAR struct timer_lowerhalf_s *lower_,
|
||||
static int systick_start(struct timer_lowerhalf_s *lower_);
|
||||
static int systick_stop(struct timer_lowerhalf_s *lower_);
|
||||
static int systick_getstatus(struct timer_lowerhalf_s *lower_,
|
||||
struct timer_status_s *status);
|
||||
static int systick_settimeout(struct timer_lowerhalf_s *lower_,
|
||||
uint32_t timeout);
|
||||
static void systick_setcallback(FAR struct timer_lowerhalf_s *lower_,
|
||||
tccb_t callback, FAR void *arg);
|
||||
static int systick_maxtimeout(FAR struct timer_lowerhalf_s *lower_,
|
||||
static void systick_setcallback(struct timer_lowerhalf_s *lower_,
|
||||
tccb_t callback, void *arg);
|
||||
static int systick_maxtimeout(struct timer_lowerhalf_s *lower_,
|
||||
uint32_t *maxtimeout);
|
||||
|
||||
/****************************************************************************
|
||||
@@ -118,21 +118,21 @@ static bool systick_irq_pending(struct systick_lowerhalf_s *lower)
|
||||
}
|
||||
}
|
||||
|
||||
static int systick_start(FAR struct timer_lowerhalf_s *lower_)
|
||||
static int systick_start(struct timer_lowerhalf_s *lower_)
|
||||
{
|
||||
putreg32(0, NVIC_SYSTICK_CURRENT);
|
||||
modifyreg32(NVIC_SYSTICK_CTRL, 0, NVIC_SYSTICK_CTRL_ENABLE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int systick_stop(FAR struct timer_lowerhalf_s *lower_)
|
||||
static int systick_stop(struct timer_lowerhalf_s *lower_)
|
||||
{
|
||||
modifyreg32(NVIC_SYSTICK_CTRL, NVIC_SYSTICK_CTRL_ENABLE, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int systick_getstatus(FAR struct timer_lowerhalf_s *lower_,
|
||||
FAR struct timer_status_s *status)
|
||||
static int systick_getstatus(struct timer_lowerhalf_s *lower_,
|
||||
struct timer_status_s *status)
|
||||
{
|
||||
struct systick_lowerhalf_s *lower = (struct systick_lowerhalf_s *)lower_;
|
||||
irqstate_t flags = enter_critical_section();
|
||||
@@ -165,7 +165,7 @@ static int systick_getstatus(FAR struct timer_lowerhalf_s *lower_,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int systick_settimeout(FAR struct timer_lowerhalf_s *lower_,
|
||||
static int systick_settimeout(struct timer_lowerhalf_s *lower_,
|
||||
uint32_t timeout)
|
||||
{
|
||||
struct systick_lowerhalf_s *lower = (struct systick_lowerhalf_s *)lower_;
|
||||
@@ -198,8 +198,8 @@ static int systick_settimeout(FAR struct timer_lowerhalf_s *lower_,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void systick_setcallback(FAR struct timer_lowerhalf_s *lower_,
|
||||
CODE tccb_t callback, FAR void *arg)
|
||||
static void systick_setcallback(struct timer_lowerhalf_s *lower_,
|
||||
tccb_t callback, void *arg)
|
||||
{
|
||||
struct systick_lowerhalf_s *lower = (struct systick_lowerhalf_s *)lower_;
|
||||
|
||||
@@ -209,7 +209,7 @@ static void systick_setcallback(FAR struct timer_lowerhalf_s *lower_,
|
||||
leave_critical_section(flags);
|
||||
}
|
||||
|
||||
static int systick_maxtimeout(FAR struct timer_lowerhalf_s *lower_,
|
||||
static int systick_maxtimeout(struct timer_lowerhalf_s *lower_,
|
||||
uint32_t *maxtimeout)
|
||||
{
|
||||
uint64_t maxtimeout64 = usec_from_count(
|
||||
@@ -227,7 +227,7 @@ static int systick_maxtimeout(FAR struct timer_lowerhalf_s *lower_,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int systick_interrupt(int irq, FAR void *context, FAR void *arg)
|
||||
static int systick_interrupt(int irq, void *context, void *arg)
|
||||
{
|
||||
struct systick_lowerhalf_s *lower = arg;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int arm_usagefault(int irq, FAR void *context, FAR void *arg)
|
||||
int arm_usagefault(int irq, void *context, void *arg)
|
||||
{
|
||||
uint32_t cfsr = getreg32(NVIC_CFAULTS);
|
||||
|
||||
|
||||
@@ -82,9 +82,9 @@ void up_initial_state(struct tcb_s *tcb)
|
||||
|
||||
/* Initialize the context registers to stack top */
|
||||
|
||||
xcp->regs = (FAR void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
xcp->regs = (void *)((uint32_t)tcb->stack_base_ptr +
|
||||
tcb->adj_stack_size -
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
/* Initialize the xcp registers */
|
||||
|
||||
|
||||
@@ -134,10 +134,10 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
CURRENT_REGS = (FAR void *)
|
||||
CURRENT_REGS = (void *)
|
||||
((uint32_t)CURRENT_REGS -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy((FAR uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
memcpy((uint32_t *)CURRENT_REGS, tcb->xcp.saved_regs,
|
||||
XCPTCONTEXT_SIZE);
|
||||
|
||||
CURRENT_REGS[REG_SP] = (uint32_t)CURRENT_REGS +
|
||||
@@ -180,7 +180,7 @@ void up_schedule_sigaction(struct tcb_s *tcb, sig_deliver_t sigdeliver)
|
||||
* delivered.
|
||||
*/
|
||||
|
||||
tcb->xcp.regs = (FAR void *)
|
||||
tcb->xcp.regs = (void *)
|
||||
((uint32_t)tcb->xcp.regs -
|
||||
(uint32_t)XCPTCONTEXT_SIZE);
|
||||
memcpy(tcb->xcp.regs, tcb->xcp.saved_regs, XCPTCONTEXT_SIZE);
|
||||
|
||||
@@ -193,7 +193,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
#ifdef CONFIG_LIB_SYSCALL
|
||||
case SYS_syscall_return:
|
||||
{
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
int index = (int)rtcb->xcp.nsyscalls - 1;
|
||||
|
||||
/* Make sure that there is a saved SYSCALL return address. */
|
||||
@@ -291,7 +291,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
/* R0=SYS_task_start: This a user task start
|
||||
*
|
||||
* void up_task_start(main_t taskentry, int argc, FAR char *argv[])
|
||||
* void up_task_start(main_t taskentry, int argc, char *argv[])
|
||||
* noreturn_function;
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
@@ -362,7 +362,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
/* R0=SYS_signal_handler: This a user signal handler callback
|
||||
*
|
||||
* void signal_handler(_sa_sigaction_t sighand, int signo,
|
||||
* FAR siginfo_t *info, FAR void *ucontext);
|
||||
* siginfo_t *info, void *ucontext);
|
||||
*
|
||||
* At this point, the following values are saved in context:
|
||||
*
|
||||
@@ -375,7 +375,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
case SYS_signal_handler:
|
||||
{
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
|
||||
/* Remember the caller's return address */
|
||||
|
||||
@@ -412,7 +412,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
DEBUGASSERT(rtcb->xcp.kstkptr == NULL &&
|
||||
rtcb->xcp.ustkptr != NULL);
|
||||
|
||||
rtcb->xcp.kstkptr = (FAR uint32_t *)regs[REG_SP];
|
||||
rtcb->xcp.kstkptr = (uint32_t *)regs[REG_SP];
|
||||
regs[REG_SP] = (uint32_t)rtcb->xcp.ustkptr;
|
||||
}
|
||||
#endif
|
||||
@@ -432,7 +432,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
case SYS_signal_handler_return:
|
||||
{
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
|
||||
/* Set up to return to the kernel-mode signal dispatching logic. */
|
||||
|
||||
@@ -470,7 +470,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
default:
|
||||
{
|
||||
#ifdef CONFIG_LIB_SYSCALL
|
||||
FAR struct tcb_s *rtcb = nxsched_self();
|
||||
struct tcb_s *rtcb = nxsched_self();
|
||||
int index = rtcb->xcp.nsyscalls;
|
||||
|
||||
/* Verify that the SYS call number is within range */
|
||||
@@ -510,7 +510,7 @@ uint32_t *arm_syscall(uint32_t *regs)
|
||||
|
||||
if (index == 0 && rtcb->xcp.kstack != NULL)
|
||||
{
|
||||
rtcb->xcp.ustkptr = (FAR uint32_t *)regs[REG_SP];
|
||||
rtcb->xcp.ustkptr = (uint32_t *)regs[REG_SP];
|
||||
regs[REG_SP] = (uint32_t)rtcb->xcp.kstack +
|
||||
ARCH_KERNEL_STACKSIZE;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user