int onlp_sfpi_is_present(int port) { sfpmap_t* sfp = SFP_GET(port); if(sfp->mod_present_gpio) { return onlplib_sfp_is_present_file(sfp->mod_present_gpio, /* Present */ "1\n", /* Absent */ "0\n"); } else { /** * If we can open and read a byte from the EEPROM file * then we consider it present. */ int fd = open(sfp->eeprom, O_RDONLY); if (fd < 0) { /* Not Present */ return 0; } int rv; uint8_t byte; if(read(fd, &byte, 1) == 1) { /* Present */ rv = 1; } else { /* No Present */ rv = 0; } close(fd); return rv; } }
int onlp_sfpi_is_present(int port) { sfpmap_t* sfp = SFP_GET(port); return onlplib_sfp_is_present_file(sfp->mod_abs_gpio, /* Present */ "0\n", /* Absent */ "1\n"); }
static char* sfp_get_port_info_path(int port, char *node_name) { sfpmap_t* sfp = SFP_GET(port); memset(sfp_node_path, 0x00, MAX_SFP_PATH); sprintf(sfp_node_path, sfp->port_path, node_name); return sfp_node_path; }
int onlp_sfpi_dom_read(int port, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); return onlplib_sfp_eeprom_read_file(sfp->dom, data); }