// run basic benchmark to estimate CPU clock frequency void estimate_cpu_clock(void) { printf(" estimating cpu clock frequency...\n"); unsigned long int i, n = 1<<4; struct rusage start, finish; double extime; do { // trials n <<= 1; unsigned int x=0; getrusage(RUSAGE_SELF, &start); for (i=0; i<n; i++) { // perform mindless task x <<= 1; x |= 1; x &= 0xff; x ^= 0xff; } getrusage(RUSAGE_SELF, &finish); extime = calculate_execution_time(start, finish); } while (extime < 0.5 && n < (1<<28)); // estimate cpu clock frequency cpu_clock = 23.9 * n / extime; printf(" performed %ld trials in %5.1f ms\n", n, extime * 1e3); float clock_format = cpu_clock; char clock_units = convert_units(&clock_format); printf(" estimated clock speed: %7.3f %cHz\n", clock_format, clock_units); }
TEST(UnitsInterface, Newton_to_Pound) { UnitsConvFn_t Newton_to_Pound; UnitsConvFn_t Newton_to_Pound2; Units_t* Newton = (Units_t*) NULL; Units_t* Pound = (Units_t*) NULL; double pounds; ASSERT_EQ(CONV_OK, conv_fn_s("kg*m/s2", "lbm*ft/s2", &Newton_to_Pound)); Newton = new_units("kg*m/s2"); Pound = new_units("lbm*ft/s2"); ASSERT_NE((Units_t*) NULL, Newton); ASSERT_NE((Units_t*) NULL, Pound); ASSERT_EQ(CONV_OK, conv_fn_u(Newton, Pound, &Newton_to_Pound2)); EXPECT_EQ(0, memcmp(&Newton_to_Pound, &Newton_to_Pound2, sizeof(UnitsConvFn_t))); pounds = convert_units(1.0, &Newton_to_Pound); ASSERT_NEAR((1.0/(0.45359237*0.3048)), pounds, TOL); clean_up_Units_t(&Newton); clean_up_Units_t(&Pound); ASSERT_EQ((Units_t*) NULL, Newton); ASSERT_EQ((Units_t*) NULL, Pound); }
size slider_impl::minimum_size(const optional_size& aAvailableSpace) const { if (has_minimum_size()) return widget::minimum_size(aAvailableSpace); scoped_units su(*this, UnitsPixels); return convert_units(*this, su.saved_units(), size{ 96, 16 }); }
size image_widget::minimum_size(const optional_size& aAvailableSpace) const { if (has_minimum_size()) return widget::minimum_size(aAvailableSpace); scoped_units su(*this, UnitsPixels); size result = iTexture.extents(); return convert_units(*this, su.saved_units(), result); }
int main(int argc, char *argv[]) { netsnmp_session session, *ss; netsnmp_pdu *pdu; netsnmp_pdu *response; int arg; oid base[MAX_OID_LEN]; size_t base_length; int status; netsnmp_variable_list *saved = NULL, *vlp = saved, *vlp2; int count = 0; /* * get the common command line arguments */ switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) { case NETSNMP_PARSE_ARGS_ERROR: exit(1); case NETSNMP_PARSE_ARGS_SUCCESS_EXIT: exit(0); case NETSNMP_PARSE_ARGS_ERROR_USAGE: usage(); exit(1); default: break; } if (arg != argc) { fprintf(stderr, "snmpdf: extra argument: %s\n", argv[arg]); exit(1); } SOCK_STARTUP; /* * Open an SNMP session. */ ss = snmp_open(&session); if (ss == NULL) { /* * diagnose snmp_open errors with the input netsnmp_session pointer */ snmp_sess_perror("snmpdf", &session); SOCK_CLEANUP; exit(1); } printf("%-18s %15s %15s %15s %5s\n", "Description", "size (kB)", "Used", "Available", "Used%"); if (ucd_mib == 0) { /* * * Begin by finding all the storage pieces that are of * * type hrStorageFixedDisk, which is a standard disk. */ pdu = snmp_pdu_create(SNMP_MSG_GETNEXT); base_length = add(pdu, "HOST-RESOURCES-MIB:hrStorageIndex", NULL, 0); memcpy(base, pdu->variables->name, base_length * sizeof(oid)); vlp = collect(ss, pdu, base, base_length); while (vlp) { size_t units; unsigned long hssize, hsused; char descr[SPRINT_MAX_LEN]; int len; pdu = snmp_pdu_create(SNMP_MSG_GET); add(pdu, "HOST-RESOURCES-MIB:hrStorageDescr", &(vlp->name[base_length]), vlp->name_length - base_length); add(pdu, "HOST-RESOURCES-MIB:hrStorageAllocationUnits", &(vlp->name[base_length]), vlp->name_length - base_length); add(pdu, "HOST-RESOURCES-MIB:hrStorageSize", &(vlp->name[base_length]), vlp->name_length - base_length); add(pdu, "HOST-RESOURCES-MIB:hrStorageUsed", &(vlp->name[base_length]), vlp->name_length - base_length); status = snmp_synch_response(ss, pdu, &response); if (status != STAT_SUCCESS || !response) { snmp_sess_perror("snmpdf", ss); exit(1); } vlp2 = response->variables; len = vlp2->val_len; if (len >= SPRINT_MAX_LEN) len = SPRINT_MAX_LEN-1; memcpy(descr, vlp2->val.string, len); descr[len] = '\0'; vlp2 = vlp2->next_variable; units = vlp2->val.integer ? *(vlp2->val.integer) : 0; vlp2 = vlp2->next_variable; hssize = vlp2->val.integer ? *(vlp2->val.integer) : 0; vlp2 = vlp2->next_variable; hsused = vlp2->val.integer ? *(vlp2->val.integer) : 0; printf("%-18s %15lu %15lu %15lu %4lu%%\n", descr, units ? convert_units(hssize, units, 1024) : hssize, units ? convert_units(hsused, units, 1024) : hsused, units ? convert_units(hssize-hsused, units, 1024) : hssize - hsused, hssize ? convert_units(hsused, 100, hssize) : hsused); vlp = vlp->next_variable; snmp_free_pdu(response); count++; } } if (count == 0) { size_t units = 0; /* * the host resources mib must not be supported. Lets try the * UCD-SNMP-MIB and its dskTable */ pdu = snmp_pdu_create(SNMP_MSG_GETNEXT); base_length = add(pdu, "UCD-SNMP-MIB:dskIndex", NULL, 0); memcpy(base, pdu->variables->name, base_length * sizeof(oid)); vlp = collect(ss, pdu, base, base_length); while (vlp) { unsigned long hssize, hsused; char descr[SPRINT_MAX_LEN]; pdu = snmp_pdu_create(SNMP_MSG_GET); add(pdu, "UCD-SNMP-MIB:dskPath", &(vlp->name[base_length]), vlp->name_length - base_length); add(pdu, "UCD-SNMP-MIB:dskTotal", &(vlp->name[base_length]), vlp->name_length - base_length); add(pdu, "UCD-SNMP-MIB:dskUsed", &(vlp->name[base_length]), vlp->name_length - base_length); status = snmp_synch_response(ss, pdu, &response); if (status != STAT_SUCCESS || !response) { snmp_sess_perror("snmpdf", ss); exit(1); } vlp2 = response->variables; memcpy(descr, vlp2->val.string, vlp2->val_len); descr[vlp2->val_len] = '\0'; vlp2 = vlp2->next_variable; hssize = *(vlp2->val.integer); vlp2 = vlp2->next_variable; hsused = *(vlp2->val.integer); printf("%-18s %15lu %15lu %15lu %4lu%%\n", descr, units ? convert_units(hssize, units, 1024) : hssize, units ? convert_units(hsused, units, 1024) : hsused, units ? convert_units(hssize-hsused, units, 1024) : hssize - hsused, hssize ? convert_units(hsused, 100, hssize) : hsused); vlp = vlp->next_variable; snmp_free_pdu(response); count++; } } if (count == 0) { fprintf(stderr, "Failed to locate any partitions.\n"); exit(1); } snmp_close(ss); SOCK_CLEANUP; return 0; } /* end main() */