summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r--include/asm-sparc64/asm_offsets.h816
-rw-r--r--include/asm-sparc64/audioio.h6
-rw-r--r--include/asm-sparc64/checksum.h15
-rw-r--r--include/asm-sparc64/fpumacro.h40
-rw-r--r--include/asm-sparc64/ide.h61
-rw-r--r--include/asm-sparc64/io.h8
-rw-r--r--include/asm-sparc64/md.h4
-rw-r--r--include/asm-sparc64/mmu_context.h32
-rw-r--r--include/asm-sparc64/namei.h2
-rw-r--r--include/asm-sparc64/pgtable.h2
-rw-r--r--include/asm-sparc64/processor.h44
-rw-r--r--include/asm-sparc64/sab82532.h8
-rw-r--r--include/asm-sparc64/semaphore.h60
-rw-r--r--include/asm-sparc64/softirq.h6
-rw-r--r--include/asm-sparc64/spinlock.h53
-rw-r--r--include/asm-sparc64/uaccess.h47
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);
}