diff options
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r-- | include/asm-sparc64/asm_offsets.h | 816 | ||||
-rw-r--r-- | include/asm-sparc64/audioio.h | 6 | ||||
-rw-r--r-- | include/asm-sparc64/checksum.h | 15 | ||||
-rw-r--r-- | include/asm-sparc64/fpumacro.h | 40 | ||||
-rw-r--r-- | include/asm-sparc64/ide.h | 61 | ||||
-rw-r--r-- | include/asm-sparc64/io.h | 8 | ||||
-rw-r--r-- | include/asm-sparc64/md.h | 4 | ||||
-rw-r--r-- | include/asm-sparc64/mmu_context.h | 32 | ||||
-rw-r--r-- | include/asm-sparc64/namei.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/pgtable.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/processor.h | 44 | ||||
-rw-r--r-- | include/asm-sparc64/sab82532.h | 8 | ||||
-rw-r--r-- | include/asm-sparc64/semaphore.h | 60 | ||||
-rw-r--r-- | include/asm-sparc64/softirq.h | 6 | ||||
-rw-r--r-- | include/asm-sparc64/spinlock.h | 53 | ||||
-rw-r--r-- | include/asm-sparc64/uaccess.h | 47 |
16 files changed, 638 insertions, 566 deletions
diff --git a/include/asm-sparc64/asm_offsets.h b/include/asm-sparc64/asm_offsets.h index 3301515c5..6f5cb96d9 100644 --- a/include/asm-sparc64/asm_offsets.h +++ b/include/asm-sparc64/asm_offsets.h @@ -12,177 +12,177 @@ #define ASIZ_task_flags 0x00000008 #define AOFF_task_sigpending 0x00000010 #define ASIZ_task_sigpending 0x00000004 -#define AOFF_task_addr_limit 0x00000018 -#define ASIZ_task_addr_limit 0x00000008 -#define AOFF_task_exec_domain 0x00000020 +#define AOFF_task_addr_limit 0x00000014 +#define ASIZ_task_addr_limit 0x00000001 +#define AOFF_task_exec_domain 0x00000018 #define ASIZ_task_exec_domain 0x00000008 -#define AOFF_task_need_resched 0x00000028 +#define AOFF_task_need_resched 0x00000020 #define ASIZ_task_need_resched 0x00000008 -#define AOFF_task_counter 0x00000030 +#define AOFF_task_counter 0x00000028 #define ASIZ_task_counter 0x00000008 -#define AOFF_task_priority 0x00000038 +#define AOFF_task_priority 0x00000030 #define ASIZ_task_priority 0x00000008 -#define AOFF_task_avg_slice 0x00000040 +#define AOFF_task_avg_slice 0x00000038 #define ASIZ_task_avg_slice 0x00000008 -#define AOFF_task_has_cpu 0x00000048 +#define AOFF_task_has_cpu 0x00000040 #define ASIZ_task_has_cpu 0x00000004 -#define AOFF_task_processor 0x0000004c +#define AOFF_task_processor 0x00000044 #define ASIZ_task_processor 0x00000004 -#define AOFF_task_last_processor 0x00000050 +#define AOFF_task_last_processor 0x00000048 #define ASIZ_task_last_processor 0x00000004 -#define AOFF_task_lock_depth 0x00000054 +#define AOFF_task_lock_depth 0x0000004c #define ASIZ_task_lock_depth 0x00000004 -#define AOFF_task_next_task 0x00000058 +#define AOFF_task_next_task 0x00000050 #define ASIZ_task_next_task 0x00000008 -#define AOFF_task_prev_task 0x00000060 +#define AOFF_task_prev_task 0x00000058 #define ASIZ_task_prev_task 0x00000008 -#define AOFF_task_next_run 0x00000068 +#define AOFF_task_next_run 0x00000060 #define ASIZ_task_next_run 0x00000008 -#define AOFF_task_prev_run 0x00000070 +#define AOFF_task_prev_run 0x00000068 #define ASIZ_task_prev_run 0x00000008 -#define AOFF_task_binfmt 0x00000078 +#define AOFF_task_binfmt 0x00000070 #define ASIZ_task_binfmt 0x00000008 -#define AOFF_task_exit_code 0x00000080 +#define AOFF_task_exit_code 0x00000078 #define ASIZ_task_exit_code 0x00000004 -#define AOFF_task_exit_signal 0x00000084 +#define AOFF_task_exit_signal 0x0000007c #define ASIZ_task_exit_signal 0x00000004 -#define AOFF_task_pdeath_signal 0x00000088 +#define AOFF_task_pdeath_signal 0x00000080 #define ASIZ_task_pdeath_signal 0x00000004 -#define AOFF_task_personality 0x00000090 +#define AOFF_task_personality 0x00000088 #define ASIZ_task_personality 0x00000008 -#define AOFF_task_pid 0x0000009c +#define AOFF_task_pid 0x00000094 #define ASIZ_task_pid 0x00000004 -#define AOFF_task_pgrp 0x000000a0 +#define AOFF_task_pgrp 0x00000098 #define ASIZ_task_pgrp 0x00000004 -#define AOFF_task_tty_old_pgrp 0x000000a4 +#define AOFF_task_tty_old_pgrp 0x0000009c #define ASIZ_task_tty_old_pgrp 0x00000004 -#define AOFF_task_session 0x000000a8 +#define AOFF_task_session 0x000000a0 #define ASIZ_task_session 0x00000004 -#define AOFF_task_leader 0x000000ac +#define AOFF_task_leader 0x000000a4 #define ASIZ_task_leader 0x00000004 -#define AOFF_task_p_opptr 0x000000b0 +#define AOFF_task_p_opptr 0x000000a8 #define ASIZ_task_p_opptr 0x00000008 -#define AOFF_task_p_pptr 0x000000b8 +#define AOFF_task_p_pptr 0x000000b0 #define ASIZ_task_p_pptr 0x00000008 -#define AOFF_task_p_cptr 0x000000c0 +#define AOFF_task_p_cptr 0x000000b8 #define ASIZ_task_p_cptr 0x00000008 -#define AOFF_task_p_ysptr 0x000000c8 +#define AOFF_task_p_ysptr 0x000000c0 #define ASIZ_task_p_ysptr 0x00000008 -#define AOFF_task_p_osptr 0x000000d0 +#define AOFF_task_p_osptr 0x000000c8 #define ASIZ_task_p_osptr 0x00000008 -#define AOFF_task_pidhash_next 0x000000d8 +#define AOFF_task_pidhash_next 0x000000d0 #define ASIZ_task_pidhash_next 0x00000008 -#define AOFF_task_pidhash_pprev 0x000000e0 +#define AOFF_task_pidhash_pprev 0x000000d8 #define ASIZ_task_pidhash_pprev 0x00000008 -#define AOFF_task_tarray_ptr 0x000000e8 +#define AOFF_task_tarray_ptr 0x000000e0 #define ASIZ_task_tarray_ptr 0x00000008 -#define AOFF_task_wait_chldexit 0x000000f0 -#define ASIZ_task_wait_chldexit 0x00000008 -#define AOFF_task_vfork_sem 0x000000f8 +#define AOFF_task_wait_chldexit 0x000000e8 +#define ASIZ_task_wait_chldexit 0x00000028 +#define AOFF_task_vfork_sem 0x00000110 #define ASIZ_task_vfork_sem 0x00000008 -#define AOFF_task_policy 0x00000100 +#define AOFF_task_policy 0x00000118 #define ASIZ_task_policy 0x00000008 -#define AOFF_task_rt_priority 0x00000108 +#define AOFF_task_rt_priority 0x00000120 #define ASIZ_task_rt_priority 0x00000008 -#define AOFF_task_it_real_value 0x00000110 +#define AOFF_task_it_real_value 0x00000128 #define ASIZ_task_it_real_value 0x00000008 -#define AOFF_task_it_prof_value 0x00000118 +#define AOFF_task_it_prof_value 0x00000130 #define ASIZ_task_it_prof_value 0x00000008 -#define AOFF_task_it_virt_value 0x00000120 +#define AOFF_task_it_virt_value 0x00000138 #define ASIZ_task_it_virt_value 0x00000008 -#define AOFF_task_it_real_incr 0x00000128 +#define AOFF_task_it_real_incr 0x00000140 #define ASIZ_task_it_real_incr 0x00000008 -#define AOFF_task_it_prof_incr 0x00000130 +#define AOFF_task_it_prof_incr 0x00000148 #define ASIZ_task_it_prof_incr 0x00000008 -#define AOFF_task_it_virt_incr 0x00000138 +#define AOFF_task_it_virt_incr 0x00000150 #define ASIZ_task_it_virt_incr 0x00000008 -#define AOFF_task_real_timer 0x00000140 +#define AOFF_task_real_timer 0x00000158 #define ASIZ_task_real_timer 0x00000028 -#define AOFF_task_times 0x00000168 +#define AOFF_task_times 0x00000180 #define ASIZ_task_times 0x00000020 -#define AOFF_task_start_time 0x00000188 +#define AOFF_task_start_time 0x000001a0 #define ASIZ_task_start_time 0x00000008 -#define AOFF_task_per_cpu_utime 0x00000190 +#define AOFF_task_per_cpu_utime 0x000001a8 #define ASIZ_task_per_cpu_utime 0x00000008 -#define AOFF_task_min_flt 0x000001a0 +#define AOFF_task_min_flt 0x000001b8 #define ASIZ_task_min_flt 0x00000008 -#define AOFF_task_maj_flt 0x000001a8 +#define AOFF_task_maj_flt 0x000001c0 #define ASIZ_task_maj_flt 0x00000008 -#define AOFF_task_nswap 0x000001b0 +#define AOFF_task_nswap 0x000001c8 #define ASIZ_task_nswap 0x00000008 -#define AOFF_task_cmin_flt 0x000001b8 +#define AOFF_task_cmin_flt 0x000001d0 #define ASIZ_task_cmin_flt 0x00000008 -#define AOFF_task_cmaj_flt 0x000001c0 +#define AOFF_task_cmaj_flt 0x000001d8 #define ASIZ_task_cmaj_flt 0x00000008 -#define AOFF_task_cnswap 0x000001c8 +#define AOFF_task_cnswap 0x000001e0 #define ASIZ_task_cnswap 0x00000008 -#define AOFF_task_uid 0x000001d4 +#define AOFF_task_uid 0x000001ec #define ASIZ_task_uid 0x00000004 -#define AOFF_task_euid 0x000001d8 +#define AOFF_task_euid 0x000001f0 #define ASIZ_task_euid 0x00000004 -#define AOFF_task_suid 0x000001dc +#define AOFF_task_suid 0x000001f4 #define ASIZ_task_suid 0x00000004 -#define AOFF_task_fsuid 0x000001e0 +#define AOFF_task_fsuid 0x000001f8 #define ASIZ_task_fsuid 0x00000004 -#define AOFF_task_gid 0x000001e4 +#define AOFF_task_gid 0x000001fc #define ASIZ_task_gid 0x00000004 -#define AOFF_task_egid 0x000001e8 +#define AOFF_task_egid 0x00000200 #define ASIZ_task_egid 0x00000004 -#define AOFF_task_sgid 0x000001ec +#define AOFF_task_sgid 0x00000204 #define ASIZ_task_sgid 0x00000004 -#define AOFF_task_fsgid 0x000001f0 +#define AOFF_task_fsgid 0x00000208 #define ASIZ_task_fsgid 0x00000004 -#define AOFF_task_ngroups 0x000001f4 +#define AOFF_task_ngroups 0x0000020c #define ASIZ_task_ngroups 0x00000004 -#define AOFF_task_groups 0x000001f8 +#define AOFF_task_groups 0x00000210 #define ASIZ_task_groups 0x00000080 -#define AOFF_task_cap_effective 0x00000278 +#define AOFF_task_cap_effective 0x00000290 #define ASIZ_task_cap_effective 0x00000004 -#define AOFF_task_cap_inheritable 0x0000027c +#define AOFF_task_cap_inheritable 0x00000294 #define ASIZ_task_cap_inheritable 0x00000004 -#define AOFF_task_cap_permitted 0x00000280 +#define AOFF_task_cap_permitted 0x00000298 #define ASIZ_task_cap_permitted 0x00000004 -#define AOFF_task_user 0x00000288 +#define AOFF_task_user 0x000002a0 #define ASIZ_task_user 0x00000008 -#define AOFF_task_rlim 0x00000290 +#define AOFF_task_rlim 0x000002a8 #define ASIZ_task_rlim 0x000000a0 -#define AOFF_task_used_math 0x00000330 +#define AOFF_task_used_math 0x00000348 #define ASIZ_task_used_math 0x00000002 -#define AOFF_task_comm 0x00000332 +#define AOFF_task_comm 0x0000034a #define ASIZ_task_comm 0x00000010 -#define AOFF_task_link_count 0x00000344 +#define AOFF_task_link_count 0x0000035c #define ASIZ_task_link_count 0x00000004 -#define AOFF_task_tty 0x00000348 +#define AOFF_task_tty 0x00000360 #define ASIZ_task_tty 0x00000008 -#define AOFF_task_semundo 0x00000350 +#define AOFF_task_semundo 0x00000368 #define ASIZ_task_semundo 0x00000008 -#define AOFF_task_semsleeping 0x00000358 +#define AOFF_task_semsleeping 0x00000370 #define ASIZ_task_semsleeping 0x00000008 -#define AOFF_task_tss 0x00000360 -#define ASIZ_task_tss 0x00000470 -#define AOFF_task_fs 0x000007d0 +#define AOFF_task_tss 0x00000380 +#define ASIZ_task_tss 0x00000460 +#define AOFF_task_fs 0x000007e0 #define ASIZ_task_fs 0x00000008 -#define AOFF_task_files 0x000007d8 +#define AOFF_task_files 0x000007e8 #define ASIZ_task_files 0x00000008 -#define AOFF_task_mm 0x000007e0 +#define AOFF_task_mm 0x000007f0 #define ASIZ_task_mm 0x00000008 -#define AOFF_task_sigmask_lock 0x000007e8 +#define AOFF_task_sigmask_lock 0x000007f8 #define ASIZ_task_sigmask_lock 0x00000001 -#define AOFF_task_sig 0x000007f0 +#define AOFF_task_sig 0x00000800 #define ASIZ_task_sig 0x00000008 -#define AOFF_task_signal 0x000007f8 +#define AOFF_task_signal 0x00000808 #define ASIZ_task_signal 0x00000008 -#define AOFF_task_blocked 0x00000800 +#define AOFF_task_blocked 0x00000810 #define ASIZ_task_blocked 0x00000008 -#define AOFF_task_sigqueue 0x00000808 +#define AOFF_task_sigqueue 0x00000818 #define ASIZ_task_sigqueue 0x00000008 -#define AOFF_task_sigqueue_tail 0x00000810 +#define AOFF_task_sigqueue_tail 0x00000820 #define ASIZ_task_sigqueue_tail 0x00000008 -#define AOFF_task_sas_ss_sp 0x00000818 +#define AOFF_task_sas_ss_sp 0x00000828 #define ASIZ_task_sas_ss_sp 0x00000008 -#define AOFF_task_sas_ss_size 0x00000820 +#define AOFF_task_sas_ss_size 0x00000830 #define ASIZ_task_sas_ss_size 0x00000008 -#define ASIZ_task 0x00000830 +#define ASIZ_task 0x00000840 #define AOFF_mm_mmap 0x00000000 #define ASIZ_mm_mmap 0x00000008 #define AOFF_mm_mmap_avl 0x00000008 @@ -196,48 +196,48 @@ #define AOFF_mm_map_count 0x00000024 #define ASIZ_mm_map_count 0x00000004 #define AOFF_mm_mmap_sem 0x00000028 -#define ASIZ_mm_mmap_sem 0x00000010 -#define AOFF_mm_context 0x00000038 +#define ASIZ_mm_mmap_sem 0x00000038 +#define AOFF_mm_context 0x00000060 #define ASIZ_mm_context 0x00000008 -#define AOFF_mm_start_code 0x00000040 +#define AOFF_mm_start_code 0x00000068 #define ASIZ_mm_start_code 0x00000008 -#define AOFF_mm_end_code 0x00000048 +#define AOFF_mm_end_code 0x00000070 #define ASIZ_mm_end_code 0x00000008 -#define AOFF_mm_start_data 0x00000050 +#define AOFF_mm_start_data 0x00000078 #define ASIZ_mm_start_data 0x00000008 -#define AOFF_mm_end_data 0x00000058 +#define AOFF_mm_end_data 0x00000080 #define ASIZ_mm_end_data 0x00000008 -#define AOFF_mm_start_brk 0x00000060 +#define AOFF_mm_start_brk 0x00000088 #define ASIZ_mm_start_brk 0x00000008 -#define AOFF_mm_brk 0x00000068 +#define AOFF_mm_brk 0x00000090 #define ASIZ_mm_brk 0x00000008 -#define AOFF_mm_start_stack 0x00000070 +#define AOFF_mm_start_stack 0x00000098 #define ASIZ_mm_start_stack 0x00000008 -#define AOFF_mm_arg_start 0x00000078 +#define AOFF_mm_arg_start 0x000000a0 #define ASIZ_mm_arg_start 0x00000008 -#define AOFF_mm_arg_end 0x00000080 +#define AOFF_mm_arg_end 0x000000a8 #define ASIZ_mm_arg_end 0x00000008 -#define AOFF_mm_env_start 0x00000088 +#define AOFF_mm_env_start 0x000000b0 #define ASIZ_mm_env_start 0x00000008 -#define AOFF_mm_env_end 0x00000090 +#define AOFF_mm_env_end 0x000000b8 #define ASIZ_mm_env_end 0x00000008 -#define AOFF_mm_rss 0x00000098 +#define AOFF_mm_rss 0x000000c0 #define ASIZ_mm_rss 0x00000008 -#define AOFF_mm_total_vm 0x000000a0 +#define AOFF_mm_total_vm 0x000000c8 #define ASIZ_mm_total_vm 0x00000008 -#define AOFF_mm_locked_vm 0x000000a8 +#define AOFF_mm_locked_vm 0x000000d0 #define ASIZ_mm_locked_vm 0x00000008 -#define AOFF_mm_def_flags 0x000000b0 +#define AOFF_mm_def_flags 0x000000d8 #define ASIZ_mm_def_flags 0x00000008 -#define AOFF_mm_cpu_vm_mask 0x000000b8 +#define AOFF_mm_cpu_vm_mask 0x000000e0 #define ASIZ_mm_cpu_vm_mask 0x00000008 -#define AOFF_mm_swap_cnt 0x000000c0 +#define AOFF_mm_swap_cnt 0x000000e8 #define ASIZ_mm_swap_cnt 0x00000008 -#define AOFF_mm_swap_address 0x000000c8 +#define AOFF_mm_swap_address 0x000000f0 #define ASIZ_mm_swap_address 0x00000008 -#define AOFF_mm_segments 0x000000d0 +#define AOFF_mm_segments 0x000000f8 #define ASIZ_mm_segments 0x00000008 -#define ASIZ_mm 0x000000d8 +#define ASIZ_mm 0x00000100 #define AOFF_thread_ksp 0x00000000 #define ASIZ_thread_ksp 0x00000008 #define AOFF_thread_wstate 0x00000008 @@ -246,47 +246,45 @@ #define ASIZ_thread_cwp 0x00000002 #define AOFF_thread_flags 0x0000000c #define ASIZ_thread_flags 0x00000002 -#define AOFF_thread_ctx 0x0000000e -#define ASIZ_thread_ctx 0x00000002 +#define AOFF_thread_current_ds 0x0000000e +#define ASIZ_thread_current_ds 0x00000001 #define AOFF_thread_w_saved 0x00000010 #define ASIZ_thread_w_saved 0x00000002 #define AOFF_thread_new_signal 0x00000012 #define ASIZ_thread_new_signal 0x00000002 -#define AOFF_thread____pad 0x00000014 -#define ASIZ_thread____pad 0x00000004 -#define AOFF_thread_current_ds 0x00000018 -#define ASIZ_thread_current_ds 0x00000008 -#define AOFF_thread_kregs 0x00000020 +#define AOFF_thread_ctx 0x00000014 +#define ASIZ_thread_ctx 0x00000002 +#define AOFF_thread_kregs 0x00000018 #define ASIZ_thread_kregs 0x00000008 -#define AOFF_thread_utraps 0x00000028 +#define AOFF_thread_utraps 0x00000020 #define ASIZ_thread_utraps 0x00000008 -#define AOFF_thread_reg_window 0x00000030 +#define AOFF_thread_fpdepth 0x00000028 +#define ASIZ_thread_fpdepth 0x00000001 +#define AOFF_thread_fpsaved 0x00000029 +#define ASIZ_thread_fpsaved 0x00000007 +#define AOFF_thread_gsr 0x00000030 +#define ASIZ_thread_gsr 0x00000007 +#define AOFF_thread_xfsr 0x00000038 +#define ASIZ_thread_xfsr 0x00000038 +#define AOFF_thread_reg_window 0x00000070 #define ASIZ_thread_reg_window 0x00000380 -#define AOFF_thread_rwbuf_stkptrs 0x000003b0 +#define AOFF_thread_rwbuf_stkptrs 0x000003f0 #define ASIZ_thread_rwbuf_stkptrs 0x00000038 -#define AOFF_thread_sig_address 0x000003e8 +#define AOFF_thread_sig_address 0x00000428 #define ASIZ_thread_sig_address 0x00000008 -#define AOFF_thread_sig_desc 0x000003f0 +#define AOFF_thread_sig_desc 0x00000430 #define ASIZ_thread_sig_desc 0x00000008 -#define AOFF_thread_user_cntd0 0x000003f8 +#define AOFF_thread_user_cntd0 0x00000438 #define ASIZ_thread_user_cntd0 0x00000008 -#define AOFF_thread_user_cntd1 0x00000400 +#define AOFF_thread_user_cntd1 0x00000440 #define ASIZ_thread_user_cntd1 0x00000008 -#define AOFF_thread_kernel_cntd0 0x00000408 +#define AOFF_thread_kernel_cntd0 0x00000448 #define ASIZ_thread_kernel_cntd0 0x00000008 -#define AOFF_thread_kernel_cntd1 0x00000410 +#define AOFF_thread_kernel_cntd1 0x00000450 #define ASIZ_thread_kernel_cntd1 0x00000008 -#define AOFF_thread_pcr_reg 0x00000418 +#define AOFF_thread_pcr_reg 0x00000458 #define ASIZ_thread_pcr_reg 0x00000008 -#define AOFF_thread_fpdepth 0x00000420 -#define ASIZ_thread_fpdepth 0x00000001 -#define AOFF_thread_fpsaved 0x00000421 -#define ASIZ_thread_fpsaved 0x00000007 -#define AOFF_thread_gsr 0x00000428 -#define ASIZ_thread_gsr 0x00000007 -#define AOFF_thread_xfsr 0x00000430 -#define ASIZ_thread_xfsr 0x00000038 -#define ASIZ_thread 0x00000470 +#define ASIZ_thread 0x00000460 #else /* CONFIG_SMP */ @@ -298,177 +296,177 @@ #define ASIZ_task_flags 0x00000008 #define AOFF_task_sigpending 0x00000010 #define ASIZ_task_sigpending 0x00000004 -#define AOFF_task_addr_limit 0x00000018 -#define ASIZ_task_addr_limit 0x00000008 -#define AOFF_task_exec_domain 0x00000020 +#define AOFF_task_addr_limit 0x00000014 +#define ASIZ_task_addr_limit 0x00000001 +#define AOFF_task_exec_domain 0x00000018 #define ASIZ_task_exec_domain 0x00000008 -#define AOFF_task_need_resched 0x00000028 +#define AOFF_task_need_resched 0x00000020 #define ASIZ_task_need_resched 0x00000008 -#define AOFF_task_counter 0x00000030 +#define AOFF_task_counter 0x00000028 #define ASIZ_task_counter 0x00000008 -#define AOFF_task_priority 0x00000038 +#define AOFF_task_priority 0x00000030 #define ASIZ_task_priority 0x00000008 -#define AOFF_task_avg_slice 0x00000040 +#define AOFF_task_avg_slice 0x00000038 #define ASIZ_task_avg_slice 0x00000008 -#define AOFF_task_has_cpu 0x00000048 +#define AOFF_task_has_cpu 0x00000040 #define ASIZ_task_has_cpu 0x00000004 -#define AOFF_task_processor 0x0000004c +#define AOFF_task_processor 0x00000044 #define ASIZ_task_processor 0x00000004 -#define AOFF_task_last_processor 0x00000050 +#define AOFF_task_last_processor 0x00000048 #define ASIZ_task_last_processor 0x00000004 -#define AOFF_task_lock_depth 0x00000054 +#define AOFF_task_lock_depth 0x0000004c #define ASIZ_task_lock_depth 0x00000004 -#define AOFF_task_next_task 0x00000058 +#define AOFF_task_next_task 0x00000050 #define ASIZ_task_next_task 0x00000008 -#define AOFF_task_prev_task 0x00000060 +#define AOFF_task_prev_task 0x00000058 #define ASIZ_task_prev_task 0x00000008 -#define AOFF_task_next_run 0x00000068 +#define AOFF_task_next_run 0x00000060 #define ASIZ_task_next_run 0x00000008 -#define AOFF_task_prev_run 0x00000070 +#define AOFF_task_prev_run 0x00000068 #define ASIZ_task_prev_run 0x00000008 -#define AOFF_task_binfmt 0x00000078 +#define AOFF_task_binfmt 0x00000070 #define ASIZ_task_binfmt 0x00000008 -#define AOFF_task_exit_code 0x00000080 +#define AOFF_task_exit_code 0x00000078 #define ASIZ_task_exit_code 0x00000004 -#define AOFF_task_exit_signal 0x00000084 +#define AOFF_task_exit_signal 0x0000007c #define ASIZ_task_exit_signal 0x00000004 -#define AOFF_task_pdeath_signal 0x00000088 +#define AOFF_task_pdeath_signal 0x00000080 #define ASIZ_task_pdeath_signal 0x00000004 -#define AOFF_task_personality 0x00000090 +#define AOFF_task_personality 0x00000088 #define ASIZ_task_personality 0x00000008 -#define AOFF_task_pid 0x0000009c +#define AOFF_task_pid 0x00000094 #define ASIZ_task_pid 0x00000004 -#define AOFF_task_pgrp 0x000000a0 +#define AOFF_task_pgrp 0x00000098 #define ASIZ_task_pgrp 0x00000004 -#define AOFF_task_tty_old_pgrp 0x000000a4 +#define AOFF_task_tty_old_pgrp 0x0000009c #define ASIZ_task_tty_old_pgrp 0x00000004 -#define AOFF_task_session 0x000000a8 +#define AOFF_task_session 0x000000a0 #define ASIZ_task_session 0x00000004 -#define AOFF_task_leader 0x000000ac +#define AOFF_task_leader 0x000000a4 #define ASIZ_task_leader 0x00000004 -#define AOFF_task_p_opptr 0x000000b0 +#define AOFF_task_p_opptr 0x000000a8 #define ASIZ_task_p_opptr 0x00000008 -#define AOFF_task_p_pptr 0x000000b8 +#define AOFF_task_p_pptr 0x000000b0 #define ASIZ_task_p_pptr 0x00000008 -#define AOFF_task_p_cptr 0x000000c0 +#define AOFF_task_p_cptr 0x000000b8 #define ASIZ_task_p_cptr 0x00000008 -#define AOFF_task_p_ysptr 0x000000c8 +#define AOFF_task_p_ysptr 0x000000c0 #define ASIZ_task_p_ysptr 0x00000008 -#define AOFF_task_p_osptr 0x000000d0 +#define AOFF_task_p_osptr 0x000000c8 #define ASIZ_task_p_osptr 0x00000008 -#define AOFF_task_pidhash_next 0x000000d8 +#define AOFF_task_pidhash_next 0x000000d0 #define ASIZ_task_pidhash_next 0x00000008 -#define AOFF_task_pidhash_pprev 0x000000e0 +#define AOFF_task_pidhash_pprev 0x000000d8 #define ASIZ_task_pidhash_pprev 0x00000008 -#define AOFF_task_tarray_ptr 0x000000e8 +#define AOFF_task_tarray_ptr 0x000000e0 #define ASIZ_task_tarray_ptr 0x00000008 -#define AOFF_task_wait_chldexit 0x000000f0 -#define ASIZ_task_wait_chldexit 0x00000008 -#define AOFF_task_vfork_sem 0x000000f8 +#define AOFF_task_wait_chldexit 0x000000e8 +#define ASIZ_task_wait_chldexit 0x00000028 +#define AOFF_task_vfork_sem 0x00000110 #define ASIZ_task_vfork_sem 0x00000008 -#define AOFF_task_policy 0x00000100 +#define AOFF_task_policy 0x00000118 #define ASIZ_task_policy 0x00000008 -#define AOFF_task_rt_priority 0x00000108 +#define AOFF_task_rt_priority 0x00000120 #define ASIZ_task_rt_priority 0x00000008 -#define AOFF_task_it_real_value 0x00000110 +#define AOFF_task_it_real_value 0x00000128 #define ASIZ_task_it_real_value 0x00000008 -#define AOFF_task_it_prof_value 0x00000118 +#define AOFF_task_it_prof_value 0x00000130 #define ASIZ_task_it_prof_value 0x00000008 -#define AOFF_task_it_virt_value 0x00000120 +#define AOFF_task_it_virt_value 0x00000138 #define ASIZ_task_it_virt_value 0x00000008 -#define AOFF_task_it_real_incr 0x00000128 +#define AOFF_task_it_real_incr 0x00000140 #define ASIZ_task_it_real_incr 0x00000008 -#define AOFF_task_it_prof_incr 0x00000130 +#define AOFF_task_it_prof_incr 0x00000148 #define ASIZ_task_it_prof_incr 0x00000008 -#define AOFF_task_it_virt_incr 0x00000138 +#define AOFF_task_it_virt_incr 0x00000150 #define ASIZ_task_it_virt_incr 0x00000008 -#define AOFF_task_real_timer 0x00000140 +#define AOFF_task_real_timer 0x00000158 #define ASIZ_task_real_timer 0x00000028 -#define AOFF_task_times 0x00000168 +#define AOFF_task_times 0x00000180 #define ASIZ_task_times 0x00000020 -#define AOFF_task_start_time 0x00000188 +#define AOFF_task_start_time 0x000001a0 #define ASIZ_task_start_time 0x00000008 -#define AOFF_task_per_cpu_utime 0x00000190 +#define AOFF_task_per_cpu_utime 0x000001a8 #define ASIZ_task_per_cpu_utime 0x00000100 -#define AOFF_task_min_flt 0x00000390 +#define AOFF_task_min_flt 0x000003a8 #define ASIZ_task_min_flt 0x00000008 -#define AOFF_task_maj_flt 0x00000398 +#define AOFF_task_maj_flt 0x000003b0 #define ASIZ_task_maj_flt 0x00000008 -#define AOFF_task_nswap 0x000003a0 +#define AOFF_task_nswap 0x000003b8 #define ASIZ_task_nswap 0x00000008 -#define AOFF_task_cmin_flt 0x000003a8 +#define AOFF_task_cmin_flt 0x000003c0 #define ASIZ_task_cmin_flt 0x00000008 -#define AOFF_task_cmaj_flt 0x000003b0 +#define AOFF_task_cmaj_flt 0x000003c8 #define ASIZ_task_cmaj_flt 0x00000008 -#define AOFF_task_cnswap 0x000003b8 +#define AOFF_task_cnswap 0x000003d0 #define ASIZ_task_cnswap 0x00000008 -#define AOFF_task_uid 0x000003c4 +#define AOFF_task_uid 0x000003dc #define ASIZ_task_uid 0x00000004 -#define AOFF_task_euid 0x000003c8 +#define AOFF_task_euid 0x000003e0 #define ASIZ_task_euid 0x00000004 -#define AOFF_task_suid 0x000003cc +#define AOFF_task_suid 0x000003e4 #define ASIZ_task_suid 0x00000004 -#define AOFF_task_fsuid 0x000003d0 +#define AOFF_task_fsuid 0x000003e8 #define ASIZ_task_fsuid 0x00000004 -#define AOFF_task_gid 0x000003d4 +#define AOFF_task_gid 0x000003ec #define ASIZ_task_gid 0x00000004 -#define AOFF_task_egid 0x000003d8 +#define AOFF_task_egid 0x000003f0 #define ASIZ_task_egid 0x00000004 -#define AOFF_task_sgid 0x000003dc +#define AOFF_task_sgid 0x000003f4 #define ASIZ_task_sgid 0x00000004 -#define AOFF_task_fsgid 0x000003e0 +#define AOFF_task_fsgid 0x000003f8 #define ASIZ_task_fsgid 0x00000004 -#define AOFF_task_ngroups 0x000003e4 +#define AOFF_task_ngroups 0x000003fc #define ASIZ_task_ngroups 0x00000004 -#define AOFF_task_groups 0x000003e8 +#define AOFF_task_groups 0x00000400 #define ASIZ_task_groups 0x00000080 -#define AOFF_task_cap_effective 0x00000468 +#define AOFF_task_cap_effective 0x00000480 #define ASIZ_task_cap_effective 0x00000004 -#define AOFF_task_cap_inheritable 0x0000046c +#define AOFF_task_cap_inheritable 0x00000484 #define ASIZ_task_cap_inheritable 0x00000004 -#define AOFF_task_cap_permitted 0x00000470 +#define AOFF_task_cap_permitted 0x00000488 #define ASIZ_task_cap_permitted 0x00000004 -#define AOFF_task_user 0x00000478 +#define AOFF_task_user 0x00000490 #define ASIZ_task_user 0x00000008 -#define AOFF_task_rlim 0x00000480 +#define AOFF_task_rlim 0x00000498 #define ASIZ_task_rlim 0x000000a0 -#define AOFF_task_used_math 0x00000520 +#define AOFF_task_used_math 0x00000538 #define ASIZ_task_used_math 0x00000002 -#define AOFF_task_comm 0x00000522 +#define AOFF_task_comm 0x0000053a #define ASIZ_task_comm 0x00000010 -#define AOFF_task_link_count 0x00000534 +#define AOFF_task_link_count 0x0000054c #define ASIZ_task_link_count 0x00000004 -#define AOFF_task_tty 0x00000538 +#define AOFF_task_tty 0x00000550 #define ASIZ_task_tty 0x00000008 -#define AOFF_task_semundo 0x00000540 +#define AOFF_task_semundo 0x00000558 #define ASIZ_task_semundo 0x00000008 -#define AOFF_task_semsleeping 0x00000548 +#define AOFF_task_semsleeping 0x00000560 #define ASIZ_task_semsleeping 0x00000008 -#define AOFF_task_tss 0x00000550 -#define ASIZ_task_tss 0x00000470 -#define AOFF_task_fs 0x000009c0 +#define AOFF_task_tss 0x00000570 +#define ASIZ_task_tss 0x00000460 +#define AOFF_task_fs 0x000009d0 #define ASIZ_task_fs 0x00000008 -#define AOFF_task_files 0x000009c8 +#define AOFF_task_files 0x000009d8 #define ASIZ_task_files 0x00000008 -#define AOFF_task_mm 0x000009d0 +#define AOFF_task_mm 0x000009e0 #define ASIZ_task_mm 0x00000008 -#define AOFF_task_sigmask_lock 0x000009d8 +#define AOFF_task_sigmask_lock 0x000009e8 #define ASIZ_task_sigmask_lock 0x00000001 -#define AOFF_task_sig 0x000009e0 +#define AOFF_task_sig 0x000009f0 #define ASIZ_task_sig 0x00000008 -#define AOFF_task_signal 0x000009e8 +#define AOFF_task_signal 0x000009f8 #define ASIZ_task_signal 0x00000008 -#define AOFF_task_blocked 0x000009f0 +#define AOFF_task_blocked 0x00000a00 #define ASIZ_task_blocked 0x00000008 -#define AOFF_task_sigqueue 0x000009f8 +#define AOFF_task_sigqueue 0x00000a08 #define ASIZ_task_sigqueue 0x00000008 -#define AOFF_task_sigqueue_tail 0x00000a00 +#define AOFF_task_sigqueue_tail 0x00000a10 #define ASIZ_task_sigqueue_tail 0x00000008 -#define AOFF_task_sas_ss_sp 0x00000a08 +#define AOFF_task_sas_ss_sp 0x00000a18 #define ASIZ_task_sas_ss_sp 0x00000008 -#define AOFF_task_sas_ss_size 0x00000a10 +#define AOFF_task_sas_ss_size 0x00000a20 #define ASIZ_task_sas_ss_size 0x00000008 -#define ASIZ_task 0x00000a20 +#define ASIZ_task 0x00000a30 #define AOFF_mm_mmap 0x00000000 #define ASIZ_mm_mmap 0x00000008 #define AOFF_mm_mmap_avl 0x00000008 @@ -482,48 +480,48 @@ #define AOFF_mm_map_count 0x00000024 #define ASIZ_mm_map_count 0x00000004 #define AOFF_mm_mmap_sem 0x00000028 -#define ASIZ_mm_mmap_sem 0x00000010 -#define AOFF_mm_context 0x00000038 +#define ASIZ_mm_mmap_sem 0x00000038 +#define AOFF_mm_context 0x00000060 #define ASIZ_mm_context 0x00000008 -#define AOFF_mm_start_code 0x00000040 +#define AOFF_mm_start_code 0x00000068 #define ASIZ_mm_start_code 0x00000008 -#define AOFF_mm_end_code 0x00000048 +#define AOFF_mm_end_code 0x00000070 #define ASIZ_mm_end_code 0x00000008 -#define AOFF_mm_start_data 0x00000050 +#define AOFF_mm_start_data 0x00000078 #define ASIZ_mm_start_data 0x00000008 -#define AOFF_mm_end_data 0x00000058 +#define AOFF_mm_end_data 0x00000080 #define ASIZ_mm_end_data 0x00000008 -#define AOFF_mm_start_brk 0x00000060 +#define AOFF_mm_start_brk 0x00000088 #define ASIZ_mm_start_brk 0x00000008 -#define AOFF_mm_brk 0x00000068 +#define AOFF_mm_brk 0x00000090 #define ASIZ_mm_brk 0x00000008 -#define AOFF_mm_start_stack 0x00000070 +#define AOFF_mm_start_stack 0x00000098 #define ASIZ_mm_start_stack 0x00000008 -#define AOFF_mm_arg_start 0x00000078 +#define AOFF_mm_arg_start 0x000000a0 #define ASIZ_mm_arg_start 0x00000008 -#define AOFF_mm_arg_end 0x00000080 +#define AOFF_mm_arg_end 0x000000a8 #define ASIZ_mm_arg_end 0x00000008 -#define AOFF_mm_env_start 0x00000088 +#define AOFF_mm_env_start 0x000000b0 #define ASIZ_mm_env_start 0x00000008 -#define AOFF_mm_env_end 0x00000090 +#define AOFF_mm_env_end 0x000000b8 #define ASIZ_mm_env_end 0x00000008 -#define AOFF_mm_rss 0x00000098 +#define AOFF_mm_rss 0x000000c0 #define ASIZ_mm_rss 0x00000008 -#define AOFF_mm_total_vm 0x000000a0 +#define AOFF_mm_total_vm 0x000000c8 #define ASIZ_mm_total_vm 0x00000008 -#define AOFF_mm_locked_vm 0x000000a8 +#define AOFF_mm_locked_vm 0x000000d0 #define ASIZ_mm_locked_vm 0x00000008 -#define AOFF_mm_def_flags 0x000000b0 +#define AOFF_mm_def_flags 0x000000d8 #define ASIZ_mm_def_flags 0x00000008 -#define AOFF_mm_cpu_vm_mask 0x000000b8 +#define AOFF_mm_cpu_vm_mask 0x000000e0 #define ASIZ_mm_cpu_vm_mask 0x00000008 -#define AOFF_mm_swap_cnt 0x000000c0 +#define AOFF_mm_swap_cnt 0x000000e8 #define ASIZ_mm_swap_cnt 0x00000008 -#define AOFF_mm_swap_address 0x000000c8 +#define AOFF_mm_swap_address 0x000000f0 #define ASIZ_mm_swap_address 0x00000008 -#define AOFF_mm_segments 0x000000d0 +#define AOFF_mm_segments 0x000000f8 #define ASIZ_mm_segments 0x00000008 -#define ASIZ_mm 0x000000d8 +#define ASIZ_mm 0x00000100 #define AOFF_thread_ksp 0x00000000 #define ASIZ_thread_ksp 0x00000008 #define AOFF_thread_wstate 0x00000008 @@ -532,47 +530,45 @@ #define ASIZ_thread_cwp 0x00000002 #define AOFF_thread_flags 0x0000000c #define ASIZ_thread_flags 0x00000002 -#define AOFF_thread_ctx 0x0000000e -#define ASIZ_thread_ctx 0x00000002 +#define AOFF_thread_current_ds 0x0000000e +#define ASIZ_thread_current_ds 0x00000001 #define AOFF_thread_w_saved 0x00000010 #define ASIZ_thread_w_saved 0x00000002 #define AOFF_thread_new_signal 0x00000012 #define ASIZ_thread_new_signal 0x00000002 -#define AOFF_thread____pad 0x00000014 -#define ASIZ_thread____pad 0x00000004 -#define AOFF_thread_current_ds 0x00000018 -#define ASIZ_thread_current_ds 0x00000008 -#define AOFF_thread_kregs 0x00000020 +#define AOFF_thread_ctx 0x00000014 +#define ASIZ_thread_ctx 0x00000002 +#define AOFF_thread_kregs 0x00000018 #define ASIZ_thread_kregs 0x00000008 -#define AOFF_thread_utraps 0x00000028 +#define AOFF_thread_utraps 0x00000020 #define ASIZ_thread_utraps 0x00000008 -#define AOFF_thread_reg_window 0x00000030 +#define AOFF_thread_fpdepth 0x00000028 +#define ASIZ_thread_fpdepth 0x00000001 +#define AOFF_thread_fpsaved 0x00000029 +#define ASIZ_thread_fpsaved 0x00000007 +#define AOFF_thread_gsr 0x00000030 +#define ASIZ_thread_gsr 0x00000007 +#define AOFF_thread_xfsr 0x00000038 +#define ASIZ_thread_xfsr 0x00000038 +#define AOFF_thread_reg_window 0x00000070 #define ASIZ_thread_reg_window 0x00000380 -#define AOFF_thread_rwbuf_stkptrs 0x000003b0 +#define AOFF_thread_rwbuf_stkptrs 0x000003f0 #define ASIZ_thread_rwbuf_stkptrs 0x00000038 -#define AOFF_thread_sig_address 0x000003e8 +#define AOFF_thread_sig_address 0x00000428 #define ASIZ_thread_sig_address 0x00000008 -#define AOFF_thread_sig_desc 0x000003f0 +#define AOFF_thread_sig_desc 0x00000430 #define ASIZ_thread_sig_desc 0x00000008 -#define AOFF_thread_user_cntd0 0x000003f8 +#define AOFF_thread_user_cntd0 0x00000438 #define ASIZ_thread_user_cntd0 0x00000008 -#define AOFF_thread_user_cntd1 0x00000400 +#define AOFF_thread_user_cntd1 0x00000440 #define ASIZ_thread_user_cntd1 0x00000008 -#define AOFF_thread_kernel_cntd0 0x00000408 +#define AOFF_thread_kernel_cntd0 0x00000448 #define ASIZ_thread_kernel_cntd0 0x00000008 -#define AOFF_thread_kernel_cntd1 0x00000410 +#define AOFF_thread_kernel_cntd1 0x00000450 #define ASIZ_thread_kernel_cntd1 0x00000008 -#define AOFF_thread_pcr_reg 0x00000418 +#define AOFF_thread_pcr_reg 0x00000458 #define ASIZ_thread_pcr_reg 0x00000008 -#define AOFF_thread_fpdepth 0x00000420 -#define ASIZ_thread_fpdepth 0x00000001 -#define AOFF_thread_fpsaved 0x00000421 -#define ASIZ_thread_fpsaved 0x00000007 -#define AOFF_thread_gsr 0x00000428 -#define ASIZ_thread_gsr 0x00000007 -#define AOFF_thread_xfsr 0x00000430 -#define ASIZ_thread_xfsr 0x00000038 -#define ASIZ_thread 0x00000470 +#define ASIZ_thread 0x00000460 #else /* SPIN_LOCK_DEBUG */ @@ -582,177 +578,177 @@ #define ASIZ_task_flags 0x00000008 #define AOFF_task_sigpending 0x00000010 #define ASIZ_task_sigpending 0x00000004 -#define AOFF_task_addr_limit 0x00000018 -#define ASIZ_task_addr_limit 0x00000008 -#define AOFF_task_exec_domain 0x00000020 +#define AOFF_task_addr_limit 0x00000014 +#define ASIZ_task_addr_limit 0x00000001 +#define AOFF_task_exec_domain 0x00000018 #define ASIZ_task_exec_domain 0x00000008 -#define AOFF_task_need_resched 0x00000028 +#define AOFF_task_need_resched 0x00000020 #define ASIZ_task_need_resched 0x00000008 -#define AOFF_task_counter 0x00000030 +#define AOFF_task_counter 0x00000028 #define ASIZ_task_counter 0x00000008 -#define AOFF_task_priority 0x00000038 +#define AOFF_task_priority 0x00000030 #define ASIZ_task_priority 0x00000008 -#define AOFF_task_avg_slice 0x00000040 +#define AOFF_task_avg_slice 0x00000038 #define ASIZ_task_avg_slice 0x00000008 -#define AOFF_task_has_cpu 0x00000048 +#define AOFF_task_has_cpu 0x00000040 #define ASIZ_task_has_cpu 0x00000004 -#define AOFF_task_processor 0x0000004c +#define AOFF_task_processor 0x00000044 #define ASIZ_task_processor 0x00000004 -#define AOFF_task_last_processor 0x00000050 +#define AOFF_task_last_processor 0x00000048 #define ASIZ_task_last_processor 0x00000004 -#define AOFF_task_lock_depth 0x00000054 +#define AOFF_task_lock_depth 0x0000004c #define ASIZ_task_lock_depth 0x00000004 -#define AOFF_task_next_task 0x00000058 +#define AOFF_task_next_task 0x00000050 #define ASIZ_task_next_task 0x00000008 -#define AOFF_task_prev_task 0x00000060 +#define AOFF_task_prev_task 0x00000058 #define ASIZ_task_prev_task 0x00000008 -#define AOFF_task_next_run 0x00000068 +#define AOFF_task_next_run 0x00000060 #define ASIZ_task_next_run 0x00000008 -#define AOFF_task_prev_run 0x00000070 +#define AOFF_task_prev_run 0x00000068 #define ASIZ_task_prev_run 0x00000008 -#define AOFF_task_binfmt 0x00000078 +#define AOFF_task_binfmt 0x00000070 #define ASIZ_task_binfmt 0x00000008 -#define AOFF_task_exit_code 0x00000080 +#define AOFF_task_exit_code 0x00000078 #define ASIZ_task_exit_code 0x00000004 -#define AOFF_task_exit_signal 0x00000084 +#define AOFF_task_exit_signal 0x0000007c #define ASIZ_task_exit_signal 0x00000004 -#define AOFF_task_pdeath_signal 0x00000088 +#define AOFF_task_pdeath_signal 0x00000080 #define ASIZ_task_pdeath_signal 0x00000004 -#define AOFF_task_personality 0x00000090 +#define AOFF_task_personality 0x00000088 #define ASIZ_task_personality 0x00000008 -#define AOFF_task_pid 0x0000009c +#define AOFF_task_pid 0x00000094 #define ASIZ_task_pid 0x00000004 -#define AOFF_task_pgrp 0x000000a0 +#define AOFF_task_pgrp 0x00000098 #define ASIZ_task_pgrp 0x00000004 -#define AOFF_task_tty_old_pgrp 0x000000a4 +#define AOFF_task_tty_old_pgrp 0x0000009c #define ASIZ_task_tty_old_pgrp 0x00000004 -#define AOFF_task_session 0x000000a8 +#define AOFF_task_session 0x000000a0 #define ASIZ_task_session 0x00000004 -#define AOFF_task_leader 0x000000ac +#define AOFF_task_leader 0x000000a4 #define ASIZ_task_leader 0x00000004 -#define AOFF_task_p_opptr 0x000000b0 +#define AOFF_task_p_opptr 0x000000a8 #define ASIZ_task_p_opptr 0x00000008 -#define AOFF_task_p_pptr 0x000000b8 +#define AOFF_task_p_pptr 0x000000b0 #define ASIZ_task_p_pptr 0x00000008 -#define AOFF_task_p_cptr 0x000000c0 +#define AOFF_task_p_cptr 0x000000b8 #define ASIZ_task_p_cptr 0x00000008 -#define AOFF_task_p_ysptr 0x000000c8 +#define AOFF_task_p_ysptr 0x000000c0 #define ASIZ_task_p_ysptr 0x00000008 -#define AOFF_task_p_osptr 0x000000d0 +#define AOFF_task_p_osptr 0x000000c8 #define ASIZ_task_p_osptr 0x00000008 -#define AOFF_task_pidhash_next 0x000000d8 +#define AOFF_task_pidhash_next 0x000000d0 #define ASIZ_task_pidhash_next 0x00000008 -#define AOFF_task_pidhash_pprev 0x000000e0 +#define AOFF_task_pidhash_pprev 0x000000d8 #define ASIZ_task_pidhash_pprev 0x00000008 -#define AOFF_task_tarray_ptr 0x000000e8 +#define AOFF_task_tarray_ptr 0x000000e0 #define ASIZ_task_tarray_ptr 0x00000008 -#define AOFF_task_wait_chldexit 0x000000f0 -#define ASIZ_task_wait_chldexit 0x00000008 -#define AOFF_task_vfork_sem 0x000000f8 +#define AOFF_task_wait_chldexit 0x000000e8 +#define ASIZ_task_wait_chldexit 0x00000030 +#define AOFF_task_vfork_sem 0x00000118 #define ASIZ_task_vfork_sem 0x00000008 -#define AOFF_task_policy 0x00000100 +#define AOFF_task_policy 0x00000120 #define ASIZ_task_policy 0x00000008 -#define AOFF_task_rt_priority 0x00000108 +#define AOFF_task_rt_priority 0x00000128 #define ASIZ_task_rt_priority 0x00000008 -#define AOFF_task_it_real_value 0x00000110 +#define AOFF_task_it_real_value 0x00000130 #define ASIZ_task_it_real_value 0x00000008 -#define AOFF_task_it_prof_value 0x00000118 +#define AOFF_task_it_prof_value 0x00000138 #define ASIZ_task_it_prof_value 0x00000008 -#define AOFF_task_it_virt_value 0x00000120 +#define AOFF_task_it_virt_value 0x00000140 #define ASIZ_task_it_virt_value 0x00000008 -#define AOFF_task_it_real_incr 0x00000128 +#define AOFF_task_it_real_incr 0x00000148 #define ASIZ_task_it_real_incr 0x00000008 -#define AOFF_task_it_prof_incr 0x00000130 +#define AOFF_task_it_prof_incr 0x00000150 #define ASIZ_task_it_prof_incr 0x00000008 -#define AOFF_task_it_virt_incr 0x00000138 +#define AOFF_task_it_virt_incr 0x00000158 #define ASIZ_task_it_virt_incr 0x00000008 -#define AOFF_task_real_timer 0x00000140 +#define AOFF_task_real_timer 0x00000160 #define ASIZ_task_real_timer 0x00000028 -#define AOFF_task_times 0x00000168 +#define AOFF_task_times 0x00000188 #define ASIZ_task_times 0x00000020 -#define AOFF_task_start_time 0x00000188 +#define AOFF_task_start_time 0x000001a8 #define ASIZ_task_start_time 0x00000008 -#define AOFF_task_per_cpu_utime 0x00000190 +#define AOFF_task_per_cpu_utime 0x000001b0 #define ASIZ_task_per_cpu_utime 0x00000100 -#define AOFF_task_min_flt 0x00000390 +#define AOFF_task_min_flt 0x000003b0 #define ASIZ_task_min_flt 0x00000008 -#define AOFF_task_maj_flt 0x00000398 +#define AOFF_task_maj_flt 0x000003b8 #define ASIZ_task_maj_flt 0x00000008 -#define AOFF_task_nswap 0x000003a0 +#define AOFF_task_nswap 0x000003c0 #define ASIZ_task_nswap 0x00000008 -#define AOFF_task_cmin_flt 0x000003a8 +#define AOFF_task_cmin_flt 0x000003c8 #define ASIZ_task_cmin_flt 0x00000008 -#define AOFF_task_cmaj_flt 0x000003b0 +#define AOFF_task_cmaj_flt 0x000003d0 #define ASIZ_task_cmaj_flt 0x00000008 -#define AOFF_task_cnswap 0x000003b8 +#define AOFF_task_cnswap 0x000003d8 #define ASIZ_task_cnswap 0x00000008 -#define AOFF_task_uid 0x000003c4 +#define AOFF_task_uid 0x000003e4 #define ASIZ_task_uid 0x00000004 -#define AOFF_task_euid 0x000003c8 +#define AOFF_task_euid 0x000003e8 #define ASIZ_task_euid 0x00000004 -#define AOFF_task_suid 0x000003cc +#define AOFF_task_suid 0x000003ec #define ASIZ_task_suid 0x00000004 -#define AOFF_task_fsuid 0x000003d0 +#define AOFF_task_fsuid 0x000003f0 #define ASIZ_task_fsuid 0x00000004 -#define AOFF_task_gid 0x000003d4 +#define AOFF_task_gid 0x000003f4 #define ASIZ_task_gid 0x00000004 -#define AOFF_task_egid 0x000003d8 +#define AOFF_task_egid 0x000003f8 #define ASIZ_task_egid 0x00000004 -#define AOFF_task_sgid 0x000003dc +#define AOFF_task_sgid 0x000003fc #define ASIZ_task_sgid 0x00000004 -#define AOFF_task_fsgid 0x000003e0 +#define AOFF_task_fsgid 0x00000400 #define ASIZ_task_fsgid 0x00000004 -#define AOFF_task_ngroups 0x000003e4 +#define AOFF_task_ngroups 0x00000404 #define ASIZ_task_ngroups 0x00000004 -#define AOFF_task_groups 0x000003e8 +#define AOFF_task_groups 0x00000408 #define ASIZ_task_groups 0x00000080 -#define AOFF_task_cap_effective 0x00000468 +#define AOFF_task_cap_effective 0x00000488 #define ASIZ_task_cap_effective 0x00000004 -#define AOFF_task_cap_inheritable 0x0000046c +#define AOFF_task_cap_inheritable 0x0000048c #define ASIZ_task_cap_inheritable 0x00000004 -#define AOFF_task_cap_permitted 0x00000470 +#define AOFF_task_cap_permitted 0x00000490 #define ASIZ_task_cap_permitted 0x00000004 -#define AOFF_task_user 0x00000478 +#define AOFF_task_user 0x00000498 #define ASIZ_task_user 0x00000008 -#define AOFF_task_rlim 0x00000480 +#define AOFF_task_rlim 0x000004a0 #define ASIZ_task_rlim 0x000000a0 -#define AOFF_task_used_math 0x00000520 +#define AOFF_task_used_math 0x00000540 #define ASIZ_task_used_math 0x00000002 -#define AOFF_task_comm 0x00000522 +#define AOFF_task_comm 0x00000542 #define ASIZ_task_comm 0x00000010 -#define AOFF_task_link_count 0x00000534 +#define AOFF_task_link_count 0x00000554 #define ASIZ_task_link_count 0x00000004 -#define AOFF_task_tty 0x00000538 +#define AOFF_task_tty 0x00000558 #define ASIZ_task_tty 0x00000008 -#define AOFF_task_semundo 0x00000540 +#define AOFF_task_semundo 0x00000560 #define ASIZ_task_semundo 0x00000008 -#define AOFF_task_semsleeping 0x00000548 +#define AOFF_task_semsleeping 0x00000568 #define ASIZ_task_semsleeping 0x00000008 -#define AOFF_task_tss 0x00000550 -#define ASIZ_task_tss 0x00000470 -#define AOFF_task_fs 0x000009c0 +#define AOFF_task_tss 0x00000570 +#define ASIZ_task_tss 0x00000460 +#define AOFF_task_fs 0x000009d0 #define ASIZ_task_fs 0x00000008 -#define AOFF_task_files 0x000009c8 +#define AOFF_task_files 0x000009d8 #define ASIZ_task_files 0x00000008 -#define AOFF_task_mm 0x000009d0 +#define AOFF_task_mm 0x000009e0 #define ASIZ_task_mm 0x00000008 -#define AOFF_task_sigmask_lock 0x000009d8 +#define AOFF_task_sigmask_lock 0x000009e8 #define ASIZ_task_sigmask_lock 0x0000000c -#define AOFF_task_sig 0x000009e8 +#define AOFF_task_sig 0x000009f8 #define ASIZ_task_sig 0x00000008 -#define AOFF_task_signal 0x000009f0 +#define AOFF_task_signal 0x00000a00 #define ASIZ_task_signal 0x00000008 -#define AOFF_task_blocked 0x000009f8 +#define AOFF_task_blocked 0x00000a08 #define ASIZ_task_blocked 0x00000008 -#define AOFF_task_sigqueue 0x00000a00 +#define AOFF_task_sigqueue 0x00000a10 #define ASIZ_task_sigqueue 0x00000008 -#define AOFF_task_sigqueue_tail 0x00000a08 +#define AOFF_task_sigqueue_tail 0x00000a18 #define ASIZ_task_sigqueue_tail 0x00000008 -#define AOFF_task_sas_ss_sp 0x00000a10 +#define AOFF_task_sas_ss_sp 0x00000a20 #define ASIZ_task_sas_ss_sp 0x00000008 -#define AOFF_task_sas_ss_size 0x00000a18 +#define AOFF_task_sas_ss_size 0x00000a28 #define ASIZ_task_sas_ss_size 0x00000008 -#define ASIZ_task 0x00000a20 +#define ASIZ_task 0x00000a30 #define AOFF_mm_mmap 0x00000000 #define ASIZ_mm_mmap 0x00000008 #define AOFF_mm_mmap_avl 0x00000008 @@ -766,48 +762,48 @@ #define AOFF_mm_map_count 0x00000024 #define ASIZ_mm_map_count 0x00000004 #define AOFF_mm_mmap_sem 0x00000028 -#define ASIZ_mm_mmap_sem 0x00000010 -#define AOFF_mm_context 0x00000038 +#define ASIZ_mm_mmap_sem 0x00000040 +#define AOFF_mm_context 0x00000068 #define ASIZ_mm_context 0x00000008 -#define AOFF_mm_start_code 0x00000040 +#define AOFF_mm_start_code 0x00000070 #define ASIZ_mm_start_code 0x00000008 -#define AOFF_mm_end_code 0x00000048 +#define AOFF_mm_end_code 0x00000078 #define ASIZ_mm_end_code 0x00000008 -#define AOFF_mm_start_data 0x00000050 +#define AOFF_mm_start_data 0x00000080 #define ASIZ_mm_start_data 0x00000008 -#define AOFF_mm_end_data 0x00000058 +#define AOFF_mm_end_data 0x00000088 #define ASIZ_mm_end_data 0x00000008 -#define AOFF_mm_start_brk 0x00000060 +#define AOFF_mm_start_brk 0x00000090 #define ASIZ_mm_start_brk 0x00000008 -#define AOFF_mm_brk 0x00000068 +#define AOFF_mm_brk 0x00000098 #define ASIZ_mm_brk 0x00000008 -#define AOFF_mm_start_stack 0x00000070 +#define AOFF_mm_start_stack 0x000000a0 #define ASIZ_mm_start_stack 0x00000008 -#define AOFF_mm_arg_start 0x00000078 +#define AOFF_mm_arg_start 0x000000a8 #define ASIZ_mm_arg_start 0x00000008 -#define AOFF_mm_arg_end 0x00000080 +#define AOFF_mm_arg_end 0x000000b0 #define ASIZ_mm_arg_end 0x00000008 -#define AOFF_mm_env_start 0x00000088 +#define AOFF_mm_env_start 0x000000b8 #define ASIZ_mm_env_start 0x00000008 -#define AOFF_mm_env_end 0x00000090 +#define AOFF_mm_env_end 0x000000c0 #define ASIZ_mm_env_end 0x00000008 -#define AOFF_mm_rss 0x00000098 +#define AOFF_mm_rss 0x000000c8 #define ASIZ_mm_rss 0x00000008 -#define AOFF_mm_total_vm 0x000000a0 +#define AOFF_mm_total_vm 0x000000d0 #define ASIZ_mm_total_vm 0x00000008 -#define AOFF_mm_locked_vm 0x000000a8 +#define AOFF_mm_locked_vm 0x000000d8 #define ASIZ_mm_locked_vm 0x00000008 -#define AOFF_mm_def_flags 0x000000b0 +#define AOFF_mm_def_flags 0x000000e0 #define ASIZ_mm_def_flags 0x00000008 -#define AOFF_mm_cpu_vm_mask 0x000000b8 +#define AOFF_mm_cpu_vm_mask 0x000000e8 #define ASIZ_mm_cpu_vm_mask 0x00000008 -#define AOFF_mm_swap_cnt 0x000000c0 +#define AOFF_mm_swap_cnt 0x000000f0 #define ASIZ_mm_swap_cnt 0x00000008 -#define AOFF_mm_swap_address 0x000000c8 +#define AOFF_mm_swap_address 0x000000f8 #define ASIZ_mm_swap_address 0x00000008 -#define AOFF_mm_segments 0x000000d0 +#define AOFF_mm_segments 0x00000100 #define ASIZ_mm_segments 0x00000008 -#define ASIZ_mm 0x000000d8 +#define ASIZ_mm 0x00000108 #define AOFF_thread_ksp 0x00000000 #define ASIZ_thread_ksp 0x00000008 #define AOFF_thread_wstate 0x00000008 @@ -816,47 +812,45 @@ #define ASIZ_thread_cwp 0x00000002 #define AOFF_thread_flags 0x0000000c #define ASIZ_thread_flags 0x00000002 -#define AOFF_thread_ctx 0x0000000e -#define ASIZ_thread_ctx 0x00000002 +#define AOFF_thread_current_ds 0x0000000e +#define ASIZ_thread_current_ds 0x00000001 #define AOFF_thread_w_saved 0x00000010 #define ASIZ_thread_w_saved 0x00000002 #define AOFF_thread_new_signal 0x00000012 #define ASIZ_thread_new_signal 0x00000002 -#define AOFF_thread____pad 0x00000014 -#define ASIZ_thread____pad 0x00000004 -#define AOFF_thread_current_ds 0x00000018 -#define ASIZ_thread_current_ds 0x00000008 -#define AOFF_thread_kregs 0x00000020 +#define AOFF_thread_ctx 0x00000014 +#define ASIZ_thread_ctx 0x00000002 +#define AOFF_thread_kregs 0x00000018 #define ASIZ_thread_kregs 0x00000008 -#define AOFF_thread_utraps 0x00000028 +#define AOFF_thread_utraps 0x00000020 #define ASIZ_thread_utraps 0x00000008 -#define AOFF_thread_reg_window 0x00000030 +#define AOFF_thread_fpdepth 0x00000028 +#define ASIZ_thread_fpdepth 0x00000001 +#define AOFF_thread_fpsaved 0x00000029 +#define ASIZ_thread_fpsaved 0x00000007 +#define AOFF_thread_gsr 0x00000030 +#define ASIZ_thread_gsr 0x00000007 +#define AOFF_thread_xfsr 0x00000038 +#define ASIZ_thread_xfsr 0x00000038 +#define AOFF_thread_reg_window 0x00000070 #define ASIZ_thread_reg_window 0x00000380 -#define AOFF_thread_rwbuf_stkptrs 0x000003b0 +#define AOFF_thread_rwbuf_stkptrs 0x000003f0 #define ASIZ_thread_rwbuf_stkptrs 0x00000038 -#define AOFF_thread_sig_address 0x000003e8 +#define AOFF_thread_sig_address 0x00000428 #define ASIZ_thread_sig_address 0x00000008 -#define AOFF_thread_sig_desc 0x000003f0 +#define AOFF_thread_sig_desc 0x00000430 #define ASIZ_thread_sig_desc 0x00000008 -#define AOFF_thread_user_cntd0 0x000003f8 +#define AOFF_thread_user_cntd0 0x00000438 #define ASIZ_thread_user_cntd0 0x00000008 -#define AOFF_thread_user_cntd1 0x00000400 +#define AOFF_thread_user_cntd1 0x00000440 #define ASIZ_thread_user_cntd1 0x00000008 -#define AOFF_thread_kernel_cntd0 0x00000408 +#define AOFF_thread_kernel_cntd0 0x00000448 #define ASIZ_thread_kernel_cntd0 0x00000008 -#define AOFF_thread_kernel_cntd1 0x00000410 +#define AOFF_thread_kernel_cntd1 0x00000450 #define ASIZ_thread_kernel_cntd1 0x00000008 -#define AOFF_thread_pcr_reg 0x00000418 +#define AOFF_thread_pcr_reg 0x00000458 #define ASIZ_thread_pcr_reg 0x00000008 -#define AOFF_thread_fpdepth 0x00000420 -#define ASIZ_thread_fpdepth 0x00000001 -#define AOFF_thread_fpsaved 0x00000421 -#define ASIZ_thread_fpsaved 0x00000007 -#define AOFF_thread_gsr 0x00000428 -#define ASIZ_thread_gsr 0x00000007 -#define AOFF_thread_xfsr 0x00000430 -#define ASIZ_thread_xfsr 0x00000038 -#define ASIZ_thread 0x00000470 +#define ASIZ_thread 0x00000460 #endif /* SPIN_LOCK_DEBUG */ #endif /* CONFIG_SMP */ diff --git a/include/asm-sparc64/audioio.h b/include/asm-sparc64/audioio.h index ca5e06538..27543806b 100644 --- a/include/asm-sparc64/audioio.h +++ b/include/asm-sparc64/audioio.h @@ -275,7 +275,7 @@ struct sparcaudio_driver struct linux_sbus_device *dev; /* Processes blocked on open() sit here. */ - struct wait_queue *open_wait; + wait_queue_head_t open_wait; /* Task queue for this driver's bottom half. */ struct tq_struct tqueue; @@ -288,7 +288,7 @@ struct sparcaudio_driver size_t *output_sizes, output_size, output_buffer_size; int num_output_buffers, output_front, output_rear, output_offset; int output_count, output_active, playing_count, output_eof; - struct wait_queue *output_write_wait, *output_drain_wait; + wait_queue_head_t output_write_wait, output_drain_wait; char *output_notify; /* Support for a circular queue of input buffers. */ @@ -296,7 +296,7 @@ struct sparcaudio_driver size_t *input_sizes, input_size, input_buffer_size; int num_input_buffers, input_front, input_rear, input_offset; int input_count, input_active, recording_count; - struct wait_queue *input_read_wait; + wait_queue_head_t input_read_wait; /* Hack to make it look like we support variable size buffers. */ int buffer_size; diff --git a/include/asm-sparc64/checksum.h b/include/asm-sparc64/checksum.h index e3da2651a..5308186e7 100644 --- a/include/asm-sparc64/checksum.h +++ b/include/asm-sparc64/checksum.h @@ -1,4 +1,4 @@ -/* $Id: checksum.h,v 1.11 1998/04/17 02:37:22 davem Exp $ */ +/* $Id: checksum.h,v 1.12 1999/05/25 16:53:36 jj Exp $ */ #ifndef __SPARC64_CHECKSUM_H #define __SPARC64_CHECKSUM_H @@ -49,17 +49,20 @@ extern __inline__ unsigned int csum_partial_copy_nocheck (const char *src, char *dst, int len, unsigned int sum) { - __asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "i" (ASI_P)); - return csum_partial_copy_sparc64(src, dst, len, sum); + int ret; + unsigned char cur_ds = current->tss.current_ds.seg; + __asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "i" (ASI_P)); + ret = csum_partial_copy_sparc64(src, dst, len, sum); + __asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "r" (cur_ds)); + return ret; } extern __inline__ unsigned int csum_partial_copy_from_user(const char *src, char *dst, int len, unsigned int sum, int *err) { - __asm__ __volatile__ ("wr %%g0, %0, %%asi - stx %1, [%%sp + 0x7ff + 128] - " : : "i" (ASI_S), "r" (err)); + __asm__ __volatile__ ("stx %0, [%%sp + 0x7ff + 128]" + : : "r" (err)); return csum_partial_copy_sparc64(src, dst, len, sum); } diff --git a/include/asm-sparc64/fpumacro.h b/include/asm-sparc64/fpumacro.h index 9fd631670..3fd5cab0c 100644 --- a/include/asm-sparc64/fpumacro.h +++ b/include/asm-sparc64/fpumacro.h @@ -30,44 +30,4 @@ extern __inline__ void fprs_write(unsigned long val) __asm__ __volatile__("wr %0, 0x0, %%fprs" : : "r" (val)); } -extern __inline__ void fpsave(unsigned long *fpregs, - unsigned long *fsr, - unsigned long *gsr) -{ - __asm__ __volatile__ (" - wr %%g0, %3, %%asi - rd %%gsr, %%g1 - membar #LoadStore | #StoreStore - stx %%fsr, [%1] - stx %%g1, [%2] - stda %%f0, [%0] %%asi - stda %%f16, [%0 + 64] %%asi - stda %%f32, [%0 + 128] %%asi - stda %%f48, [%0 + 192] %%asi - membar #Sync -" : /* No outputs */ - : "r" (fpregs), "r" (fsr), "r" (gsr), "i" (ASI_BLK_P) - : "g1"); -} - -extern __inline__ void fpload(unsigned long *fpregs, - unsigned long *fsr, - unsigned long *gsr) -{ - __asm__ __volatile__ (" - wr %%g0, %3, %%asi - membar #StoreLoad | #LoadLoad - ldda [%0] %%asi, %%f0 - ldda [%0 + 64] %%asi, %%f16 - ldda [%0 + 128] %%asi, %%f32 - ldda [%0 + 192] %%asi, %%f48 - ldx [%1], %%fsr - ldx [%2], %%g1 - wr %%g1, 0, %%gsr - membar #Sync -" : /* No outputs */ - : "r" (fpregs), "r" (fsr), "r" (gsr), "i" (ASI_BLK_P) - : "g1"); -} - #endif /* !(_SPARC64_FPUMACRO_H) */ diff --git a/include/asm-sparc64/ide.h b/include/asm-sparc64/ide.h index 191b95cb2..c8db43d59 100644 --- a/include/asm-sparc64/ide.h +++ b/include/asm-sparc64/ide.h @@ -1,4 +1,4 @@ -/* $Id: ide.h,v 1.12 1999/04/17 14:25:29 davem Exp $ +/* $Id: ide.h,v 1.14 1999/05/15 05:02:35 davem Exp $ * ide.h: Ultra/PCI specific IDE glue. * * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) @@ -11,8 +11,8 @@ #ifdef __KERNEL__ #include <asm/pgtable.h> - -typedef unsigned long ide_ioreg_t; +#include <asm/io.h> +#include <asm/hdreg.h> #undef MAX_HWIFS #define MAX_HWIFS 2 @@ -29,21 +29,42 @@ static __inline__ ide_ioreg_t ide_default_io_base(int index) return 0; } -static __inline__ void ide_init_hwif_ports(ide_ioreg_t *p, ide_ioreg_t base, int *irq) +static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port, ide_ioreg_t ctrl_port, int *irq) { + ide_ioreg_t reg = data_port; int i; - /* These are simply offsets from base. */ - for (i = 0; i < 8; i++) - *p++ = base++; - /* PCI code needs to figure out these. */ - for ( ; i < 10; i++) - *p++ = 0; - /* PCI code needs to figure out this. */ + for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { + hw->io_ports[i] = reg; + reg += 1; + } + if (ctrl_port) { + hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port; + } else { + hw->io_ports[IDE_CONTROL_OFFSET] = 0; + } if (irq != NULL) *irq = 0; } +/* + * This registers the standard ports for this architecture with the IDE + * driver. + */ +static __inline__ void ide_init_default_hwifs(void) +{ +#ifdef __DO_I_NEED_THIS + hw_regs_t hw; + int index; + + for (index = 0; index < MAX_HWIFS; index++) { + ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, 0); + hw.irq = ide_default_irq(ide_default_io_base(index)); + ide_register_hw(&hw, NULL); + } +#endif /* __DO_I_NEED_THIS */ +} + typedef union { unsigned int all : 8; /* all of the bits together */ struct { @@ -92,11 +113,6 @@ static __inline__ void ide_release_region(ide_ioreg_t base, unsigned int size) #undef HD_DATA #define HD_DATA ((ide_ioreg_t)0) -static __inline__ int ide_ack_intr(ide_ioreg_t status_port, ide_ioreg_t irq_port) -{ - return 1; -} - /* From m68k code... */ #ifdef insl @@ -255,13 +271,12 @@ static __inline__ void ide_fix_driveid(struct hd_driveid *id) } } -static __inline__ void ide_release_lock (int *ide_lock) -{ -} - -static __inline__ void ide_get_lock (int *ide_lock, void (*handler)(int, void *, struct pt_regs *), void *data) -{ -} +/* + * The following are not needed for the non-m68k ports + */ +#define ide_ack_intr(hwif) (1) +#define ide_release_lock(lock) do {} while (0) +#define ide_get_lock(lock, hdlr, data) do {} while (0) #endif /* __KERNEL__ */ diff --git a/include/asm-sparc64/io.h b/include/asm-sparc64/io.h index c9e3c8460..c80345840 100644 --- a/include/asm-sparc64/io.h +++ b/include/asm-sparc64/io.h @@ -1,4 +1,4 @@ -/* $Id: io.h,v 1.19 1998/08/23 05:41:46 ecd Exp $ */ +/* $Id: io.h,v 1.20 1999/05/14 07:23:18 davem Exp $ */ #ifndef __SPARC64_IO_H #define __SPARC64_IO_H @@ -226,4 +226,10 @@ extern void *sparc_alloc_io(u32 pa, void *va, int sz, char *name, extern void sparc_free_io (void *va, int sz); extern void *sparc_dvma_malloc (int sz, char *name, __u32 *dvma_addr); +/* Nothing to do */ + +#define dma_cache_inv(_start,_size) do { } while (0) +#define dma_cache_wback(_start,_size) do { } while (0) +#define dma_cache_wback_inv(_start,_size) do { } while (0) + #endif /* !(__SPARC64_IO_H) */ diff --git a/include/asm-sparc64/md.h b/include/asm-sparc64/md.h index 03879934e..373c76744 100644 --- a/include/asm-sparc64/md.h +++ b/include/asm-sparc64/md.h @@ -1,4 +1,4 @@ -/* $Id: md.h,v 1.2 1997/12/27 16:28:38 jj Exp $ +/* $Id: md.h,v 1.3 1999/05/25 16:53:28 jj Exp $ * md.h: High speed xor_block operation for RAID4/5 * utilizing the UltraSparc Visual Instruction Set. * @@ -11,7 +11,7 @@ #include <asm/head.h> #include <asm/asi.h> -#define HAVE_ARCH_XORBLOCK +#undef HAVE_ARCH_XORBLOCK #define MD_XORBLOCK_ALIGNMENT 64 diff --git a/include/asm-sparc64/mmu_context.h b/include/asm-sparc64/mmu_context.h index d29cb2a35..c9f984418 100644 --- a/include/asm-sparc64/mmu_context.h +++ b/include/asm-sparc64/mmu_context.h @@ -1,4 +1,4 @@ -/* $Id: mmu_context.h,v 1.35 1999/05/08 03:03:20 davem Exp $ */ +/* $Id: mmu_context.h,v 1.36 1999/05/25 16:53:34 jj Exp $ */ #ifndef __SPARC64_MMU_CONTEXT_H #define __SPARC64_MMU_CONTEXT_H @@ -27,7 +27,7 @@ extern void get_new_mmu_context(struct mm_struct *mm); #define init_new_context(__mm) ((__mm)->context = NO_CONTEXT) /* Kernel threads like rpciod and nfsd drop their mm, and then use - * init_mm, when this happens we must make sure the tsk->tss.ctx is + * init_mm, when this happens we must make sure the secondary context is * updated as well. Otherwise we have disasters relating to * set_fs/get_fs usage later on. * @@ -49,12 +49,7 @@ extern void get_new_mmu_context(struct mm_struct *mm); } \ } while (0) -/* This routine must called with interrupts off, - * this is necessary to guarentee that the current->tss.ctx - * to CPU secontary context register relationship is maintained - * when traps can happen. - * - * Also the caller must flush the current set of user windows +/* The caller must flush the current set of user windows * to the stack (if necessary) before we get here. */ extern __inline__ void __get_mmu_context(struct task_struct *tsk) @@ -62,27 +57,30 @@ extern __inline__ void __get_mmu_context(struct task_struct *tsk) register unsigned long paddr asm("o5"); register unsigned long pgd_cache asm("o4"); struct mm_struct *mm = tsk->mm; + unsigned long asi; if(!(tsk->tss.flags & SPARC_FLAG_KTHREAD) && !(tsk->flags & PF_EXITING)) { unsigned long ctx = tlb_context_cache; if((mm->context ^ ctx) & CTX_VERSION_MASK) get_new_mmu_context(mm); + tsk->tss.ctx = mm->context & 0x3ff; + spitfire_set_secondary_context(mm->context & 0x3ff); + __asm__ __volatile__("flush %g6"); if(!(mm->cpu_vm_mask & (1UL<<smp_processor_id()))) { - spitfire_set_secondary_context(mm->context & 0x3ff); - __asm__ __volatile__("flush %g6"); spitfire_flush_dtlb_secondary_context(); spitfire_flush_itlb_secondary_context(); __asm__ __volatile__("flush %g6"); } - /* Don't worry, set_fs() will restore it... */ - /* Sigh, damned include loops... just poke seg directly. */ - tsk->tss.ctx = (tsk->tss.current_ds.seg ? - (mm->context & 0x3ff) : 0); - } else + asi = tsk->tss.current_ds.seg; + } else { tsk->tss.ctx = 0; - spitfire_set_secondary_context(tsk->tss.ctx); - __asm__ __volatile__("flush %g6"); + spitfire_set_secondary_context(0); + __asm__ __volatile__("flush %g6"); + asi = ASI_P; + } + /* Sigh, damned include loops... just poke seg directly. */ + __asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "r" (asi)); paddr = __pa(mm->pgd); if((tsk->tss.flags & (SPARC_FLAG_32BIT|SPARC_FLAG_KTHREAD)) == (SPARC_FLAG_32BIT)) diff --git a/include/asm-sparc64/namei.h b/include/asm-sparc64/namei.h index cd24e96cf..2dbcdedf3 100644 --- a/include/asm-sparc64/namei.h +++ b/include/asm-sparc64/namei.h @@ -28,7 +28,7 @@ __sparc64_lookup_dentry(const char *name, int lookup_flags) base = lookup_dentry (emul, dget (current->fs->root), - (LOOKUP_FOLLOW | LOOKUP_DIRECTORY | LOOKUP_SLASHOK)); + (LOOKUP_FOLLOW | LOOKUP_DIRECTORY)); if (IS_ERR (base)) return NULL; diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h index b4782e72f..90aa49e77 100644 --- a/include/asm-sparc64/pgtable.h +++ b/include/asm-sparc64/pgtable.h @@ -1,4 +1,4 @@ -/* $Id: pgtable.h,v 1.103 1999/03/28 08:40:04 davem Exp $ +/* $Id: pgtable.h,v 1.105 1999/05/27 04:52:51 davem Exp $ * pgtable.h: SpitFire page table operations. * * Copyright 1996,1997 David S. Miller (davem@caip.rutgers.edu) diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h index 0facbaf4f..855be2e88 100644 --- a/include/asm-sparc64/processor.h +++ b/include/asm-sparc64/processor.h @@ -1,4 +1,4 @@ -/* $Id: processor.h,v 1.53 1999/01/19 07:57:51 davem Exp $ +/* $Id: processor.h,v 1.55 1999/05/27 04:52:54 davem Exp $ * include/asm-sparc64/processor.h * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) @@ -7,6 +7,12 @@ #ifndef __ASM_SPARC64_PROCESSOR_H #define __ASM_SPARC64_PROCESSOR_H +/* + * Sparc64 implementation of macro that returns current + * instruction pointer ("program counter"). + */ +#define current_text_addr() ({ void *pc; __asm__("rd %%pc, %0" : "=r" (pc)); pc; }) + #include <asm/asi.h> #include <asm/a.out.h> #include <asm/pstate.h> @@ -36,7 +42,7 @@ #define NSWINS 7 typedef struct { - unsigned long seg; + unsigned char seg; } mm_segment_t; /* The Sparc processor specific thread struct. */ @@ -45,15 +51,19 @@ struct thread_struct { unsigned short wstate; unsigned short cwp; unsigned short flags; - unsigned short ctx; + mm_segment_t current_ds; /*DC2*/ unsigned short w_saved; unsigned short new_signal; - unsigned int ___pad; - mm_segment_t current_ds; + unsigned short ctx; + struct pt_regs *kregs; -/*DC3*/ struct pt_regs *kregs; - unsigned long *utraps; +/*DC3*/ unsigned long *utraps; + unsigned char fpdepth; + unsigned char fpsaved[7]; + +/*DC4*/ unsigned char gsr[7]; + unsigned long xfsr[7]; struct reg_window reg_window[NSWINS] __attribute__ ((aligned (16))); unsigned long rwbuf_stkptrs[NSWINS] __attribute__ ((aligned (8))); @@ -66,10 +76,6 @@ struct thread_struct { u64 kernel_cntd0, kernel_cntd1; u64 pcr_reg; - unsigned char fpdepth; - unsigned char fpsaved[7]; - unsigned char gsr[7]; - unsigned long xfsr[7]; }; #endif /* !(__ASSEMBLY__) */ @@ -85,12 +91,14 @@ struct thread_struct { NULL, PAGE_SHARED , VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL } #define INIT_TSS { \ -/* ksp, wstate, cwp, flags, ctx, */ \ - 0, 0, 0, SPARC_FLAG_KTHREAD, 0, \ -/* w_saved, new_signal, padding, current_ds, */ \ - 0, 0, 0, KERNEL_DS, \ -/* kregs, utraps, */ \ - 0, 0, \ +/* ksp, wstate, cwp, flags, current_ds, */ \ + 0, 0, 0, SPARC_FLAG_KTHREAD, KERNEL_DS, \ +/* w_saved, new_signal, ctx, kregs, */ \ + 0, 0, 0, 0, \ +/* utraps, */ \ + 0, \ +/* fpdepth, fpsaved, gsr, xfsr */ \ + 0, { 0 }, { 0 }, { 0 }, \ /* reg_window */ \ { { { 0, }, { 0, } }, }, \ /* rwbuf_stkptrs */ \ @@ -99,8 +107,6 @@ struct thread_struct { 0, 0, \ /* user_cntd0, user_cndd1, kernel_cntd0, kernel_cntd0, pcr_reg */ \ 0, 0, 0, 0, 0, \ -/* fpdepth, fpsaved, gsr, xfsr */ \ - 0, { 0 }, { 0 }, { 0 }, \ } #ifndef __ASSEMBLY__ diff --git a/include/asm-sparc64/sab82532.h b/include/asm-sparc64/sab82532.h index 169e88d02..8cb99a22f 100644 --- a/include/asm-sparc64/sab82532.h +++ b/include/asm-sparc64/sab82532.h @@ -1,4 +1,4 @@ -/* $Id: sab82532.h,v 1.4 1998/10/25 23:04:29 ecd Exp $ +/* $Id: sab82532.h,v 1.5 1999/05/12 11:21:22 davem Exp $ * sab82532.h: Register Definitions for the Siemens SAB82532 DUSCC * * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be) @@ -173,9 +173,9 @@ struct sab82532 { struct async_icount icount; struct termios normal_termios; struct termios callout_termios; - struct wait_queue *open_wait; - struct wait_queue *close_wait; - struct wait_queue *delta_msr_wait; + wait_queue_head_t open_wait; + wait_queue_head_t close_wait; + wait_queue_head_t delta_msr_wait; struct sab82532 *next; struct sab82532 *prev; }; diff --git a/include/asm-sparc64/semaphore.h b/include/asm-sparc64/semaphore.h index e35a66513..e119514c4 100644 --- a/include/asm-sparc64/semaphore.h +++ b/include/asm-sparc64/semaphore.h @@ -10,21 +10,62 @@ struct semaphore { atomic_t count; atomic_t waking; - struct wait_queue * wait; + wait_queue_head_t wait; +#if WAITQUEUE_DEBUG + long __magic; +#endif }; -#define MUTEX ((struct semaphore) { ATOMIC_INIT(1), ATOMIC_INIT(0), NULL }) -#define MUTEX_LOCKED ((struct semaphore) { ATOMIC_INIT(0), ATOMIC_INIT(0), NULL }) +#if WAITQUEUE_DEBUG +# define __SEM_DEBUG_INIT(name) \ + , (long)&(name).__magic +#else +# define __SEM_DEBUG_INIT(name) +#endif + +#define __SEMAPHORE_INITIALIZER(name,count) \ +{ ATOMIC_INIT(count), ATOMIC_INIT(0), __WAIT_QUEUE_HEAD_INITIALIZER((name).wait) \ + __SEM_DEBUG_INIT(name) } + +#define __MUTEX_INITIALIZER(name) \ + __SEMAPHORE_INITIALIZER(name,1) + +#define __DECLARE_SEMAPHORE_GENERIC(name,count) \ + struct semaphore name = __SEMAPHORE_INITIALIZER(name,count) + +#define DECLARE_MUTEX(name) __DECLARE_SEMAPHORE_GENERIC(name,1) +#define DECLARE_MUTEX_LOCKED(name) __DECLARE_SEMAPHORE_GENERIC(name,0) + +extern inline void sema_init (struct semaphore *sem, int val) +{ + atomic_set(&sem->count, val); + atomic_set(&sem->waking, 0); + init_waitqueue_head(&sem->wait); +#if WAITQUEUE_DEBUG + sem->__magic = (long)&sem->__magic; +#endif +} + +static inline void init_MUTEX (struct semaphore *sem) +{ + sema_init(sem, 1); +} + +static inline void init_MUTEX_LOCKED (struct semaphore *sem) +{ + sema_init(sem, 0); +} extern void __down(struct semaphore * sem); extern int __down_interruptible(struct semaphore * sem); extern int __down_trylock(struct semaphore * sem); extern void __up(struct semaphore * sem); -#define sema_init(sem, val) atomic_set(&((sem)->count), val) - extern __inline__ void down(struct semaphore * sem) { +#if WAITQUEUE_DEBUG + CHECK_MAGIC(sem->__magic); +#endif __asm__ __volatile__(" 1: lduw [%0], %%g5 sub %%g5, 1, %%g7 @@ -56,6 +97,9 @@ extern __inline__ int down_interruptible(struct semaphore *sem) { int ret = 0; +#if WAITQUEUE_DEBUG + CHECK_MAGIC(sem->__magic); +#endif __asm__ __volatile__(" 1: lduw [%2], %%g5 sub %%g5, 1, %%g7 @@ -89,6 +133,9 @@ extern __inline__ int down_interruptible(struct semaphore *sem) extern inline int down_trylock(struct semaphore *sem) { int ret = 0; +#if WAITQUEUE_DEBUG + CHECK_MAGIC(sem->__magic); +#endif __asm__ __volatile__(" 1: lduw [%2], %%g5 sub %%g5, 1, %%g7 @@ -121,6 +168,9 @@ extern inline int down_trylock(struct semaphore *sem) extern __inline__ void up(struct semaphore * sem) { +#if WAITQUEUE_DEBUG + CHECK_MAGIC(sem->__magic); +#endif __asm__ __volatile__(" membar #StoreLoad | #LoadLoad 1: lduw [%0], %%g5 diff --git a/include/asm-sparc64/softirq.h b/include/asm-sparc64/softirq.h index f249cd698..b8e017d79 100644 --- a/include/asm-sparc64/softirq.h +++ b/include/asm-sparc64/softirq.h @@ -16,6 +16,9 @@ extern unsigned int local_bh_count; #define local_bh_count (cpu_data[smp_processor_id()].bh_count) #endif +#define local_bh_disable() (local_bh_count++) +#define local_bh_enable() (local_bh_count--) + /* The locking mechanism for base handlers, to prevent re-entrancy, * is entirely private to an implementation, it should not be * referenced at all outside of this file. @@ -94,7 +97,8 @@ static inline void end_bh_atomic(void) static inline int softirq_trylock(int cpu) { if (spin_trylock(&global_bh_count)) { - if (atomic_read(&global_bh_lock) == 0) { + if (atomic_read(&global_bh_lock) == 0 && + cpu_data[cpu].bh_count == 0) { ++(cpu_data[cpu].bh_count); return 1; } diff --git a/include/asm-sparc64/spinlock.h b/include/asm-sparc64/spinlock.h index 1d3b35020..d0c25a965 100644 --- a/include/asm-sparc64/spinlock.h +++ b/include/asm-sparc64/spinlock.h @@ -20,6 +20,14 @@ typedef unsigned char spinlock_t; #define spin_unlock(lock) do { } while(0) #define spin_lock_irq(lock) cli() #define spin_unlock_irq(lock) sti() +#define spin_lock_bh(lock) \ +do { local_bh_count++; \ + barrier(); \ +} while(0) +#define spin_unlock_bh(lock) \ +do { barrier(); \ + local_bh_count--; \ +} while(0) #define spin_lock_irqsave(lock, flags) save_and_cli(flags) #define spin_unlock_irqrestore(lock, flags) restore_flags(flags) @@ -43,9 +51,28 @@ typedef unsigned long rwlock_t; #define write_unlock(lock) do { } while(0) #define read_lock_irq(lock) cli() #define read_unlock_irq(lock) sti() +#define read_lock_bh(lock) \ +do { local_bh_count++; \ + barrier(); \ +} while(0) +#define read_unlock_bh(lock) \ +do { barrier(); \ + local_bh_count--; \ +} while(0) + #define write_lock_irq(lock) cli() #define write_unlock_irq(lock) sti() +#define write_lock_bh(lock) \ +do { local_bh_count++; \ + barrier(); \ +} while(0) + +#define write_unlock_bh(lock) \ +do { barrier(); \ + local_bh_count--; \ +} while(0) + #define read_lock_irqsave(lock, flags) save_and_cli(flags) #define read_unlock_irqrestore(lock, flags) restore_flags(flags) #define write_lock_irqsave(lock, flags) save_and_cli(flags) @@ -149,6 +176,16 @@ extern __inline__ void spin_unlock_irq(spinlock_t *lock) : "memory"); } +#define spin_lock_bh(__lock) \ +do { local_bh_count++; \ + spin_lock(__lock); \ +} while(0) + +#define spin_unlock_bh(__lock) \ +do { spin_unlock(__lock); \ + local_bh_count--; \ +} while(0) + #define spin_lock_irqsave(__lock, flags) \ do { register spinlock_t *__lp asm("g1"); \ __lp = (__lock); \ @@ -186,11 +223,11 @@ typedef struct { unsigned char lock; unsigned int owner_pc, owner_cpu; } spinlock_t; -#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0, 0, NO_PROC_ID } +#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0, 0, 0xff } #define spin_lock_init(__lock) \ do { (__lock)->lock = 0; \ (__lock)->owner_pc = 0; \ - (__lock)->owner_cpu = NO_PROC_ID; \ + (__lock)->owner_cpu = 0xff; \ } while(0) #define spin_is_locked(__lock) (*((volatile unsigned char *)(&((__lock)->lock))) != 0) #define spin_unlock_wait(__lock) \ @@ -205,9 +242,11 @@ extern int _spin_trylock (spinlock_t *lock); #define spin_trylock(lp) _spin_trylock(lp) #define spin_lock(lock) _do_spin_lock(lock, "spin_lock") #define spin_lock_irq(lock) do { __cli(); _do_spin_lock(lock, "spin_lock_irq"); } while(0) +#define spin_lock_bh(lock) do { local_bh_count++; _do_spin_lock(lock, "spin_lock_bh"); } while(0) #define spin_lock_irqsave(lock, flags) do { __save_and_cli(flags); _do_spin_lock(lock, "spin_lock_irqsave"); } while(0) #define spin_unlock(lock) _do_spin_unlock(lock) #define spin_unlock_irq(lock) do { _do_spin_unlock(lock); __sti(); } while(0) +#define spin_unlock_bh(lock) do { _do_spin_unlock(lock); local_bh_count--; } while(0) #define spin_unlock_irqrestore(lock, flags) do { _do_spin_unlock(lock); __restore_flags(flags); } while(0) #endif /* SPIN_LOCK_DEBUG */ @@ -303,8 +342,12 @@ extern __inline__ void write_unlock(rwlock_t *rw) #define read_lock_irq(lock) do { __cli(); read_lock(lock); } while (0) #define read_unlock_irq(lock) do { read_unlock(lock); __sti(); } while (0) +#define read_lock_bh(lock) do { local_bh_count++; read_lock(lock); } while (0) +#define read_unlock_bh(lock) do { read_unlock(lock); local_bh_count--; } while (0) #define write_lock_irq(lock) do { __cli(); write_lock(lock); } while (0) #define write_unlock_irq(lock) do { write_unlock(lock); __sti(); } while (0) +#define write_lock_bh(lock) do { local_bh_count++; write_lock(lock); } while (0) +#define write_unlock_bh(lock) do { write_unlock(lock); local_bh_count--; } while (0) #define read_lock_irqsave(lock, flags) \ do { __save_and_cli(flags); read_lock(lock); } while (0) @@ -322,7 +365,7 @@ typedef struct { unsigned int writer_pc, writer_cpu; unsigned int reader_pc[4]; } rwlock_t; -#define RW_LOCK_UNLOCKED (rwlock_t) { 0, 0, NO_PROC_ID, { 0, 0, 0, 0 } } +#define RW_LOCK_UNLOCKED (rwlock_t) { 0, 0, 0xff, { 0, 0, 0, 0 } } extern void _do_read_lock(rwlock_t *rw, char *str); extern void _do_read_unlock(rwlock_t *rw, char *str); @@ -336,6 +379,7 @@ do { unsigned long flags; \ __restore_flags(flags); \ } while(0) #define read_lock_irq(lock) do { __cli(); _do_read_lock(lock, "read_lock_irq"); } while(0) +#define read_lock_bh(lock) do { local_bh_count++; _do_read_lock(lock, "read_lock_bh"); } while(0) #define read_lock_irqsave(lock, flags) do { __save_and_cli(flags); _do_read_lock(lock, "read_lock_irqsave"); } while(0) #define read_unlock(lock) \ @@ -345,6 +389,7 @@ do { unsigned long flags; \ __restore_flags(flags); \ } while(0) #define read_unlock_irq(lock) do { _do_read_unlock(lock, "read_unlock_irq"); __sti() } while(0) +#define read_unlock_bh(lock) do { _do_read_unlock(lock, "read_unlock_bh"); local_bh_count--; } while(0) #define read_unlock_irqrestore(lock, flags) do { _do_read_unlock(lock, "read_unlock_irqrestore"); __restore_flags(flags); } while(0) #define write_lock(lock) \ @@ -354,6 +399,7 @@ do { unsigned long flags; \ __restore_flags(flags); \ } while(0) #define write_lock_irq(lock) do { __cli(); _do_write_lock(lock, "write_lock_irq"); } while(0) +#define write_lock_bh(lock) do { local_bh_count++; _do_write_lock(lock, "write_lock_bh"); } while(0) #define write_lock_irqsave(lock, flags) do { __save_and_cli(flags); _do_write_lock(lock, "write_lock_irqsave"); } while(0) #define write_unlock(lock) \ @@ -363,6 +409,7 @@ do { unsigned long flags; \ __restore_flags(flags); \ } while(0) #define write_unlock_irq(lock) do { _do_write_unlock(lock); __sti(); } while(0) +#define write_unlock_bh(lock) do { _do_write_unlock(lock); local_bh_count--; } while(0) #define write_unlock_irqrestore(lock, flags) do { _do_write_unlock(lock); __restore_flags(flags); } while(0) #endif /* SPIN_LOCK_DEBUG */ diff --git a/include/asm-sparc64/uaccess.h b/include/asm-sparc64/uaccess.h index 0643d0487..a6f5c9a44 100644 --- a/include/asm-sparc64/uaccess.h +++ b/include/asm-sparc64/uaccess.h @@ -1,4 +1,4 @@ -/* $Id: uaccess.h,v 1.29 1999/05/08 03:03:25 davem Exp $ */ +/* $Id: uaccess.h,v 1.30 1999/05/25 16:53:32 jj Exp $ */ #ifndef _ASM_UACCESS_H #define _ASM_UACCESS_H @@ -30,8 +30,8 @@ * "For historical reasons, these macros are grossly misnamed." -Linus */ -#define KERNEL_DS ((mm_segment_t) { 0x00 }) -#define USER_DS ((mm_segment_t) { 0x2B }) /* har har har */ +#define KERNEL_DS ((mm_segment_t) { ASI_P }) +#define USER_DS ((mm_segment_t) { ASI_AIUS }) /* har har har */ #define VERIFY_READ 0 #define VERIFY_WRITE 1 @@ -43,17 +43,8 @@ #define set_fs(val) \ do { \ - if (current->tss.current_ds.seg != val.seg) { \ - current->tss.current_ds = (val); \ - if (segment_eq((val), KERNEL_DS)) { \ - flushw_user (); \ - current->tss.ctx = 0; \ - } else { \ - current->tss.ctx = (current->mm->context & 0x3ff); \ - } \ - spitfire_set_secondary_context(current->tss.ctx); \ - __asm__ __volatile__("flush %g6"); \ - } \ + current->tss.current_ds = (val); \ + __asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "r" ((val).seg)); \ } while(0) #define __user_ok(addr,size) 1 @@ -154,7 +145,7 @@ default: if (__put_user_bad()) return retval; break; \ #define __put_user_asm(x,size,addr,ret) \ __asm__ __volatile__( \ "/* Put user asm, inline. */\n" \ -"1:\t" "st"#size "a %1, [%2] %4\n\t" \ +"1:\t" "st"#size "a %1, [%2] %%asi\n\t" \ "clr %0\n" \ "2:\n\n\t" \ ".section .fixup,#alloc,#execinstr\n\t" \ @@ -168,22 +159,22 @@ __asm__ __volatile__( \ ".word 1b, 3b\n\t" \ ".previous\n\n\t" \ : "=r" (ret) : "r" (x), "r" (__m(addr)), \ - "i" (-EFAULT), "i" (ASI_S)) + "i" (-EFAULT)) #define __put_user_asm_ret(x,size,addr,ret,foo) \ if (__builtin_constant_p(ret) && ret == -EFAULT) \ __asm__ __volatile__( \ "/* Put user asm ret, inline. */\n" \ -"1:\t" "st"#size "a %1, [%2] %3\n\n\t" \ +"1:\t" "st"#size "a %1, [%2] %%asi\n\n\t" \ ".section __ex_table,#alloc\n\t" \ ".align 4\n\t" \ ".word 1b, __ret_efault\n\n\t" \ ".previous\n\n\t" \ - : "=r" (foo) : "r" (x), "r" (__m(addr)), "i" (ASI_S)); \ + : "=r" (foo) : "r" (x), "r" (__m(addr))); \ else \ __asm__ __volatile( \ "/* Put user asm ret, inline. */\n" \ -"1:\t" "st"#size "a %1, [%2] %4\n\n\t" \ +"1:\t" "st"#size "a %1, [%2] %%asi\n\n\t" \ ".section .fixup,#alloc,#execinstr\n\t" \ ".align 4\n" \ "3:\n\t" \ @@ -195,7 +186,7 @@ __asm__ __volatile( \ ".word 1b, 3b\n\n\t" \ ".previous\n\n\t" \ : "=r" (foo) : "r" (x), "r" (__m(addr)), \ - "i" (ret), "i" (ASI_S)) + "i" (ret)) extern int __put_user_bad(void); @@ -223,7 +214,7 @@ default: if (__get_user_bad()) return retval; \ #define __get_user_asm(x,size,addr,ret) \ __asm__ __volatile__( \ "/* Get user asm, inline. */\n" \ -"1:\t" "ld"#size "a [%2] %4, %1\n\t" \ +"1:\t" "ld"#size "a [%2] %%asi, %1\n\t" \ "clr %0\n" \ "2:\n\n\t" \ ".section .fixup,#alloc,#execinstr\n\t" \ @@ -238,33 +229,33 @@ __asm__ __volatile__( \ ".word 1b, 3b\n\n\t" \ ".previous\n\t" \ : "=r" (ret), "=r" (x) : "r" (__m(addr)), \ - "i" (-EFAULT), "i" (ASI_S)) + "i" (-EFAULT)) #define __get_user_asm_ret(x,size,addr,retval) \ if (__builtin_constant_p(retval) && retval == -EFAULT) \ __asm__ __volatile__( \ "/* Get user asm ret, inline. */\n" \ -"1:\t" "ld"#size "a [%1] %2, %0\n\n\t" \ +"1:\t" "ld"#size "a [%1] %%asi, %0\n\n\t" \ ".section __ex_table,#alloc\n\t" \ ".align 4\n\t" \ ".word 1b,__ret_efault\n\n\t" \ ".previous\n\t" \ - : "=r" (x) : "r" (__m(addr)), "i" (ASI_S)); \ + : "=r" (x) : "r" (__m(addr))); \ else \ __asm__ __volatile__( \ "/* Get user asm ret, inline. */\n" \ -"1:\t" "ld"#size "a [%1] %2, %0\n\n\t" \ +"1:\t" "ld"#size "a [%1] %%asi, %0\n\n\t" \ ".section .fixup,#alloc,#execinstr\n\t" \ ".align 4\n" \ "3:\n\t" \ "ret\n\t" \ - " restore %%g0, %3, %%o0\n\n\t" \ + " restore %%g0, %2, %%o0\n\n\t" \ ".previous\n\t" \ ".section __ex_table,#alloc\n\t" \ ".align 4\n\t" \ ".word 1b, 3b\n\n\t" \ ".previous\n\t" \ - : "=r" (x) : "r" (__m(addr)), "i" (retval), "i" (ASI_S)) + : "=r" (x) : "r" (__m(addr)), "i" (retval)) extern int __get_user_bad(void); @@ -339,8 +330,6 @@ extern __inline__ __kernel_size_t __clear_user(void *addr, __kernel_size_t size) { extern __kernel_size_t __bzero_noasi(void *addr, __kernel_size_t size); - - __asm__ __volatile__ ("wr %%g0, %0, %%asi" : : "i" (ASI_S)); return __bzero_noasi(addr, size); } |