Update of /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv16090/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl Modified Files: Makefile.in ilo2_ribcl.h ilo2_ribcl_discover.c ilo2_ribcl_discover.h ilo2_ribcl_reset.c ilo2_ribcl_xml.c Log Message: Upgrade to OpenHPI 2.14.1. For more Information, see: http://openhpi.org/, Index: ilo2_ribcl_reset.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl/ilo2_ribcl_reset.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ilo2_ribcl_reset.c 23 Aug 2009 06:30:42 -0000 1.2 --- ilo2_ribcl_reset.c 3 Dec 2009 15:31:00 -0000 1.3 *************** *** 117,121 **** * Retrieves a resource's reset action state. If the resource has * SAHPI_CAPABILITY_RESET then sends RESET_SERVER RIBCL command to iLO2 ! * to do a warm reset the system and a COLD_BOOT_SERVER command to do a * cold reset. Please note that this command doesn't bring the system and * (OS running on it down gracefully. --- 117,121 ---- * Retrieves a resource's reset action state. If the resource has * SAHPI_CAPABILITY_RESET then sends RESET_SERVER RIBCL command to iLO2 ! * to do a warm reset the system and a COLD_BOOT_SERVER commad to do a * cold reset. Please note that this command doesn't bring the system and * (OS running on it down gracefully. Index: ilo2_ribcl_discover.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl/ilo2_ribcl_discover.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ilo2_ribcl_discover.c 26 Jul 2008 04:41:36 -0000 1.1 --- ilo2_ribcl_discover.c 3 Dec 2009 15:31:00 -0000 1.2 *************** *** 40,44 **** #include <ilo2_ribcl_sensor.h> #include <ilo2_ribcl_idr.h> - #ifdef ILO2_RIBCL_SIMULATE_iLO2_RESPONSE #include <sys/stat.h> /* For test routine ilo2_ribcl_getfile() */ --- 40,43 ---- *************** *** 2163,2166 **** --- 2162,2166 ---- if( fstat( fd, &stbuf) != 0){ err("ilo2_ribcl_getfile: Stat failed for file %s", fname); + close(fd); return( 1); } *************** *** 2169,2172 **** --- 2169,2173 ---- err("ilo2_ribcl_getfile(): File exceeds buffer by %ld bytes.", (stbuf.st_size + 1) - bufsize); + close(fd); return( 1); } *************** *** 2176,2179 **** --- 2177,2181 ---- if( rcount == -1){ err("ilo2_ribcl_getfile(): Read error at byte %d", i); + close(fd); return( 1); } *************** *** 2189,2192 **** --- 2191,2195 ---- buffer[i] = 0; /* Null terminate */ + close(fd); return( 0); /* Success */ Index: Makefile.in =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl/Makefile.in,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.in 17 Apr 2009 10:52:55 -0000 1.4 --- Makefile.in 3 Dec 2009 15:31:00 -0000 1.5 *************** *** 1,3 **** ! # Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ --- 1,3 ---- ! # Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ *************** *** 173,176 **** --- 173,177 ---- NMEDIT = @NMEDIT@ OA_SOAP = @OA_SOAP@ + OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OH_SSL_INCLUDES = @OH_SSL_INCLUDES@ *************** *** 274,277 **** --- 275,279 ---- sysconfdir = @sysconfdir@ target_alias = @target_alias@ + top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ *************** *** 311,316 **** case '$(am__configure_deps)' in \ *$$dep*) \ ! cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ ! && exit 0; \ exit 1;; \ esac; \ --- 313,318 ---- case '$(am__configure_deps)' in \ *$$dep*) \ ! ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ! && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ *************** *** 415,419 **** if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ ! $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique --- 417,421 ---- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ ! $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique Index: ilo2_ribcl_discover.h =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl/ilo2_ribcl_discover.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ilo2_ribcl_discover.h 26 Jul 2008 04:41:36 -0000 1.1 --- ilo2_ribcl_discover.h 3 Dec 2009 15:31:00 -0000 1.2 *************** *** 40,47 **** /* The size used for the temporary buffer to contain the response * of the IR_CMD_GET_SERVER_DATA command. The current return size is ! * a little over 12K, so we use 24K to give us some margin for the * future. */ ! #define ILO2_RIBCL_DISCOVER_RESP_MAX 1024*24 /* This define is the IANA-assigned private enterprise number for --- 40,47 ---- /* The size used for the temporary buffer to contain the response * of the IR_CMD_GET_SERVER_DATA command. The current return size is ! * a little over 24K, so we use 48K to give us some margin for the * future. */ ! #define ILO2_RIBCL_DISCOVER_RESP_MAX 1024*48 /* This define is the IANA-assigned private enterprise number for Index: ilo2_ribcl_xml.c =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl/ilo2_ribcl_xml.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ilo2_ribcl_xml.c 26 Jul 2008 04:41:36 -0000 1.1 --- ilo2_ribcl_xml.c 3 Dec 2009 15:31:00 -0000 1.2 *************** *** 71,76 **** static int ir_xml_scan_smbios_1( ilo2_ribcl_handler_t *, xmlNodePtr); static int ir_xml_scan_smbios_4( ilo2_ribcl_handler_t *, xmlNodePtr); ! static int ir_xml_scan_smbios_17( ilo2_ribcl_handler_t *, xmlNodePtr); ! static int ir_xml_record_memdata( ilo2_ribcl_handler_t *, char *, char *, char *); static xmlChar *ir_xml_smb_get_value( char *, xmlNodePtr); --- 71,76 ---- static int ir_xml_scan_smbios_1( ilo2_ribcl_handler_t *, xmlNodePtr); static int ir_xml_scan_smbios_4( ilo2_ribcl_handler_t *, xmlNodePtr); ! static int ir_xml_scan_smbios_17( ilo2_ribcl_handler_t *, xmlNodePtr, int *); ! static int ir_xml_record_memdata( ilo2_ribcl_handler_t *, int *, char *, char *, char *); static xmlChar *ir_xml_smb_get_value( char *, xmlNodePtr); *************** *** 255,258 **** --- 255,259 ---- xmlNodePtr h_node; xmlChar *typ; + int mem_slotindex; int ret; *************** *** 292,295 **** --- 293,297 ---- h_node = h_node->xmlChildrenNode; + mem_slotindex = 1; while( h_node != NULL){ *************** *** 312,316 **** /* Scan type 17 node for memory */ ret = ir_xml_scan_smbios_17( ir_handler, ! h_node); } --- 314,319 ---- /* Scan type 17 node for memory */ ret = ir_xml_scan_smbios_17( ir_handler, ! h_node, ! &mem_slotindex); } *************** *** 405,408 **** --- 408,412 ---- xmlNodePtr hd_node; xmlChar *typ; + int mem_slotindex; int ret; *************** *** 442,445 **** --- 446,450 ---- hd_node = hd_node->xmlChildrenNode; + mem_slotindex = 1; while( hd_node != NULL){ *************** *** 462,466 **** /* Scan type 17 node for memory */ ret = ir_xml_scan_smbios_17( ir_handler, ! hd_node); } --- 467,472 ---- /* Scan type 17 node for memory */ ret = ir_xml_scan_smbios_17( ir_handler, ! hd_node, ! &mem_slotindex); } *************** *** 620,624 **** xmlFree( status); xmlFreeDoc( doc); ! err("ir_xml_parse_uid_status(): Unkown UID status."); return(-1); } --- 626,631 ---- xmlFree( status); xmlFreeDoc( doc); ! err("ir_xml_parse_uid_status(): Unknown UID status : %s", ! (char *)status); return(-1); } *************** *** 2118,2121 **** --- 2125,2129 ---- * @ir_handler: Ptr to this instance's custom handler. * @b_node: porinter to an SMBIOS_RECORD node of type 17. + * @mem_slotindex: pointer to an integer value for the current slot index. * * This routine will parse a SMBIOS_RECORD type 17 node, which should contain *************** *** 2135,2139 **** **/ static int ir_xml_scan_smbios_17( ilo2_ribcl_handler_t *ir_handler, ! xmlNodePtr b_node) { --- 2143,2148 ---- **/ static int ir_xml_scan_smbios_17( ilo2_ribcl_handler_t *ir_handler, ! xmlNodePtr b_node, ! int *mem_slotindex) { *************** *** 2150,2154 **** if( xmlStrcmp( mem_size, (xmlChar *)"not installed") != 0 ){ ! ret = ir_xml_record_memdata( ir_handler, (char *)mem_label, (char *)mem_size, (char *) mem_speed); --- 2159,2165 ---- if( xmlStrcmp( mem_size, (xmlChar *)"not installed") != 0 ){ ! /* Record data for a populated DIMM slot */ ! ret = ir_xml_record_memdata( ir_handler, mem_slotindex, ! (char *)mem_label, (char *)mem_size, (char *) mem_speed); *************** *** 2156,2159 **** --- 2167,2173 ---- } + /* Increment the slot index for both populated and unpopulated slots */ + (*mem_slotindex)++; + if( mem_label){ xmlFree( mem_label); *************** *** 2175,2178 **** --- 2189,2193 ---- * ir_xml_record_memdata * @ir_handler: ptr to the ilo2_ribcl plugin private handler. + * @memcount: ptr to an int that contains a mem slot count. * @memlabel: string memory DIMM label from iLO2. * @memsize: string memory DIMM size from iLO2. *************** *** 2192,2198 **** --- 2207,2215 ---- **/ static int ir_xml_record_memdata( ilo2_ribcl_handler_t *ir_handler, + int *memcount, char *memlabel, char *memsize, char *memspeed) { int dimmindex = 0; + int procindex = 0; int ret; ir_memdata_t *dimmdat; *************** *** 2205,2212 **** ret = sscanf( (char *)memlabel, "DIMM %d", &dimmindex); if( ret != 1){ ! /* We didn't parse the DIMM label correctly */ ! err("ir_xml_record_memdata: incorrect DIMM label string: %s", memlabel); ! return( -1); } --- 2222,2246 ---- ret = sscanf( (char *)memlabel, "DIMM %d", &dimmindex); if( ret != 1){ ! ! /* Try for an alternate format. We will also accept a label ! * of the format 'PROC k DIMM nX' where k and n are integers ! * and X is a capital letter. Since n may not be unique across ! * all DIMMS, we will use the memcount parameter as the index ! * for the DIMM. */ ! ! ret = sscanf( (char*)memlabel, "PROC %d DIMM %d", &procindex, ! &dimmindex); ! ! /* In this case, we use the memory slot count passed to us via ! * parameter memcount as the memory index. */ ! dimmindex = *memcount; ! ! if( ret != 2){ ! ! /* We didn't parse the DIMM label correctly */ ! err("ir_xml_record_memdata: incorrect DIMM label string: %s", memlabel); ! return( -1); ! } } *************** *** 2437,2441 **** * The libxml2 parser also doesn't like multiple occurences of the XML * header <?xml version=X.X ?>, so we filter those out as we encounter ! * them druing the buffer copy. * * Return value: Ptr to the new buffer on success, or NULL if failure. --- 2471,2479 ---- * The libxml2 parser also doesn't like multiple occurences of the XML * header <?xml version=X.X ?>, so we filter those out as we encounter ! * them during the buffer copy. ! * ! * The DL380 G6 also has a <DRIVES> section that causes errors with the ! * libxml2 parser. Since we don't use this information, we filter this out ! * during the buffer copy as well. * * Return value: Ptr to the new buffer on success, or NULL if failure. *************** *** 2447,2450 **** --- 2485,2490 ---- static char declmatch[] = "<?xml version="; + static char drives_start[] ="<DRIVES>"; + static char drives_end[] ="</DRIVES>"; static char prefix[] = "<RIBCL_RESPONSE_OUTPUT>"; static char suffix[] = "</RIBCL_RESPONSE_OUTPUT>"; *************** *** 2452,2455 **** --- 2492,2497 ---- int suffix_len = (int)strlen( suffix); int matchlen = (int)strlen( declmatch); + int drives_startlen = (int)(strlen(drives_start)); + int drives_endlen = (int)(strlen(drives_end)); char *newbuffer; char *retbuffer; *************** *** 2489,2493 **** continue; } ! } *newbuffer++ = *oldbuffer++; --- 2531,2552 ---- continue; } ! /* Filter out <DRIVES>...</DRIVES> section */ ! else if( strncmp( oldbuffer, drives_start, ! drives_startlen) == 0){ ! ! while( strncmp( oldbuffer, drives_end, ! drives_endlen)){ ! /* Unclosed XML decl - Error */ ! if( *oldbuffer == '\0'){ ! free( newbuffer); ! return( NULL); ! } ! oldbuffer++; ! } ! oldbuffer += drives_endlen; ! continue; ! } ! ! } /* end if *oldbuffer == '<' */ *newbuffer++ = *oldbuffer++; Index: ilo2_ribcl.h =================================================================== RCS file: /cvsroot/ltp/ltp/testcases/open_hpi_testsuite/plugins/ilo2_ribcl/ilo2_ribcl.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ilo2_ribcl.h 17 Apr 2009 10:52:55 -0000 1.2 --- ilo2_ribcl.h 3 Dec 2009 15:31:00 -0000 1.3 *************** *** 99,103 **** * Change to dynamic if need be. */ ! #define ILO2_RIBCL_BUFFER_LEN 4096 /* --- 99,103 ---- * Change to dynamic if need be. */ ! #define ILO2_RIBCL_BUFFER_LEN 4096 /* *************** *** 347,355 **** #define ILO2_RIBCL_DISCOVER_CPU_MAX 16 ! #define ILO2_RIBCL_DISCOVER_MEM_MAX 16 #define ILO2_RIBCL_DISCOVER_FAN_MAX 16 #define ILO2_RIBCL_DISCOVER_PSU_MAX 8 #define ILO2_RIBCL_DISCOVER_VRM_MAX 8 ! #define ILO2_RIBCL_DISCOVER_TS_MAX 16 #define ILO2_RIBCL_CHASSIS_INDEX -1; /* Index is not aplicable to chassis */ --- 347,355 ---- #define ILO2_RIBCL_DISCOVER_CPU_MAX 16 ! #define ILO2_RIBCL_DISCOVER_MEM_MAX 32 #define ILO2_RIBCL_DISCOVER_FAN_MAX 16 #define ILO2_RIBCL_DISCOVER_PSU_MAX 8 #define ILO2_RIBCL_DISCOVER_VRM_MAX 8 ! #define ILO2_RIBCL_DISCOVER_TS_MAX 48 #define ILO2_RIBCL_CHASSIS_INDEX -1; /* Index is not aplicable to chassis */ |