int onlp_file_vwrite_int(int value, const char* fmt, va_list vargs) { int rv; char* s = aim_fstrdup("%d", value); rv = onlp_file_vwrite_str(s, fmt, vargs); aim_free(s); return rv; }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { int v; v = i2c_devname_read_byte("CPLD", 0X07); pi->cpld_versions = aim_fstrdup("%d", v); return 0; }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { int ver=0; if(onlp_file_read_int(&ver, "%s/version", PREFIX_PATH_ON_CPLD_DEV) < 0) return ONLP_STATUS_E_INTERNAL; pi->cpld_versions = aim_fstrdup("%d", ver); return 0; }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { int i, v[NUM_OF_CPLD]={0}; for (i=0; i < NUM_OF_CPLD; i++) { v[i] = 0; if(onlp_file_read_int(v+i, arr_cplddev_version[i]) < 0) { return ONLP_STATUS_E_INTERNAL; } } pi->cpld_versions = aim_fstrdup("%d.%d", v[0], v[1]); return 0; }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { INT4 rv = ONLP_STATUS_OK; UINT4 u4Data = 0; rv = ifnOS_LINUX_BmcI2CGet(I2C_BUS, CPLD_ADDR, CPLD_VERSION_REGISTER, CPLD_VERSION_ADDR_LEN, &u4Data, CPLD_VERSION_DATA_LEN); if(rv == ONLP_STATUS_OK) { u4Data = u4Data >> CPLD_VERSION_OFFSET; pi->cpld_versions = aim_fstrdup("%d", u4Data); }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { int i, v[NUM_OF_CPLD]={0}; for (i=0; i < NUM_OF_CPLD; i++) { v[i] = 0; if(onlp_file_read_int(v+i, "%s/%s", PREFIX_PATH_ON_CPLD_DEV, arr_cplddev_name[i]) < 0) { return ONLP_STATUS_E_INTERNAL; } } pi->cpld_versions = aim_fstrdup("brd=%d, mgmt=%d, port=%d", v[0], v[1], v[2]); return ONLP_STATUS_OK; }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { int v; int fd, len, nbytes = 10; char r_data[10] = {0}; char fullpath[65] = {0}; sprintf(fullpath, "/sys/bus/i2c/devices/0-0030/version"); OPEN_READ_FILE(fd, fullpath, r_data, nbytes, len); v = atoi(r_data); pi->cpld_versions = aim_fstrdup("%d", v); return 0; }
/* Just make sure elements get free properly */ void bigring_str_test(int size, bigring_free_entry_f fef) { bigring_t* br = bigring_create(size, fef); int i; char* p; char buf[16]; free_count__ = 0; for(i = 0; i < size*2; i++) { bigring_push(br, aim_fstrdup("%d", i)); } /* * At this point: * free_count should be size (or zero if using default free function) * next entry should be "size" * ringcount should be size */ if(fef == free_entry__) { if(free_count__ != size) { AIM_LOG_ERROR("Free count is %d, should be %d", free_count__, size); } } if(fef == bigring_aim_free_entry) { if(free_count__ != 0) { AIM_LOG_ERROR("free_count is %d, should be zero", free_count__); } } ASSERT_COUNT(bigring_count(br), size, bigring_size(br)); p = bigring_shift(br); ASSERT_COUNT(bigring_count(br), size-1, bigring_size(br)); aim_snprintf(buf, sizeof(buf), "%d", size); if(strcmp(p, buf)) { AIM_LOG_ERROR("Next is '%s', should be '%s'", p, buf); abort(); } AIM_FREE(p); /* * Verify the rest of the entries are free. * Note - we removed the current entry, so we need * to increment free_count__ to account for it or * the verification will be off by one. */ free_count__++; bigring_destroy(br); }
void onlp_snmp_platform_init(void) { /** * This is the base of the platform:general:system tree */ onlp_sys_info_t si; if(onlp_sys_info_get(&si) >= 0) { #define REGISTER_STR(_index, _field) \ do { \ platform_string_register(_index, #_field, (char*)si.onie_info._field); \ } while(0) #define REGISTER_INT(_index, _field) \ do { \ platform_int_register(_index, #_field, si.onie_info._field); \ } while(0) REGISTER_STR(1, product_name); REGISTER_STR(2, part_number); REGISTER_STR(3, serial_number); char* mstring = aim_fstrdup("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x", si.onie_info.mac[0], si.onie_info.mac[2], si.onie_info.mac[3], si.onie_info.mac[3], si.onie_info.mac[4], si.onie_info.mac[5]); platform_string_register(4, "mac", mstring); aim_free(mstring); REGISTER_INT(5, mac_range); REGISTER_STR(6, manufacturer); REGISTER_STR(7, manufacture_date); REGISTER_STR(8, vendor); REGISTER_STR(9, platform_name); REGISTER_INT(10, device_version); REGISTER_STR(11, label_revision); REGISTER_STR(12, country_code); REGISTER_STR(13, diag_version); REGISTER_STR(14, service_tag); REGISTER_STR(15, onie_version); } }
int onlp_sysi_platform_info_get(onlp_platform_info_t* pi) { int i, siz=NUM_OF_CPLD, v[NUM_OF_CPLD]={0}; int fd, len, nbytes = 10; char r_data[10] = {0}; char fullpath[65] = {0}; for (i=0; i<siz; i++) { sprintf(fullpath, "%s%s/version", PREFIX_PATH_ON_CPLD_DEV, arr_cplddev_name[i]); OPEN_READ_FILE(fd,fullpath,r_data,nbytes,len); v[i]=atoi(r_data); memset(r_data, 0, len); } if(3==NUM_OF_CPLD) pi->cpld_versions = aim_fstrdup("%d.%d.%d", v[0], v[1], v[2]); else printf("This CPLD numbers are wrong !! \n"); return 0; }