Beispiel #1
0
/*!
 * \param pmach la machine/programme en cours d'exécution
 * \param instr l'instruction à exécuter
 * \return true si aucune erreur, pas de return sinon
 */
static bool add_sub_func(Machine *pmach, Instruction instr)
{
    unsigned r = instr.instr_generic._regcond;

    if(instr.instr_generic._immediate)
        if(instr.instr_generic._cop == ADD)
            pmach->_registers[r] += instr.instr_immediate._value;

        else
            pmach->_registers[r] -= instr.instr_immediate._value;

    else
    {
        unsigned addr = address(pmach, instr);
        error_if_segdata(pmach, addr);

        if(instr.instr_generic._cop == ADD)
            pmach->_registers[r] += pmach->_data[addr];

        else
            pmach->_registers[r] -= pmach->_data[addr];
    }

    set_cc(pmach, pmach->_registers[r]);
    return true;
}
Beispiel #2
0
int bwdpi_main(int argc, char **argv)
{
	//dbg("[bwdpi] argc=%d, argv[0]=%s, argv[1]=%s, argv[2]=%s\n", argc, argv[0], argv[1], argv[2]);
	int c;
	char *mode = NULL, *name = NULL, *dura = NULL, *date = NULL;
	char *MAC = NULL;
	char *page = NULL;
	int clean_flag = 0;

	if (argc == 1){
		printf("Usage :\n");
		printf("  bwdpi [iqos/qosd/wrs] [start/stop/restart]\n");
		printf("  bwdpi dc [start/stop/restart] [ptah]\n");
		printf("  bwdpi stat -m [mode] -n [name] -u [dura] -d [date]\n");
		printf("  bwpdi history -m [MAC] -z -p [page]\n");
		printf("  bwpdi app [0/1]\n");
		printf("  bwpdi cc [0/1]\n");
		printf("  bwpdi vp [0/1]\n");
		printf("  bwpdi device -m [MAC]\n");
		printf("  bwpdi device_info -m [MAC]\n");
		printf("  bwpdi get_vp [0/2]\n");
		printf("  bwpdi wrs_url\n");
		printf("  bwpdi rewrite path1 path2 path3\n");
		printf("  bwpdi checksize path size\n");
		printf("  bwpdi extract path\n");
		printf("  bwpdi get_app_patrol\n");
		printf("  bwpdi get_anomaly [0/2]\n");
		return 0;
	}

	if (!strcmp(argv[1], "iqos")){
		if(argc != 3)
		{
			printf("  bwdpi iqos [start/stop/restart]\n");
			return 0;
		}
		else
		{
			return tm_qos_main(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "qosd")){
		if(argc != 3)
		{
			printf("  bwdpi qosd [start/stop/restart]\n");
			return 0;
		}
		else
		{
			return qosd_main(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "wrs")){
		if(argc != 3)
		{
			printf("  bwdpi wrs [start/stop/restart]\n");
			return 0;
		}
		else
		{
			return wrs_main(argv[2]);
		}

	}
	else if (!strcmp(argv[1], "stat")){
		while ((c = getopt(argc, argv, "m:n:u:d:h")) != -1)
		{
			switch(c)
			{
				case 'm':
					mode = optarg;
					break;
				case 'n':
					name = optarg;
					break;
				case 'u':
					dura = optarg;
					break;
				case 'd':
					date = optarg;
					break;
				case 'h':
					show_help(argv[1]);
					break;
				default:
					printf("ERROR: unknown option %c\n", c);
					break;
			}
		}
		//dbg("[bwdpi] mode=%s, name=%s, dura=%s, date=%s\n", mode, name, dura, date);
		return stat_main(mode, name, dura, date);
	}
	else if (!strcmp(argv[1], "history")){
		while ((c = getopt(argc, argv, "m:zp:")) != -1)
		{
			switch(c)
			{
				case 'm':
					MAC = optarg;
					clean_flag = 0;
					break;
				case 'z':
					printf("clear web history\n");
					clean_flag = 1;
					break;
				case 'p':
					page = optarg;
					break;
				default:
					printf("  bwpdi history -m [MAC] -z -p [page]\n");
					break;
			}
		}

		if(clean_flag)
		{
			return clear_user_domain();
		}
		else
		{
			return web_history_main(MAC, page);
		}
	}
	else if (!strcmp(argv[1], "app")){
		if(argc != 3)
		{
			printf("  bwpdi app [0/1]\n");
			return 0;
		}
		else
		{
			return wrs_app_main(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "cc")){
		if(argc != 3)
		{
			printf("  bwpdi cc [0/1]\n");
			return 0;
		}
		else
		{
			return set_cc(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "vp")){
		if(argc != 3)
		{
			printf("  bwpdi vp [0/1]\n");
			return 0;
		}
		else
		{
			return set_vp(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "dc")){
		if(argc == 3)
		{
			return data_collect_main(argv[2], NULL);
		}
		else if(argc == 4)
		{
			return data_collect_main(argv[2], argv[3]);
		}
		else
		{
			printf("  bwpdi dc [start/stop/restart] [path]\n");
			return 0;
		}
	}
	else if (!strcmp(argv[1], "device")){
		while ((c = getopt(argc, argv, "m:")) != -1)
		{
			switch(c)
			{
				case 'm':
					name = optarg;
					break;
				default:
					printf("  bwpdi device -m [MAC]\n");
					break;
			}
		}
		return device_main(name);
	}
	else if (!strcmp(argv[1], "device_info")){
		while ((c = getopt(argc, argv, "m:")) != -1)
		{
			switch(c)
			{
				case 'm':
					name = optarg;
					break;
				default:
					printf("  bwpdi device_info -m [MAC]\n");
					break;
			}
		}
		return device_info_main(name);
	}
	else if (!strcmp(argv[1], "get_vp")){
		if(argc != 3)
		{
			printf("  bwpdi get_vp [0/2]\n");
			return 0;
		}
		else
		{
			return get_vp(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "wrs_url")){
		if(argc != 2)
		{
			printf("  bwpdi wrs_url\n");
			return 0;
		}
		else
		{
			return wrs_url_main();
		}
	}
	else if (!strcmp(argv[1], "rewrite")){
		if(argc != 5)
		{
			printf("  bwpdi rewrite path1 path2 path3\n");
			return 0;
		}
		else
		{
			return rewrite_main(argv[2], argv[3], argv[4]);
		}
	}
	else if (!strcmp(argv[1], "checksize")){
		if(argc != 4)
		{
			printf("  bwpdi checksize path size\n");
			return 0;
		}
		else
		{
			return check_filesize_main(argv[2], argv[3]);
		}
	}
	else if (!strcmp(argv[1], "extract")){
		if(argc != 3)
		{
			printf("  bwpdi extract path\n");
			return 0;
		}
		else
		{
			return extract_data_main(argv[2]);
		}
	}
	else if (!strcmp(argv[1], "get_app_patrol")){
		if(argc != 2)
		{
			printf("  bwpdi get_app_patrol\n");
			return 0;
		}
		else
		{
			return get_app_patrol_main();
		}
	}
	else if (!strcmp(argv[1], "get_anomaly")){
		if(argc != 3)
		{
			printf("  bwpdi get_anomaly [0/2]\n");
			return 0;
		}
		else
		{
			return get_anomaly_main(argv[2]);
		}
	}
	else{
		printf("Usage :\n");
		printf("  bwdpi [iqos/qosd/wrs] [start/stop/restart]\n");
		printf("  bwdpi dc [start/stop/restart] [ptah]\n");
		printf("  bwdpi stat -m [mode] -n [name] -u [dura] -d [date]\n");
		printf("  bwpdi history -m [MAC] -z -p [page]\n");
		printf("  bwpdi app [0/1]\n");
		printf("  bwpdi cc [0/1]\n");
		printf("  bwpdi vp [0/1]\n");
		printf("  bwpdi device -m [MAC]\n");
		printf("  bwpdi device_info -m [MAC]\n");
		printf("  bwpdi get_vp [0/2]\n");
		printf("  bwpdi wrs_url\n");
		printf("  bwpdi rewrite path1 path2 path3\n");
		printf("  bwpdi checksize path size\n");
		printf("  bwpdi extract path\n");
		printf("  bwpdi get_app_patrol\n");
		printf("  bwpdi get_anomaly [0/2]\n");
		return 0;
	}

	return 1;
}