Lines Matching refs:task
204 static u16 get_segment_reg(struct task_struct *task, unsigned long offset) in get_segment_reg() argument
211 retval = *pt_regs_access(task_pt_regs(task), offset); in get_segment_reg()
213 if (task == current) in get_segment_reg()
214 retval = get_user_gs(task_pt_regs(task)); in get_segment_reg()
216 retval = task_user_gs(task); in get_segment_reg()
221 static int set_segment_reg(struct task_struct *task, in set_segment_reg() argument
246 *pt_regs_access(task_pt_regs(task), offset) = value; in set_segment_reg()
250 if (task == current) in set_segment_reg()
251 set_user_gs(task_pt_regs(task), value); in set_segment_reg()
253 task_user_gs(task) = value; in set_segment_reg()
269 static u16 get_segment_reg(struct task_struct *task, unsigned long offset) in get_segment_reg() argument
278 if (task == current) { in get_segment_reg()
283 return task->thread.fsindex; in get_segment_reg()
285 if (task == current) { in get_segment_reg()
289 return task->thread.gsindex; in get_segment_reg()
291 if (task == current) { in get_segment_reg()
295 return task->thread.ds; in get_segment_reg()
297 if (task == current) { in get_segment_reg()
301 return task->thread.es; in get_segment_reg()
307 return *pt_regs_access(task_pt_regs(task), offset); in get_segment_reg()
310 static int set_segment_reg(struct task_struct *task, in set_segment_reg() argument
325 if ((value == FS_TLS_SEL && task->thread.fsindex == 0 && in set_segment_reg()
326 task->thread.fs != 0) || in set_segment_reg()
327 (value == 0 && task->thread.fsindex == FS_TLS_SEL && in set_segment_reg()
328 task->thread.fs == 0)) in set_segment_reg()
330 task->thread.fsindex = value; in set_segment_reg()
331 if (task == current) in set_segment_reg()
332 loadsegment(fs, task->thread.fsindex); in set_segment_reg()
339 if ((value == GS_TLS_SEL && task->thread.gsindex == 0 && in set_segment_reg()
340 task->thread.gs != 0) || in set_segment_reg()
341 (value == 0 && task->thread.gsindex == GS_TLS_SEL && in set_segment_reg()
342 task->thread.gs == 0)) in set_segment_reg()
344 task->thread.gsindex = value; in set_segment_reg()
345 if (task == current) in set_segment_reg()
346 load_gs_index(task->thread.gsindex); in set_segment_reg()
349 task->thread.ds = value; in set_segment_reg()
350 if (task == current) in set_segment_reg()
351 loadsegment(ds, task->thread.ds); in set_segment_reg()
354 task->thread.es = value; in set_segment_reg()
355 if (task == current) in set_segment_reg()
356 loadsegment(es, task->thread.es); in set_segment_reg()
365 task_pt_regs(task)->cs = value; in set_segment_reg()
370 task_pt_regs(task)->ss = value; in set_segment_reg()
379 static unsigned long get_flags(struct task_struct *task) in get_flags() argument
381 unsigned long retval = task_pt_regs(task)->flags; in get_flags()
386 if (test_tsk_thread_flag(task, TIF_FORCED_TF)) in get_flags()
392 static int set_flags(struct task_struct *task, unsigned long value) in set_flags() argument
394 struct pt_regs *regs = task_pt_regs(task); in set_flags()
402 clear_tsk_thread_flag(task, TIF_FORCED_TF); in set_flags()
403 else if (test_tsk_thread_flag(task, TIF_FORCED_TF)) in set_flags()
454 static unsigned long getreg(struct task_struct *task, unsigned long offset) in getreg() argument
463 return get_segment_reg(task, offset); in getreg()
466 return get_flags(task); in getreg()
475 unsigned int seg = task->thread.fsindex; in getreg()
476 if (task->thread.fs != 0) in getreg()
477 return task->thread.fs; in getreg()
478 if (task == current) in getreg()
482 return get_desc_base(&task->thread.tls_array[FS_TLS]); in getreg()
488 unsigned int seg = task->thread.gsindex; in getreg()
489 if (task->thread.gs != 0) in getreg()
490 return task->thread.gs; in getreg()
491 if (task == current) in getreg()
495 return get_desc_base(&task->thread.tls_array[GS_TLS]); in getreg()
500 return *pt_regs_access(task_pt_regs(task), offset); in getreg()
1402 const struct user_regset_view *task_user_regset_view(struct task_struct *task) in task_user_regset_view() argument
1405 if (test_tsk_thread_flag(task, TIF_IA32)) in task_user_regset_view()