GRU_GSEG_PAGESIZE
return (void *)((unsigned long)p & ~(GRU_GSEG_PAGESIZE - 1));
return ((unsigned long)vaddr & (GRU_GSEG_PAGESIZE - 1)) - GRU_DS_BASE;
if (vma->vm_start & (GRU_GSEG_PAGESIZE - 1) ||
vma->vm_end & (GRU_GSEG_PAGESIZE - 1))
return (((unsigned long)cb - GRU_CB_BASE) % GRU_GSEG_PAGESIZE) /
#define GSEG_BASE(a) ((a) & ~(GRU_GSEG_PAGESIZE - 1))
#define CONTEXT_WINDOW_BYTES(th) (GRU_GSEG_PAGESIZE * (th))
#define THREAD_POINTER(p, th) (p + GRU_GSEG_PAGESIZE * (th))
#define GSEG_START(cb) ((void *)((unsigned long)(cb) & ~(GRU_GSEG_PAGESIZE - 1)))
zap_special_vma_range(gts->ts_vma, UGRUADDR(gts), GRU_GSEG_PAGESIZE);
remap_pfn_range(vma, vaddr & ~(GRU_GSEG_PAGESIZE - 1),
paddr >> PAGE_SHIFT, GRU_GSEG_PAGESIZE,
#define TSID(a, v) (((a) - (v)->vm_start) / GRU_GSEG_PAGESIZE)
(gts)->ts_tsid * GRU_GSEG_PAGESIZE)