Example #1
0
int predictor_setup(const char *filename, const char *predictor_name)
{
    int str_size = 0;

    //Try to open file
    _fp = fopen(filename, "r");
    if (_fp == NULL) {
        fprintf(stderr, "%s\n", strerror(errno));
        return -1;
    }

    //Init stats data structures
    init_elements(&e);

    _state = ADDR;
    
    str_size = strlen(filename) + 1;
    _filename = malloc(str_size * sizeof(char));
    strncpy(_filename, filename, str_size);

    str_size = strlen(predictor_name) + 1;
    _predictor_name = malloc(str_size * sizeof(char));
    strncpy(_predictor_name, predictor_name, str_size);

    parseNextLine();

    return 0;
}
Example #2
0
/*!
    \internal
    Parses configuration from \a stream.
*/
void QLoggingSettingsParser::setContent(QTextStream &stream)
{
    _rules.clear();
    QString line;
    while (stream.readLineInto(&line))
        parseNextLine(QStringRef(&line));
}
Example #3
0
/*!
    \internal
    Parses configuration from \a content.
*/
void QLoggingSettingsParser::setContent(const QString &content)
{
    _rules.clear();
    const auto lines = content.splitRef(QLatin1Char('\n'));
    for (const auto &line : lines)
        parseNextLine(line);
}
Example #4
0
void Worker::addr2lineFinished(int status)
{
    Q_UNUSED(status);

    QString line = m_process->readAll();
    if(line.length())
    {
        line.remove("\n");
    }

    emit addr2lineParsed(m_currentAddress, line);
    emit parseNextLine();
}
Example #5
0
void Worker::run()
{
    QVectorIterator< QString > it(m_addresses);
    it.toBack();
    while(it.hasPrevious())
    {
        m_currentAddress = it.previous();

        QEventLoop loop;
        connect(this, SIGNAL(parseNextLine()), &loop, SLOT(quit()));

        m_process->start("addr2line", QStringList() << "-e" << m_program << m_currentAddress);
        loop.exec();
    }
}
Example #6
0
const int predictor_predict(const bool prediction, bool *result)
{
    //Check if we are in a valid state
    if (_state != PRED) {
        return -1;
    }
    
    _state = ADDR;

    *result = _taken;

    //Update predictions
    addPrediction(_addr, prediction, _taken);

    //Parse next line
    parseNextLine();

    return 0;
}
Example #7
0
bool IPFileParser::parseIPList( const char* FileName, std::vector<IPADDRESSBAN_s> &IPArray )
{
	FILE			*pFile;

	IPArray.clear();

	char curChar = 0;
	_numberOfEntries = 0;
	if (( pFile = fopen( FileName, "r" )) != NULL )
	{
		while ( true )
		{
			IPADDRESSBAN_s IP;
			IP.tExpirationDate = 0;
			ULONG oldNumberOfEntries = _numberOfEntries;
			bool parsingDone = !parseNextLine( pFile, IP, _numberOfEntries );

			if ( _errorMessage[0] != '\0' )
			{
				fclose( pFile );
				return false;
			}
			else if ( oldNumberOfEntries < _numberOfEntries )
				IPArray.push_back( IP );

			if ( parsingDone == true )
				break;
		}
	}
	else
	{
		sprintf( _errorMessage, "%s", GenerateCouldNotOpenFileErrorString( "IPFileParser::parseIPList", FileName, errno ).c_str() );
		return false;
	}

	fclose( pFile );
	if ( _numberOfEntries > 0 )
		Printf( "%s: %d entr%s loaded.\n", FileName, static_cast<unsigned int>(_numberOfEntries), ( _numberOfEntries == 1 ) ? "y" : "ies" );
	return true;
}