Пример #1
0
int		my_printf(const char *format, ...)
{
  t_struct_arg	args;
  unsigned int	i;
  unsigned int	cwrite;

  i = 0;
  cwrite = 0;
  va_start(args.arg, format);
  while (format[i])
  {
    va_start(args.arg_tmp, format);
    if (format[i] == CPUR && is_to_convert(format + i) != 0)
    {
      cwrite += check_print(&args, format, i, cwrite) - 1;
      i += is_to_convert(format + i);
    }
    else
      my_putchar(format[i]);
    cwrite += 1;
    va_end(args.arg_tmp);
    ++i;
  }
  va_end(args.arg);
  return ((int)cwrite);
}
Пример #2
0
boolean item_print(WINDOW *wd, int n, int *list)
{
	int i = 0, button, result = 0;
	boolean noerror = TRUE;

	/* DjV 031 070203 ---vvv--- */
	/* XDINFO info; */
	long nfiles=0, nfolders=0, nbytes=0, error;
	const char *name;
	/* DjV 031 070203 ---^^^--- */

	if (check_print(wd, n, list) == FALSE)
		return FALSE;

	/* DjV 031 080203 ---vvv--- */

	/* rsc_ltoftext(print, NITEMS, n); */

	/* xd_open(print, &info); */
	if ( count_items(wd, n, list, &nfolders, &nfiles, &nbytes) )	/* HR 151102: always display. */
	{	/* DjV 031 140203 */

		cv_fntoform ( copyinfo + CPFOLDER, fn_get_name(dir_path(wd)) );	  	/* DjV 031 140203 */
		cv_fntoform ( copyinfo + CPFILE, itm_name(wd, list[0]) ); 			/* DjV 031 140203 */

		button = open_cfdialog( CF_PRINT, 0L, (long)n, nbytes, CMD_PRINT ); /* DJV 031 070203 */
	} /* DjV 031 140203 */
	else
		button = 0;

	/* if (button == PRINTOK) */ 
	if ( button == COPYOK ) 
	/* DjV 031 080203 ---^^^--- */
	{
		if ((i < n) && (result != XFATAL) && (result != XABORT))
		{
			/* DjV 031 080203 ---vvv--- */
			name = itm_name(wd, list[i]);
			upd_name( dir_path(wd), CPFOLDER );	
			upd_name ( name, CPFILE ); 
			/* DjV 031 080203 ---^^^--- */

			result = print_file(wd, list[i]);

			if (result == XFATAL)
				noerror = FALSE;

			/* DJV 031 070203 150203 ---vvv--- */
			/* 
			rsc_ltoftext(print, NITEMS, n - i - 1);
			xd_draw(&info, NITEMS, 1);
			*/
			if ((error = itm_attrib(wd, list[i], 0, &pattr)) == 0)
			{
				nbytes -= pattr.size;
				upd_copyinfo ( 0L, n - i - 1, nbytes ); 
			}
			else
				result = copy_error(error, name, 0); /* 0= any op but move or delete is "copy" */
			/* DjV 031 070203 150203 ---^^^--- */

			i++;
		}
	}
	else
		noerror = FALSE;

	/* DjV 031 070203 ---vvv--- */
	/*
	xd_change(&info, button, NORMAL, 0);
	xd_close(&info);
	*/
	if ( button != 0 )
		close_cfdialog( button );
	/* DjV 031 070203 ---^^^--- */

	return noerror;
}
Пример #3
0
int cal_inf(struct packet_info * p){
        int t; // type of bands
	t = wap_type(p->dev_name);
	if(t == -1){
		printk(KERN_DEBUG "[warning]wAP dosen't have this kind of interface!\n");	
		return;
	}
	if(p->phy_rate == 0 && p->ampdu != 2){
		printk(KERN_DEBUG "[warning]There is one packet whose phyrate == 0!\n");	
    		memcpy(&last_p[t],p,sizeof(last_p[t]));// update last p
       		previous_is_ampdu[t] = p->ampdu; 
		return;
	}
	
	struct timespec th={0},transmit={0},dmaci={0},tmp1={0},tmp2={0},difs={0},tr={0};
	if (previous_is_ampdu[t] != 0){
		if (p->ampdu != 2){
			dmaci = cal_dmaci_ampdu(t);
                	if (ampdu[t].retry > 0){ // all packets are retried packets
				update_summary_ht(dmaci,ampdu[t].len*ampdu[t].num,ampdu[t].num,t);
			}else{
				divide_inf(backup_store[t],ampdu[t].th,ampdu[t].te,dmaci,0,1,t);
				update_summary_cs(dmaci,ampdu[t].len*ampdu[t].num,1,t);//overall busywait, ampdu regards as one
			}
			clear_timespec(&tmp1);
			tmp1 = timespec_sub(ampdu[t].te,ampdu[t].th);
			summary[t].overall_extra_time = timespec_add(summary[t].overall_extra_time,tmp1);//overall transmit
			summary[t].wing = summary[t].wing + timespec_div(dmaci,tmp1);
			printk(KERN_DEBUG "[ampdu,%ld.%ld]%ld.%ld,%d,%ld.%ld,%ld.%ld,ifindex=%d,%s,num=%d,size=%d,retry=%d\n",ampdu[t].tw.tv_sec,ampdu[t].tw.tv_nsec,ampdu[t].te.tv_sec,ampdu[t].te.tv_nsec,ampdu[t].rate,dmaci.tv_sec,dmaci.tv_nsec,tmp1.tv_sec,tmp1.tv_nsec,ampdu[t].ifindex,ampdu[t].dev_name,ampdu[t].num,ampdu[t].len,ampdu[t].retry);
			//clear the ampdu structure
			memset(&ampdu[t],0,sizeof(ampdu[t]));
		}
	}
	if(p->ampdu == 1){ //first packet of aggregation
		backup_sniffer_packet(p->tw,p->te,1,t);
		ampdu[t].rate = p->phy_rate;
		ampdu[t].ifindex = p->ifindex;
		memcpy(ampdu[t].dev_name,p->dev_name,IFNAMSIZ);
		copy_timespec(&ampdu[t].te,&p->te);
		copy_timespec(&ampdu[t].last_te,&last_p[t].te);
		copy_timespec(&ampdu[t].tw,&p->tw);
		ampdu[t].num = 1;
		ampdu[t].len = p->len;
    		memcpy(&last_p[t],p,sizeof(last_p[t]));// update last p
		check_print(p,t);
                if (p->wlan_retry > 0){
			ampdu[t].retry = p->wlan_retry;
		}
       		previous_is_ampdu[t] = p->ampdu; 
	}else if(p->ampdu==2){ //rest of packets of aggregation
		p->phy_rate = ampdu[t].rate;
		copy_timespec(&ampdu[t].tw,&p->tw);
		ampdu[t].num = ampdu[t].num +  1;
                if ( p->wlan_retry >= 1){
			update_ht_transmit(p->len,p->phy_rate,t);
		}
	}else{
		// non-aggregation packet
		th.tv_sec = p->tw.tv_sec;
		th.tv_nsec = p->tw.tv_nsec;
		if (timespec_compare(&th,&last_p[t].te)<0){
			th=last_p[t].te;
		}
    		
		memcpy(&last_p[t],p,sizeof(last_p[t])); //update previous packet
		if (p->tw.tv_nsec == 0){
       			previous_is_ampdu[t] = p->ampdu;
			return; 
		}
        	transmit = cal_transmit_time(p->len,p->phy_rate);
		difs.tv_sec =0;
		difs.tv_nsec = CONST_TIME[t]*1000;
		tmp1 = timespec_sub(p->te,th);
		tmp2 = timespec_sub(tmp1,transmit);
		dmaci = timespec_sub(tmp2,difs);
		if (dmaci.tv_sec < 0 || dmaci.tv_nsec < 0){
			dmaci.tv_sec = 0;
			dmaci.tv_nsec = 0;
		}
		if(p->wlan_retry == 0){
			update_summary_cs(dmaci,p->len,1,t);
			divide_inf(store[t],th,p->te,dmaci,p->wlan_retry,0,t);
		}else{
			update_summary_ht(dmaci,p->len,1,t);
		}
		summary[t].overall_extra_time = timespec_add(summary[t].overall_extra_time,tmp1);
		summary[t].wing = summary[t].wing + timespec_div(dmaci,tmp1);
		printk(KERN_DEBUG "[unampdu,%ld.%ld]%ld.%ld,%d,%ld.%ld,%ld.%ld,ifindex=%d,%s,num=%d,size=%d,retry=%d\n",p->tw.tv_sec,p->tw.tv_nsec,p->te.tv_sec,p->te.tv_nsec,p->phy_rate,dmaci.tv_sec,dmaci.tv_nsec,tmp1.tv_sec,tmp1.tv_nsec,p->ifindex,p->dev_name,1,p->len,p->wlan_retry);
		
		check_print(p,t);
		previous_is_ampdu[t] = p->ampdu; 
	}

}