void fakeSeqDiffs(char *outFile) /* fakeSeqDiffs - Fake sequence differences from a custom track.. */ { FILE *f = mustOpen(outFile, "w"); struct sqlConnection *conn = sqlConnect(database); struct sqlResult *sr; char **row; char query[512]; safef(query, sizeof(query), "select * from snp126 where chrom='%s' and chromStart >= %d and chromEnd <= %d and avHet > 0.01", chrom, chromStart, chromEnd); sr = sqlGetResult(conn, query); while ((row = sqlNextRow(sr)) != NULL) { static struct snp126 snp; int i; snp126StaticLoad(row+1, &snp); for (i=0; i<ArraySize(names); ++i) { if (randBit(snp.avHet)) { fprintf(f, "%s\t%d\t%d\t", snp.chrom, snp.chromStart, snp.chromEnd); fprintf(f, "%s\t", names[i]); fprintf(f, "0\t+\t%d\t%d\t", snp.chromStart, snp.chromEnd); fprintf(f, "200,0,0\n"); } } } carefulClose(&f); }
int inject_2_bit_flip( int pid, long pos ) { int iRet; long origData; long newData; ////read iRet = ptraceGetReg( pid, pos, origData ); if( iRet == RT_FAIL ) { return RT_FAIL; } //random 2 bit flip newData = origData ^ ( 0x0000000000000001L << randBit() ); newData = newData ^ ( 0x0000000000000001L << randBit() ); ////write iRet = ptraceSetReg( pid, pos, newData ); if( iRet == RT_FAIL ) { return RT_FAIL; } cout << "Fault on " << offset2name( pos ) << "(0X" << hex << origData << " -> 0X" << newData << ")" << dec << endl; return RT_OK; }