int main(int argc, char **argv) { printf("%lu\n", sizeof(struct ndn_bucket)); struct ndn_bucket *ht; int i, j; int dst_ports[BATCH_SIZE], nb_succ = 0, dst_port_sum = 0; /** < Variables for PAPI */ float real_time, proc_time, ipc; long long ins; int retval; red_printf("main: Initializing NDN hash table\n"); ndn_init(URL_FILE, 0xf, &ht); red_printf("\tmain: Setting up NDN index done!\n"); red_printf("main: Getting name array for lookups\n"); int nb_names = ndn_get_num_lines(NAME_FILE); nb_names = nb_names - (nb_names % BATCH_SIZE); /**< Align input to batch */ struct ndn_name *name_arr = ndn_get_name_array(NAME_FILE); red_printf("\tmain: Constructed name array!\n"); red_printf("main: Starting NDN lookups\n"); /** < Init PAPI_TOT_INS and PAPI_TOT_CYC counters */ if((retval = PAPI_ipc(&real_time, &proc_time, &ins, &ipc)) < PAPI_OK) { printf("PAPI error: retval: %d\n", retval); exit(1); } for(i = 0; i < nb_names; i += BATCH_SIZE) { memset(dst_ports, -1, BATCH_SIZE * sizeof(int)); process_batch(&name_arr[i], dst_ports, ht); for(j = 0; j < BATCH_SIZE; j ++) { #if NDN_DEBUG == 1 printf("Name %s -> port %d\n", name_arr[i + j].name, dst_ports[j]); #endif nb_succ += (dst_ports[j] == -1) ? 0 : 1; dst_port_sum += dst_ports[j]; } } if((retval = PAPI_ipc(&real_time, &proc_time, &ins, &ipc)) < PAPI_OK) { printf("PAPI error: retval: %d\n", retval); exit(1); } red_printf("Time = %.4f s, Lookup rate = %.2f M/s | nb_succ = %d, sum = %d\n" "Instructions = %lld, IPC = %f\n", real_time, nb_names / (real_time * 1000000), nb_succ, dst_port_sum, ins, ipc); return 0; }
void auto_init(void) { #ifdef MODULE_PRNG void auto_init_random(void); auto_init_random(); #endif #ifdef MODULE_XTIMER DEBUG("Auto init xtimer module.\n"); xtimer_init(); #endif #ifdef MODULE_MCI DEBUG("Auto init mci module.\n"); mci_initialize(); #endif #ifdef MODULE_PROFILING extern void profiling_init(void); profiling_init(); #endif #ifdef MODULE_GNRC_PKTBUF DEBUG("Auto init gnrc_pktbuf module\n"); gnrc_pktbuf_init(); #endif #ifdef MODULE_GNRC_PKTDUMP DEBUG("Auto init gnrc_pktdump module.\n"); gnrc_pktdump_init(); #endif #ifdef MODULE_GNRC_SIXLOWPAN DEBUG("Auto init gnrc_sixlowpan module.\n"); gnrc_sixlowpan_init(); #endif #ifdef MODULE_GNRC_IPV6 DEBUG("Auto init gnrc_ipv6 module.\n"); gnrc_ipv6_init(); #endif #ifdef MODULE_GNRC_UDP DEBUG("Auto init UDP module.\n"); gnrc_udp_init(); #endif #ifdef MODULE_GNRC_TCP DEBUG("Auto init TCP module\n"); gnrc_tcp_init(); #endif #ifdef MODULE_LWIP DEBUG("Bootstraping lwIP.\n"); lwip_bootstrap(); #endif #ifdef MODULE_OPENTHREAD extern void openthread_bootstrap(void); openthread_bootstrap(); #endif #ifdef MODULE_GCOAP DEBUG("Auto init gcoap module.\n"); gcoap_init(); #endif #ifdef MODULE_DEVFS DEBUG("Mounting /dev\n"); extern void auto_init_devfs(void); auto_init_devfs(); #endif #ifdef MODULE_GNRC_IPV6_NIB DEBUG("Auto init gnrc_ipv6_nib module.\n"); gnrc_ipv6_nib_init(); #endif #ifdef MODULE_SKALD DEBUG("Auto init Skald\n"); skald_init(); #endif #ifdef MODULE_RDCLI_COMMON DEBUG("Auto init rdcli_common module\n"); extern void rdcli_common_init(void); rdcli_common_init(); #endif #ifdef MODULE_RDCLI_SIMPLE_STANDALONE DEBUG("Auto init rdcli_simple module\n"); extern void rdcli_simple_run(void); rdcli_simple_run(); #endif #ifdef MODULE_ASYMCUTE DEBUG("Auto init Asymcute\n"); asymcute_handler_run(); #endif /* initialize network devices */ #ifdef MODULE_AUTO_INIT_GNRC_NETIF #ifdef MODULE_AT86RF2XX extern void auto_init_at86rf2xx(void); auto_init_at86rf2xx(); #endif #ifdef MODULE_MRF24J40 extern void auto_init_mrf24j40(void); auto_init_mrf24j40(); #endif #ifdef MODULE_CC2420 extern void auto_init_cc2420(void); auto_init_cc2420(); #endif #ifdef MODULE_ENCX24J600 extern void auto_init_encx24j600(void); auto_init_encx24j600(); #endif #ifdef MODULE_ENC28J60 extern void auto_init_enc28j60(void); auto_init_enc28j60(); #endif #ifdef MODULE_ETHOS extern void auto_init_ethos(void); auto_init_ethos(); #endif #ifdef MODULE_SLIPDEV extern void auto_init_slipdev(void); auto_init_slipdev(); #endif #ifdef MODULE_CC110X extern void auto_init_cc110x(void); auto_init_cc110x(); #endif #ifdef MODULE_CC2538_RF extern void auto_init_cc2538_rf(void); auto_init_cc2538_rf(); #endif #ifdef MODULE_XBEE extern void auto_init_xbee(void); auto_init_xbee(); #endif #ifdef MODULE_KW2XRF extern void auto_init_kw2xrf(void); auto_init_kw2xrf(); #endif #ifdef MODULE_NETDEV_TAP extern void auto_init_netdev_tap(void); auto_init_netdev_tap(); #endif #ifdef MODULE_SOCKET_ZEP extern void auto_init_socket_zep(void); auto_init_socket_zep(); #endif #ifdef MODULE_NORDIC_SOFTDEVICE_BLE extern void gnrc_nordic_ble_6lowpan_init(void); gnrc_nordic_ble_6lowpan_init(); #endif #ifdef MODULE_NRFMIN extern void gnrc_nrfmin_init(void); gnrc_nrfmin_init(); #endif #ifdef MODULE_W5100 extern void auto_init_w5100(void); auto_init_w5100(); #endif #ifdef MODULE_SX127X extern void auto_init_sx127x(void); auto_init_sx127x(); #endif #endif /* MODULE_AUTO_INIT_GNRC_NETIF */ #ifdef MODULE_GNRC_UHCPC extern void auto_init_gnrc_uhcpc(void); auto_init_gnrc_uhcpc(); #endif /* initialize NDN module after the network devices are initialized */ #ifdef MODULE_NDN_RIOT DEBUG("Auto init NDN module.\n"); ndn_init(); #endif /* initialize sensors and actuators */ #ifdef MODULE_SHT1X DEBUG("Auto init SHT1X module (SHT10/SHT11/SHT15 sensor driver).\n"); extern void auto_init_sht1x(void); auto_init_sht1x(); #endif #ifdef MODULE_AUTO_INIT_SAUL DEBUG("auto_init SAUL\n"); #ifdef MODULE_SAUL_GPIO extern void auto_init_gpio(void); auto_init_gpio(); #endif #ifdef MODULE_SAUL_ADC extern void auto_init_adc(void); auto_init_adc(); #endif #ifdef MODULE_LSM303DLHC extern void auto_init_lsm303dlhc(void); auto_init_lsm303dlhc(); #endif #ifdef MODULE_LPS331AP extern void auto_init_lps331ap(void); auto_init_lps331ap(); #endif #ifdef MODULE_ISL29020 extern void auto_init_isl29020(void); auto_init_isl29020(); #endif #ifdef MODULE_L3G4200D extern void auto_init_l3g4200d(void); auto_init_l3g4200d(); #endif #ifdef MODULE_LIS3DH extern void auto_init_lis3dh(void); auto_init_lis3dh(); #endif #ifdef MODULE_LIS3MDL extern void auto_init_lis3mdl(void); auto_init_lis3mdl(); #endif #ifdef MODULE_MAG3110 extern void auto_init_mag3110(void); auto_init_mag3110(); #endif #ifdef MODULE_MMA8X5X extern void auto_init_mma8x5x(void); auto_init_mma8x5x(); #endif #ifdef MODULE_MPL3115A2 extern void auto_init_mpl3115a2(void); auto_init_mpl3115a2(); #endif #ifdef MODULE_MPU9150 extern void auto_init_mpu9150(void); auto_init_mpu9150(); #endif #ifdef MODULE_GROVE_LEDBAR extern void auto_init_grove_ledbar(void); auto_init_grove_ledbar(); #endif #ifdef MODULE_PIR extern void auto_init_pir(void); auto_init_pir(); #endif #ifdef MODULE_SI70XX extern void auto_init_si70xx(void); auto_init_si70xx(); #endif #ifdef MODULE_BMP180 extern void auto_init_bmp180(void); auto_init_bmp180(); #endif #ifdef MODULE_BMX055 extern void auto_init_bmx055(void); auto_init_bmx055(); #endif #if defined(MODULE_BME280) || defined(MODULE_BMP280) extern void auto_init_bmx280(void); auto_init_bmx280(); #endif #ifdef MODULE_JC42 extern void auto_init_jc42(void); auto_init_jc42(); #endif #ifdef MODULE_TSL2561 extern void auto_init_tsl2561(void); auto_init_tsl2561(); #endif #ifdef MODULE_PULSE_COUNTER extern void auto_init_pulse_counter(void); auto_init_pulse_counter(); #endif #ifdef MODULE_HDC1000 extern void auto_init_hdc1000(void); auto_init_hdc1000(); #endif #ifdef MODULE_FXOS8700 extern void auto_init_fxos8700(void); auto_init_fxos8700(); #endif #ifdef MODULE_HTS221 extern void auto_init_hts221(void); auto_init_hts221(); #endif #ifdef MODULE_DHT extern void auto_init_dht(void); auto_init_dht(); #endif #ifdef MODULE_TMP006 extern void auto_init_tmp006(void); auto_init_tmp006(); #endif #ifdef MODULE_TCS37727 extern void auto_init_tcs37727(void); auto_init_tcs37727(); #endif #ifdef MODULE_VEML6070 extern void auto_init_veml6070(void); auto_init_veml6070(); #endif #ifdef MODULE_IO1_XPLAINED extern void auto_init_io1_xplained(void); auto_init_io1_xplained(); #endif #ifdef MODULE_ADXL345 extern void auto_init_adxl345(void); auto_init_adxl345(); #endif #ifdef MODULE_LSM6DSL extern void auto_init_lsm6dsl(void); auto_init_lsm6dsl(); #endif #ifdef MODULE_ADCXX1C extern void auto_init_adcxx1c(void); auto_init_adcxx1c(); #endif #ifdef MODULE_ADS101X extern void auto_init_ads101x(void); auto_init_ads101x(); #endif #ifdef MODULE_LIS2DH12 extern void auto_init_lis2dh12(void); auto_init_lis2dh12(); #endif #ifdef MODULE_SI114X extern void auto_init_si114x(void); auto_init_si114x(); #endif #ifdef MODULE_MMA7660 extern void auto_init_mma7660(void); auto_init_mma7660(); #endif #endif /* MODULE_AUTO_INIT_SAUL */ #ifdef MODULE_AUTO_INIT_GNRC_RPL #ifdef MODULE_GNRC_RPL extern void auto_init_gnrc_rpl(void); auto_init_gnrc_rpl(); #endif #endif /* MODULE_AUTO_INIT_GNRC_RPL */ /* initialize storage devices */ #ifdef MODULE_AUTO_INIT_STORAGE DEBUG("auto_init STORAGE\n"); #ifdef MODULE_SDCARD_SPI extern void auto_init_sdcard_spi(void); auto_init_sdcard_spi(); #endif #endif /* MODULE_AUTO_INIT_STORAGE */ #ifdef MODULE_AUTO_INIT_CAN DEBUG("auto_init CAN\n"); extern void auto_init_candev(void); auto_init_candev(); #endif /* MODULE_AUTO_INIT_CAN */ }