/* * Set the IRQ Info byte if needed. */ 
/* Set the IRQ Info byte if needed. */  
acpi_rs_irq_stream (	struct acpi_resource            *linked_list,	u8                              **output_buffer,	acpi_size                       *bytes_consumed){	u8                              *buffer = *output_buffer;	u16                             temp16 = 0;	u8                              temp8 = 0;	u8                              index;	u8                              IRqinfo_byte_needed;	ACPI_FUNCTION_TRACE ("rs_irq_stream");	/*	 * The descriptor field is set based upon whether a third byte is	 * needed to contain the IRQ Information.	 */	if (ACPI_EDGE_SENSITIVE == linked_list->data.irq.edge_level &&		ACPI_ACTIVE_HIGH == linked_list->data.irq.active_high_low &&		ACPI_EXCLUSIVE == linked_list->data.irq.shared_exclusive) {		*buffer = 0x22;		IRqinfo_byte_needed = FALSE;	}	else {		*buffer = 0x23;		IRqinfo_byte_needed = TRUE;	}	buffer += 1;	temp16 = 0;	/*	 * Loop through all of the interrupts and set the mask bits	 */	for(index = 0;		index < linked_list->data.irq.number_of_interrupts;		index++) {		temp8 = (u8) linked_list->data.irq.interrupts[index];		temp16 |= 0x1 << temp8;	}	ACPI_MOVE_16_TO_16 (buffer, &temp16);	buffer += 2;	/*	 * Set the IRQ Info byte if needed.	 */	if (IRqinfo_byte_needed) {		temp8 = 0;		temp8 = (u8) ((linked_list->data.irq.shared_exclusive &				 0x01) << 4);		if (ACPI_LEVEL_SENSITIVE == linked_list->data.irq.edge_level &&			ACPI_ACTIVE_LOW == linked_list->data.irq.active_high_low) {			temp8 |= 0x08;		}		else {			temp8 |= 0x01;		}		*buffer = temp8;		buffer += 1;	}	/*	 * Return the number of bytes consumed in this operation	 */	*bytes_consumed = ACPI_PTR_DIFF (buffer, *output_buffer);	return_ACPI_STATUS (AE_OK);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/44f6c01242da4e162f28d8e1216a8c7a91174605/rsirq.c/clean/drivers/acpi/resources/rsirq.c