1/*
2 * Defines a layout of L1 scratchpad memory that userspace can rely on.
3 *
4 * Copyright 2006-2008 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#ifndef _L1LAYOUT_H_
10#define _L1LAYOUT_H_
11
12#include <asm/blackfin.h>
13
14#ifndef CONFIG_SMP
15#ifndef __ASSEMBLY__
16
17/* Data that is "mapped" into the process VM at the start of the L1 scratch
18   memory, so that each process can access it at a fixed address.  Used for
19   stack checking.  */
20struct l1_scratch_task_info
21{
22	/* Points to the start of the stack.  */
23	void *stack_start;
24	/* Not updated by the kernel; a user process can modify this to
25	   keep track of the lowest address of the stack pointer during its
26	   runtime.  */
27	void *lowest_sp;
28};
29
30/* A pointer to the structure in memory.  */
31#define L1_SCRATCH_TASK_INFO ((struct l1_scratch_task_info *)\
32						get_l1_scratch_start())
33
34#endif
35#endif
36
37#endif
38