Subversion Repositories Kolibri OS

Rev

Rev 5270 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5270 Rev 6082
Line 134... Line 134...
134
	swapgs;					\
134
	swapgs;					\
135
	sysretq;
135
	sysretq;
136
#define USERGS_SYSRET32				\
136
#define USERGS_SYSRET32				\
137
	swapgs;					\
137
	swapgs;					\
138
	sysretl
138
	sysretl
139
#define ENABLE_INTERRUPTS_SYSEXIT32		\
-
 
140
	swapgs;					\
-
 
141
	sti;					\
-
 
142
	sysexit
-
 
Line 143... Line 139...
143
 
139
 
144
#else
140
#else
145
#define INTERRUPT_RETURN		iret
141
#define INTERRUPT_RETURN		iret
146
#define ENABLE_INTERRUPTS_SYSEXIT	sti; sysexit
142
#define ENABLE_INTERRUPTS_SYSEXIT	sti; sysexit
Line 161... Line 157...
161
{
157
{
162
	unsigned long flags = arch_local_save_flags();
158
	unsigned long flags = arch_local_save_flags();
Line 163... Line 159...
163
 
159
 
164
	return arch_irqs_disabled_flags(flags);
160
	return arch_irqs_disabled_flags(flags);
-
 
161
}
Line -... Line 162...
-
 
162
#endif /* !__ASSEMBLY__ */
-
 
163
 
-
 
164
#ifdef __ASSEMBLY__
-
 
165
#ifdef CONFIG_TRACE_IRQFLAGS
165
}
166
#  define TRACE_IRQS_ON		call trace_hardirqs_on_thunk;
-
 
167
#  define TRACE_IRQS_OFF	call trace_hardirqs_off_thunk;
-
 
168
#else
166
 
169
#  define TRACE_IRQS_ON
-
 
170
#  define TRACE_IRQS_OFF
167
#else
171
#endif
168
 
172
#ifdef CONFIG_DEBUG_LOCK_ALLOC
169
#ifdef CONFIG_X86_64
173
#  ifdef CONFIG_X86_64
170
#define ARCH_LOCKDEP_SYS_EXIT		call lockdep_sys_exit_thunk
174
#    define LOCKDEP_SYS_EXIT		call lockdep_sys_exit_thunk
171
#define ARCH_LOCKDEP_SYS_EXIT_IRQ	\
175
#    define LOCKDEP_SYS_EXIT_IRQ \
172
	TRACE_IRQS_ON; \
-
 
173
	sti; \
176
	TRACE_IRQS_ON; \
174
	SAVE_REST; \
-
 
175
	LOCKDEP_SYS_EXIT; \
177
	sti; \
176
	RESTORE_REST; \
178
	call lockdep_sys_exit_thunk; \
177
	cli; \
-
 
178
	TRACE_IRQS_OFF;
179
	cli; \
179
 
180
	TRACE_IRQS_OFF;
180
#else
181
#  else
181
#define ARCH_LOCKDEP_SYS_EXIT			\
182
#    define LOCKDEP_SYS_EXIT \
182
	pushl %eax;				\
183
	pushl %eax;				\
183
	pushl %ecx;				\
184
	pushl %ecx;				\
184
	pushl %edx;				\
185
	pushl %edx;				\
185
	call lockdep_sys_exit;			\
186
	call lockdep_sys_exit;			\
186
	popl %edx;				\
187
	popl %edx;				\
187
	popl %ecx;				\
-
 
188
	popl %eax;
188
	popl %ecx;				\
189
 
-
 
190
#define ARCH_LOCKDEP_SYS_EXIT_IRQ
-
 
191
#endif
-
 
192
 
-
 
193
#ifdef CONFIG_TRACE_IRQFLAGS
-
 
194
#  define TRACE_IRQS_ON		call trace_hardirqs_on_thunk;
-
 
195
#  define TRACE_IRQS_OFF	call trace_hardirqs_off_thunk;
-
 
196
#else
-
 
197
#  define TRACE_IRQS_ON
189
	popl %eax;
198
#  define TRACE_IRQS_OFF
-
 
199
#endif
-
 
200
#ifdef CONFIG_DEBUG_LOCK_ALLOC
-
 
201
#  define LOCKDEP_SYS_EXIT	ARCH_LOCKDEP_SYS_EXIT
190
#    define LOCKDEP_SYS_EXIT_IRQ
202
#  define LOCKDEP_SYS_EXIT_IRQ	ARCH_LOCKDEP_SYS_EXIT_IRQ
191
#  endif
203
# else
192
#else
204
#  define LOCKDEP_SYS_EXIT
193
#  define LOCKDEP_SYS_EXIT
205
#  define LOCKDEP_SYS_EXIT_IRQ
-
 
206
# endif
194
#  define LOCKDEP_SYS_EXIT_IRQ
-
 
195
#endif
207
 
196
#endif /* __ASSEMBLY__ */