Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
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;
}
Пример #4
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;
}
Пример #5
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);
    }
Пример #6
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, "%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;
}
Пример #7
0
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;
}
Пример #8
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);
    }
}
Пример #10
0
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;
}