Ejemplo n.º 1
0
int main(int argc,char** argv)
{
	queue *p=createqueue();
	if(p==NULL){
		exit(EXIT_FAILURE);
	}
	else{
		int i;
		for(i=0;i<9;i++){
			element e;
			e.key=i*2;
			addqueue(p,e);
		}

		for(i=0;i<6;i++){
			delqueue(p);
		}
		for(i=0;i<6;i++){
			element e;
			e.key=i*5;
			addqueue(p,e);
		}
		//delnum(p,5);
		element e;
		e.key=100;
		insnum(p,5,e);
		for(i=0;i<10;i++)
			delqueue(p);
	}

	return 0;
}
Ejemplo n.º 2
0
void apaddqueue ( struct airport *ap, char type )
{
	switch ( tolower( type ) )
	{
		case 'l' :
			  addqueue ( ap -> pl, ap -> pln ) ;
			  break ;

		case 't' :
			  addqueue ( ap -> pt, ap -> pln ) ;
			  break ;
	}
}
Ejemplo n.º 3
0
int access(jobqueue* k, int bank)
{

    if(row[bank].busy == 1)
    {
        k->time = 9999999999999;
        //printf("busy\n");
        addqueue(bank, k);
        if(row[bank].jsize>1)
        {

            check++;
        }
        //printf("%s\n", row[bank].rq->addr);
    }
    else
    {
        row[bank].busy = 1;
        if(strncmp(row[bank].rowbuffer,getrow(k->addr),4)==0)
        {
		printf("hit\n");
		row[bank].jobend = k->time +154;
		row[bank].totalbusy += 154;
		return 154;

        }
        else if(strncmp(row[bank].rowbuffer, "ffff",4)==0)
        {
            printf("closed\n");
            strncpy(row[bank].rowbuffer, getrow(k->addr),4);
            row[bank].rowbuffer[4] = '\0';
            row[bank].jobend = k->time +258;
            row[bank].totalbusy += 258;
            return 258;

        }
        else
        {
            strncpy(row[bank].rowbuffer, getrow(k->addr),4);
            row[bank].rowbuffer[4] = '\0';
            printf("miss\n");
            row[bank].jobend = k->time +362;
            row[bank].totalbusy += 362;
            return 362;

        }
    }

}
Ejemplo n.º 4
0
void pelco_rx_isr(u8 udr0)
{
    u8 i;
    static uchar keyboard_data_buffer1[20];  

	ProUart0Rec = 0;
	{ 
		Isr_i = udr0;

	  	KBDRecWrongFlag = 0;
	  	if (0x00 == Isr_j) 
		{
			if (0x01 == Current_Protocol) 
			{
				switch (Isr_i) 
				{
				 case 0xff: Rec_byte_count = 0x07;
				            Rec_byte_count_buff = 0x07;
				            Rec_spe_byte_count_buff = 0x09;
							Protocol_No = PELCO_D;
				            break;
				 case 0xa0: Rec_byte_count = 0x08;
				            Rec_spe_byte_count_buff = 0x0a;
				            Rec_byte_count_buff = 0x08;
							Protocol_No = PELCO_P;
							break;	
                case CAMERA_LINK_CMD_HEAD:
                    Rec_byte_count = 8;
                    Rec_spe_byte_count_buff = 0x0a;
                    Rec_byte_count_buff = 0x08;
                    Protocol_No = PROTOCOL_CAM_LINK;
                    break;	            
				 default:   
					Isr_com = 0; 
						Isr_j = 0;
					return;
				}
			}
			else
			{
				switch (Protocol_No)
				{
				case PELCO_D: 
					if(PELCO_D_FRAME_HEADE !=Isr_i)
					{
						Isr_com = 0; 
						Isr_j = 0;
						return;
					}
					break;
				case PELCO_P: 
					if(PELCO_P_FRAME_HEADE !=Isr_i)
					{
						Isr_com = 0; 
						Isr_j = 0;
						return;
					}
					break;
				default:

					break;
				}
			}
			keyboard_data_buffer1[0] = Isr_i;
			Isr_com = 1; 
			Isr_j = 0x01;
		}
		else 
		{                   //????????
			keyboard_data_buffer1[Isr_com] = Isr_i;
			Isr_com++;

			switch (Protocol_No)
			{
			case PELCO_P: 
			case PELCO_D: //if (0x07 == Rec_byte_count)
				Rec_byte_count = Rec_byte_count_buff;  //    
				break;
 			case PROTOCOL_CAM_LINK: 
				Rec_byte_count = Rec_byte_count_buff;  //    
				break;
               
			default:
                
				break;
			}
	
			if (Isr_com >= Rec_byte_count)
			{
				for (i=0x00; i<20; i++) 
					Rec_keyboard_data_buffer[i] = keyboard_data_buffer1[i];

				addqueue(20,keyboard_data_buffer1);

				for (i=0x00; i<20; i++) 
					keyboard_data_buffer1[i] = 0x00;
				if ((0xa0 == Rec_keyboard_data_buffer[0]) && (Protocol_No == PELCO_P))
				  Rec_keyboard_data_buffer[1]++;
				if (0x80 == (0xf0 & Rec_keyboard_data_buffer[0]))
				{
					i = Rec_keyboard_data_buffer[0] << 4;
					i |= Rec_keyboard_data_buffer[1] & 0x0f;
				}
				else 
					i = Rec_keyboard_data_buffer[1];

				if (i == domeNo)
				{
					switch (Protocol_No)
					{
					case PELCO_P: 

						break;
					case PELCO_D: 
 
						break;
					default:
						break;
					}
				}
				Isr_com = 0x00; 
				Isr_j = 0x00; 
				Rec_byte_com = 0X01;	
				rt_sem_release(uart1_sem);
			}	
		}
	}	
       
}