1 1.6.58.3 pgoyette /* $NetBSD: proc.h,v 1.6.58.3 2019/01/18 08:50:17 pgoyette Exp $ */ 2 1.6 rmind 3 1.1 cherry #ifndef _IA64_PROC_H_ 4 1.1 cherry #define _IA64_PROC_H_ 5 1.1 cherry 6 1.1 cherry #include <machine/frame.h> 7 1.4 rmind 8 1.1 cherry /* 9 1.6.58.1 pgoyette * Process u-area is organised as follows: 10 1.6.58.1 pgoyette * 11 1.6.58.1 pgoyette * ------------------------------------------- 12 1.6.58.1 pgoyette * | | | | | 13 1.6.58.1 pgoyette * | bspstore sp | 16bytes | TF | PCB | 14 1.6.58.1 pgoyette * | ----> <--- | | | | 15 1.6.58.1 pgoyette * ------------------------------------------- 16 1.6.58.1 pgoyette * -----> Higher Addresses 17 1.6.58.1 pgoyette */ 18 1.6.58.1 pgoyette 19 1.6.58.1 pgoyette /* 20 1.2 skrll * Machine-dependent part of the lwp structure for ia64 21 1.1 cherry */ 22 1.1 cherry struct mdlwp { 23 1.1 cherry u_long md_flags; 24 1.1 cherry struct trapframe *md_tf; /* trap/syscall registers */ 25 1.3 kochi __volatile int md_astpending; /* AST pending for this process */ 26 1.6.58.1 pgoyette void *user_stack; 27 1.6.58.1 pgoyette uint64_t user_stack_size; 28 1.1 cherry }; 29 1.1 cherry 30 1.1 cherry /* 31 1.1 cherry * md_flags usage 32 1.1 cherry * -------------- 33 1.1 cherry * XXX: 34 1.1 cherry */ 35 1.1 cherry 36 1.1 cherry struct mdproc { 37 1.1 cherry /* XXX: Todo */ 38 1.5 kiyohara void (*md_syscall)(struct lwp *, u_int64_t, struct trapframe *); 39 1.1 cherry /* Syscall handling function */ 40 1.1 cherry }; 41 1.1 cherry 42 1.6.58.1 pgoyette #define UAREA_PCB_OFFSET (USPACE - sizeof(struct pcb)) 43 1.6.58.1 pgoyette #define UAREA_TF_OFFSET (UAREA_PCB_OFFSET - sizeof(struct trapframe)) 44 1.6.58.3 pgoyette #define UAREA_SP_OFFSET (UAREA_TF_OFFSET - 16) 45 1.6.58.1 pgoyette #define UAREA_BSPSTORE_OFFSET (0) 46 1.6.58.3 pgoyette #define UAREA_STACK_SIZE (USPACE - 16 - sizeof(struct trapframe) - sizeof(struct pcb)) 47 1.6.58.1 pgoyette 48 1.1 cherry #endif /* _IA64_PROC_H_ */ 49