arpsk_arp_pkt_t * sk_init(int proto) { arpsk_arp_pkt_t *pkt = NULL; #if !(__WIN32__) struct timeval seed; #endif #if __WIN32__ srand(0); #else if(gettimeofday(&seed, NULL) == -1) fatal("** Error: cannot gettimeofday.\n"); srandom((unsigned)((seed.tv_sec ^ seed.tv_usec) ^ getpid())); #endif switch (proto) { case ARP_ETH_IP: pkt = sk_malloc(sizeof(arpsk_eiarp_pkt_t)); sk_init_eiarp_pkt(pkt); return pkt; default: fprintf(stderr, "** Error: proto not yet supported.\n"); exit(EXIT_FAILURE); } }
void sk_mutex_init(SkObject *self) { pthread_mutex_t *mutex = sk_malloc(sizeof(pthread_mutex_t)); pthread_mutex_init(mutex, NULL); sk_object_set_data(self, (void *)mutex); }