⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 airq.c

📁 优龙2410linux2.6.8内核源代码
💻 C
字号:
/* *  drivers/s390/cio/airq.c *   S/390 common I/O routines -- support for adapter interruptions * *   $Revision: 1.12 $ * *    Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, *			      IBM Corporation *    Author(s): Ingo Adlung (adlung@de.ibm.com) *		 Cornelia Huck (cohuck@de.ibm.com) *		 Arnd Bergmann (arndb@de.ibm.com) */#include <linux/init.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/rcupdate.h>#include "cio_debug.h"#include "airq.h"static adapter_int_handler_t adapter_handler;/* * register for adapter interrupts * * With HiperSockets the zSeries architecture provides for *  means of adapter interrups, pseudo I/O interrupts that are *  not tied to an I/O subchannel, but to an adapter. However, *  it doesn't disclose the info how to enable/disable them, but *  to recognize them only. Perhaps we should consider them *  being shared interrupts, and thus build a linked list *  of adapter handlers ... to be evaluated ... */ints390_register_adapter_interrupt (adapter_int_handler_t handler){	int ret;	char dbf_txt[15];	CIO_TRACE_EVENT (4, "rgaint");	if (handler == NULL)		ret = -EINVAL;	else		ret = (cmpxchg(&adapter_handler, NULL, handler) ? -EBUSY : 0);	if (!ret)		synchronize_kernel();	sprintf (dbf_txt, "ret:%d", ret);	CIO_TRACE_EVENT (4, dbf_txt);	return ret;}ints390_unregister_adapter_interrupt (adapter_int_handler_t handler){	int ret;	char dbf_txt[15];	CIO_TRACE_EVENT (4, "urgaint");	if (handler == NULL)		ret = -EINVAL;	else {		adapter_handler = NULL;		synchronize_kernel();		ret = 0;	}	sprintf (dbf_txt, "ret:%d", ret);	CIO_TRACE_EVENT (4, dbf_txt);	return ret;}voiddo_adapter_IO (void){	CIO_TRACE_EVENT (6, "doaio");	if (adapter_handler)		(*adapter_handler) ();}EXPORT_SYMBOL (s390_register_adapter_interrupt);EXPORT_SYMBOL (s390_unregister_adapter_interrupt);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -