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