/* Conflict?: H is already used by a number of drivers hid, bluetooth hci, andsomesounddriverssb16,hdsp,emu10k.AFAIK0xFCisunusedcommand
*/ #define HPI_IOCTL_LINUX _IOWR('H', 0xFC, struct hpi_ioctl_linux)
struct hpios_spinlock {
spinlock_t lock; /* SEE hpios_spinlock */ int lock_context;
};
/* The reason for all this evilness is that ALSA calls some of a drivers *operatorsinatomiccontext,andsomenot.Butallourfunctionschannel *throughtheHPI_Messageconduit,sowecan'thandlethedifferentcontext *perfunction
*/ #define IN_LOCK_BH 1 #define IN_LOCK_IRQ 0 staticinlinevoid cond_lock(struct hpios_spinlock *l)
{ if (irqs_disabled()) { /* NO bh or isr can execute on this processor, soordinarylockwilldo
*/
spin_lock(&((l)->lock));
l->lock_context = IN_LOCK_IRQ;
} else {
spin_lock_bh(&((l)->lock));
l->lock_context = IN_LOCK_BH;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.