int request_irq(int irqno,void (*handler)(void)) { if (irqno < 0 || irqno > 63){ return -1; } if (irqno < 32){ VIC0VECTADDR[irqno] = (unsigned int)handler; set_1(VIC0INTENABLE,irqno); }else{ irqno = irqno - 32; VIC1VECTADDR[irqno] = (unsigned int)handler; set_1(VIC1INTENABLE,irqno); } __asm__ __volatile__( "mrs r0,cpsr\n\t" "bic r0,r0,#0x80\n\t" "msr cpsr,r0\n\t" : : :"r0" ); return 0; }
int main() { int n,i,r; printf("Enter number and index:"); scanf("%d",&n); scanf("%d",&i); printf("\n Given number"); display(n); printf("\t Decimal Equivalant: %d",n); printf("\n Bit %d set to 1:",i); r=set_1(n,i); display(r); printf("\t Decimal Equivalant: %d",r); printf("\n Bit %d set to 0:",i); r=set_0(n,i); display(r); printf("\t Decimal Equivalant: %d",r); printf("\n Toggled Bit %d:",i); r=toggle(n,i); display(r); printf("\t Decimal Equivalant: %d",r); printf("\n Toggled Except Bit %d:",i); r=toggle_except(n,i); display(r); printf("\t Decimal Equivalant: %d",r); printf("\n Right Rotate:"); r=rotate_right(n); display(r); printf("\t Decimal Equivalant: %d",r); printf("\n Left Rotate:"); r=rotate_left(n); display(r); printf("\t Decimal Equivalant: %d",r); printf("\n Swap Nibble: "); r=swap(n); display(r); printf("\t Decimal Equivalant: %d",r); return 0; }