コード例 #1
0
ファイル: gpuarray_array.c プロジェクト: tsirif/libgpuarray
void GpuArray_fprintf(FILE *fd, const GpuArray *a) {
  unsigned int i;
  int comma = 0;

  fprintf(fd, "GpuArray <%p, data: %p (%p)> nd=%d\n",
          a, a->data, *((void **)a->data), a->nd);
  fprintf(fd, "\tdims: %p, str: %p\n", a->dimensions, a->strides);
  fprintf(fd, "\tITEMSIZE: %zd\n", GpuArray_ITEMSIZE(a));
  fprintf(fd, "\tTYPECODE: %d\n", a->typecode);
  fprintf(fd, "\tOFFSET: %" SPREFIX "u\n", a->offset);
  fprintf(fd, "\tHOST_DIMS:      ");
  for (i = 0; i < a->nd; ++i) {
      fprintf(fd, "%zu\t", a->dimensions[i]);
  }
  fprintf(fd, "\n\tHOST_STRIDES: ");
  for (i = 0; i < a->nd; ++i) {
      fprintf(fd, "%zd\t", a->strides[i]);
  }
  fprintf(fd, "\nFLAGS:");
#define PRINTFLAG(flag) if (a->flags & flag) { \
    if (comma) fputc(',', fd);                \
    fprintf(fd, " " #flag);                   \
    comma = 1;                                \
  }
  PRINTFLAG(GA_C_CONTIGUOUS);
  if (!GpuArray_is_c_contiguous(a) && ISSET(a->flags, GA_C_CONTIGUOUS))
    fputc('!', fd);
  PRINTFLAG(GA_F_CONTIGUOUS);
  if (!GpuArray_is_f_contiguous(a) && ISSET(a->flags, GA_F_CONTIGUOUS))
    fputc('!', fd);
  PRINTFLAG(GA_ALIGNED);
  PRINTFLAG(GA_WRITEABLE);
#undef PRINTFLAG
  fputc('\n', fd);
}
コード例 #2
0
void packetDetails_tcp(uint8_t *packetData)
{
	tcpHeader = (tcpHeader_t*)(packetData);

	printf("TCP header\n");

	PRINTINFO("Source port");
	PRINTPORT(tcpHeader->sourcePort);

	PRINTINFO("Destination port");
	PRINTPORT(tcpHeader->destinationPort);

	PRINTINFO("Sequence number");
	PRINTHEX32(swap_uint32(tcpHeader->sequenceNumber));

	PRINTINFO("Acknowledgement number");
	PRINTHEX32(swap_uint32(tcpHeader->acknowledgementNumber));

	// Flags
	uint16_t flag = swap_uint16(tcpHeader->flags);
	PRINTFLAG("Header length");
	PRINTUINT8(((flag & TCP_headerLength) >> TCP_headerLengthPos)*4);

	PRINTFLAG("Reserved");
	PRINTHEX16((flag & TCP_reserved) >> TCP_reservedPos);

	PRINTFLAG("URG");
	printf("%s\n", flagSetOrNot((flag & TCP_urg) >> TCP_urgPos));

	PRINTFLAG("ACK");
	printf("%s\n", flagSetOrNot((flag & TCP_ack) >> TCP_ackPos));

	PRINTFLAG("PSH");
	printf("%s\n", flagSetOrNot((flag & TCP_push) >> TCP_pushPos));

	PRINTFLAG("RST");
	printf("%s\n", flagSetOrNot((flag & TCP_reset) >> TCP_resetPos));

	PRINTFLAG("SYN");
	printf("%s\n", flagSetOrNot((flag & TCP_syn) >> TCP_synPos));

	PRINTFLAG("FIN");
	printf("%s\n", flagSetOrNot((flag & TCP_fin) >> TCP_synPos));

	PRINTINFO("Window size");
	PRINTUINT16(swap_uint16(tcpHeader->windowSize));

	PRINTINFO("Checksum");
	PRINTHEX16(swap_uint16(tcpHeader->checksum));

	PRINTINFO("Urgent pointer");
	PRINTUINT16(swap_uint16(tcpHeader->urgentPointer));

	packetDetails_data(packetData + TCP_LENGTH, (swap_uint16(ipHeader->totalLength) - (ipHeader->headerLength)*4 - TCP_LENGTH));
}
コード例 #3
0
void packetDetails_ip(uint8_t *packetData)
{
	printf("IP header \n");

	ipHeader = (ipHeader_t*)(packetData);

	PRINTINFO("Version");
	PRINTUINT8(ipHeader->version);

	PRINTINFO("Header length");
	PRINTUINT8(ipHeader->headerLength * 4);

	PRINTINFO("Type of service");
	PRINTHEX8(ipHeader->typeOfService);

	PRINTINFO("Total length");
	PRINTUINT16(swap_uint16(ipHeader->totalLength));

	PRINTINFO("Identification");
	printf("0x%04" PRIx16 " (%" PRIu16 ")\n", swap_uint16(ipHeader->identification), swap_uint16(ipHeader->identification));

	// Flags
	uint16_t flag = swap_uint16(ipHeader->flags);

	PRINTFLAG("Reserved bit");
	printf("%s\n", flagSetOrNot((flag & IP_reservedFlag) >> IP_reservedFlagPos));

	PRINTFLAG("Don't fragment");
	printf("%s\n", flagSetOrNot((flag & IP_dontFragment) >> IP_dontFragmentPos));

	PRINTFLAG("More fragments");
	printf("%s\n", flagSetOrNot((flag & IP_moreFragments) >> IP_moreFragmentsPos));

	PRINTFLAG("Fragment offset");
	PRINTHEX16(flag & IP_fragmentOffset);

	PRINTINFO("Time to live");
	PRINTUINT8(ipHeader->timeToLive);

	PRINTINFO("Protocol");
	printf("%s (%" PRIu8 ")\n", determineIpProtocol(ipHeader->protocol), ipHeader->protocol);

	PRINTINFO("Checksum");
	PRINTHEX16(swap_uint16(ipHeader->checksum));

	PRINTINFO("Source address");
	for(i=0; i<3; i++)
		printf("%" PRIu8 ".", ipHeader->sourceAddress[i]);
	printf("%" PRIu8 "\n", ipHeader->sourceAddress[3]);

	PRINTINFO("Destination address");
	for(i=0; i<3; i++)
		printf("%" PRIu8 ".", ipHeader->destinationAddress[i]);
	printf("%" PRIu8 "\n", ipHeader->destinationAddress[3]);

	uint8_t sizeOfIP = ipHeader->headerLength * 4;
	switch(ipHeader->protocol)
	{
		case 6:
			packetDetails_tcp(packetData + sizeOfIP);
			break;
		case 17:
			packetDetails_udp(packetData + sizeOfIP);
			break;
	}
}