Lines Matching refs:task
206 static u16 get_segment_reg(struct task_struct *task, unsigned long offset) in get_segment_reg() argument
213 retval = *pt_regs_access(task_pt_regs(task), offset); in get_segment_reg()
215 if (task == current) in get_segment_reg()
216 retval = get_user_gs(task_pt_regs(task)); in get_segment_reg()
218 retval = task_user_gs(task); in get_segment_reg()
223 static int set_segment_reg(struct task_struct *task, in set_segment_reg() argument
248 *pt_regs_access(task_pt_regs(task), offset) = value; in set_segment_reg()
252 if (task == current) in set_segment_reg()
253 set_user_gs(task_pt_regs(task), value); in set_segment_reg()
255 task_user_gs(task) = value; in set_segment_reg()
271 static u16 get_segment_reg(struct task_struct *task, unsigned long offset) in get_segment_reg() argument
280 if (task == current) { in get_segment_reg()
285 return task->thread.fsindex; in get_segment_reg()
287 if (task == current) { in get_segment_reg()
291 return task->thread.gsindex; in get_segment_reg()
293 if (task == current) { in get_segment_reg()
297 return task->thread.ds; in get_segment_reg()
299 if (task == current) { in get_segment_reg()
303 return task->thread.es; in get_segment_reg()
309 return *pt_regs_access(task_pt_regs(task), offset); in get_segment_reg()
312 static int set_segment_reg(struct task_struct *task, in set_segment_reg() argument
327 if ((value == FS_TLS_SEL && task->thread.fsindex == 0 && in set_segment_reg()
328 task->thread.fs != 0) || in set_segment_reg()
329 (value == 0 && task->thread.fsindex == FS_TLS_SEL && in set_segment_reg()
330 task->thread.fs == 0)) in set_segment_reg()
332 task->thread.fsindex = value; in set_segment_reg()
333 if (task == current) in set_segment_reg()
334 loadsegment(fs, task->thread.fsindex); in set_segment_reg()
341 if ((value == GS_TLS_SEL && task->thread.gsindex == 0 && in set_segment_reg()
342 task->thread.gs != 0) || in set_segment_reg()
343 (value == 0 && task->thread.gsindex == GS_TLS_SEL && in set_segment_reg()
344 task->thread.gs == 0)) in set_segment_reg()
346 task->thread.gsindex = value; in set_segment_reg()
347 if (task == current) in set_segment_reg()
348 load_gs_index(task->thread.gsindex); in set_segment_reg()
351 task->thread.ds = value; in set_segment_reg()
352 if (task == current) in set_segment_reg()
353 loadsegment(ds, task->thread.ds); in set_segment_reg()
356 task->thread.es = value; in set_segment_reg()
357 if (task == current) in set_segment_reg()
358 loadsegment(es, task->thread.es); in set_segment_reg()
367 task_pt_regs(task)->cs = value; in set_segment_reg()
372 task_pt_regs(task)->ss = value; in set_segment_reg()
381 static unsigned long get_flags(struct task_struct *task) in get_flags() argument
383 unsigned long retval = task_pt_regs(task)->flags; in get_flags()
388 if (test_tsk_thread_flag(task, TIF_FORCED_TF)) in get_flags()
394 static int set_flags(struct task_struct *task, unsigned long value) in set_flags() argument
396 struct pt_regs *regs = task_pt_regs(task); in set_flags()
404 clear_tsk_thread_flag(task, TIF_FORCED_TF); in set_flags()
405 else if (test_tsk_thread_flag(task, TIF_FORCED_TF)) in set_flags()
456 static unsigned long getreg(struct task_struct *task, unsigned long offset) in getreg() argument
465 return get_segment_reg(task, offset); in getreg()
468 return get_flags(task); in getreg()
477 unsigned int seg = task->thread.fsindex; in getreg()
478 if (task->thread.fs != 0) in getreg()
479 return task->thread.fs; in getreg()
480 if (task == current) in getreg()
484 return get_desc_base(&task->thread.tls_array[FS_TLS]); in getreg()
490 unsigned int seg = task->thread.gsindex; in getreg()
491 if (task->thread.gs != 0) in getreg()
492 return task->thread.gs; in getreg()
493 if (task == current) in getreg()
497 return get_desc_base(&task->thread.tls_array[GS_TLS]); in getreg()
502 return *pt_regs_access(task_pt_regs(task), offset); in getreg()
1394 const struct user_regset_view *task_user_regset_view(struct task_struct *task) in task_user_regset_view() argument
1397 if (test_tsk_thread_flag(task, TIF_IA32)) in task_user_regset_view()