void log_send_ack(msg t) {
	int logfd = open("log.txt", O_WRONLY|O_APPEND);
	char *time_buffer = getTime();
	char mes[100];

	if (time_buffer != NULL) {
		sprintf(mes, "[%s] [receiver] Trimit ACK:\n", time_buffer);
		write(logfd, mes, strlen(mes));
		sprintf(mes, "Seq No: %d\n", t.payload[0]);
		write(logfd, mes, strlen(mes));
		sprintf(mes, "Checksum: %s\n", getBitString(t.payload[t.len - 1]));
		write(logfd, mes, strlen(mes));
		write(logfd, DELIM, strlen(DELIM));
		free(time_buffer);
	}
	close(logfd);
}
예제 #2
0
std::bitset<26> Instruction::jmp_offset(){
  return std::bitset<26>( getBitString( 25, 0 ) );
}
예제 #3
0
std::bitset<6> Instruction::funct(){
  return std::bitset<6>( getBitString( 5, 0 ) );
}
예제 #4
0
std::bitset<16> Instruction::imm(){
  return std::bitset<16>( getBitString( 15, 0 ) );
}
예제 #5
0
std::bitset<5> Instruction::shamt(){
  return std::bitset<5>( getBitString( 10, 6 ) );
}
예제 #6
0
std::bitset<5> Instruction::rd(){
  return std::bitset<5>( getBitString( 15, 11 ) );
}
예제 #7
0
std::bitset<5> Instruction::rt(){
  return std::bitset<5>( getBitString( 20, 16 ) );
}
예제 #8
0
std::bitset<5> Instruction::rs(){
  return std::bitset<5>( getBitString( 25, 21 ) );
}
예제 #9
0
// Access the different fields
std::bitset<6> Instruction::opcode() {
  return std::bitset<6>( getBitString( 31, 26 ) );
}