CODE EXAMPLE 2-1Sample envmond Application Program (Continued)

if (picl_get_propval_by_name(nodeh, LO_SHUTDOWN_THRESHOLD, &threshold, sizeof (threshold)) != PICL_SUCCESS) { fprintf(stderr, "Failed to read low shutdown threshold.");

} else

fprintf(stdout, "Low shutdown threshold = %d\n", threshold);

if (picl_get_propval_by_name(nodeh, LO_WARNING_THRESHOLD, &threshold, sizeof (threshold)) != PICL_SUCCESS) { fprintf(stderr, "Failed to read low warning threshold.");

} else

fprintf(stderr, "Low warning threshold = %d\n", threshold);

}

void

set_sensor_thresholds(picl_nodehdl_t nodeh, char *threshold, int8_t value)

{

int8_t new_value = value;

if (picl_set_propval_by_name(nodeh, threshold, &new_value, sizeof (new_value)) != PICL_SUCCESS)

fprintf(stderr, "Failed to set *s\n", threshold);

}

int

 

main(void)

 

{

 

int

warning_temp;

int8_t

temp;

char

*sensor = "CPU-sensor";

picl_nodehdl_t rooth; picl_nodehdl_t platformh; picl_nodehdl_t childh;

if (picl_initialize() != PICL_SUCCESS) { fprintf(stderr, "Failed to initialise picl\n"); return (1);

}

if (picl_get_root(&rooth) != PICL_SUCCESS) { fprintf(stderr, "Failed to get root node\n"); picl_shutdown();

return (1);

}

if (get_child_by_name(rooth, "platform", &platformh) != PICL_SUCCESS) { fprintf(stderr, "Failed to get platform node\n"); picl_shutdown();

Chapter 2 Environmental Monitoring 39

Page 53
Image 53
Sun Microsystems CP2500 manual Code Example 2-1Sample envmond Application Program