|  | #ifndef _BPF_JIT_H | 
|  | #define _BPF_JIT_H | 
|  |  | 
|  | #ifndef __ASSEMBLER__ | 
|  | #define G0		0x00 | 
|  | #define G1		0x01 | 
|  | #define G2		0x02 | 
|  | #define G3		0x03 | 
|  | #define G6		0x06 | 
|  | #define G7		0x07 | 
|  | #define O0		0x08 | 
|  | #define O1		0x09 | 
|  | #define O2		0x0a | 
|  | #define O3		0x0b | 
|  | #define O4		0x0c | 
|  | #define O5		0x0d | 
|  | #define SP		0x0e | 
|  | #define O7		0x0f | 
|  | #define L0		0x10 | 
|  | #define L1		0x11 | 
|  | #define L2		0x12 | 
|  | #define L3		0x13 | 
|  | #define L4		0x14 | 
|  | #define L5		0x15 | 
|  | #define L6		0x16 | 
|  | #define L7		0x17 | 
|  | #define I0		0x18 | 
|  | #define I1		0x19 | 
|  | #define I2		0x1a | 
|  | #define I3		0x1b | 
|  | #define I4		0x1c | 
|  | #define I5		0x1d | 
|  | #define FP		0x1e | 
|  | #define I7		0x1f | 
|  |  | 
|  | #define r_SKB		L0 | 
|  | #define r_HEADLEN	L4 | 
|  | #define r_SKB_DATA	L5 | 
|  | #define r_TMP		G1 | 
|  | #define r_TMP2		G3 | 
|  |  | 
|  | /* assembly code in arch/sparc/net/bpf_jit_asm_64.S */ | 
|  | extern u32 bpf_jit_load_word[]; | 
|  | extern u32 bpf_jit_load_half[]; | 
|  | extern u32 bpf_jit_load_byte[]; | 
|  | extern u32 bpf_jit_load_byte_msh[]; | 
|  | extern u32 bpf_jit_load_word_positive_offset[]; | 
|  | extern u32 bpf_jit_load_half_positive_offset[]; | 
|  | extern u32 bpf_jit_load_byte_positive_offset[]; | 
|  | extern u32 bpf_jit_load_byte_msh_positive_offset[]; | 
|  | extern u32 bpf_jit_load_word_negative_offset[]; | 
|  | extern u32 bpf_jit_load_half_negative_offset[]; | 
|  | extern u32 bpf_jit_load_byte_negative_offset[]; | 
|  | extern u32 bpf_jit_load_byte_msh_negative_offset[]; | 
|  |  | 
|  | #else | 
|  | #define r_RESULT	%o0 | 
|  | #define r_SKB		%o0 | 
|  | #define r_OFF		%o1 | 
|  | #define r_HEADLEN	%l4 | 
|  | #define r_SKB_DATA	%l5 | 
|  | #define r_TMP		%g1 | 
|  | #define r_TMP2		%g3 | 
|  | #endif | 
|  |  | 
|  | #endif /* _BPF_JIT_H */ |