/** Details of a memory area allocated with pci_alloc_consistent Need all info for parameters to pci_free_consistent
*/ struct consistent_dma_area { struct device *pdev; /* looks like dma-mapping dma_devres ?! */
size_t size; void *vaddr;
dma_addr_t dma_handle;
};
/* Conflict?: H is already used by a number of drivers hid, bluetooth hci, and some sound drivers sb16, hdsp, emu10k. AFAIK 0xFC is unused command
*/ #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 * operators in atomic context, and some not. But all our functions channel * through the HPI_Message conduit, so we can't handle the different context * per function
*/ #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, so ordinary lock will do
*/
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.