xref: /titanic_52/usr/src/man/man3ext/tsalarm_get.3ext (revision 25c28e83beb90e7c80452a7c818c5e6f73a07dc8)
te
Copyright (c) 2007, Sun Microsystems Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
TSALARM_GET 3EXT "Sep 4, 2007"
NAME
tsalarm_get, tsalarm_set - get or set alarm relays
SYNOPSIS

cc [ flag... ] file... -ltsalarm [ library... ]
#include <tsalarm.h>

int tsalarm_get(uint32_t alarm_type, uint32_t *alarm_state);

int tsalarm_set(uint32_t alarm_type, uint32_t alarm_state);
PARAMETERS
alarm_type

The alarm type whose state is retrieved or set. Valid settings are: TSALARM_CRITICAL

critical

TSALARM_MAJOR

major

TSALARM_MINOR

minor

TSALARM_USER

user

alarm_state

The state of the alarm. Valid settings are: TSALARM_STATE_ON

The alarm state needs to be changed to "on", or is returned as "on".

TSALARM_STATE_OFF

The alarm state needs to be changed to "off", or is returned as "off".

TSALARM_STATE_UNKNOWN

The alarm state is returned as unknown.

DESCRIPTION

The TSALARM interface provides functions through which alarm relays can be controlled. The set of functions and data structures of this interface are defined in the <tsalarm.h> header.

There are four alarm relays that are controlled by ILOM. Each alarm can be set to "on" or "off" by using tsalarm interfaces provided from the host. The four alarms are labeled as critical, major, minor, and user. The user alarm is set by a user application depending on system condition. LEDs in front of the box provide a visual indication of the four alarms. The number of alarms and their meanings and labels can vary across platforms.

The tsalarm_get() function gets the state of alarm_type and returnsit in alarm_state. If successful, the function returns 0.

The tsalarm_set() function sets the state of alarm_type to the value in alarm_state. If successful, the function returns 0.

The following structures are defined in <tsalarm.h>:

typedef struct tsalarm_req {
 uint32_t alarm_id;
 uint32_t alarm_action;
} tsalarm_req_t;
typedef struct tsalarm_resp {
 uint32_t status;
 uint32_t alarm_id;
 uint32_t alarm_state;
} tsalarm_resp_t;
RETURN VALUES

The tsalarm_get() and tsalarm_set() functions return the following values: TSALARM_CHANNEL_INIT_FAILURE

Channel initialization failed.

TSALARM_COMM_FAILURE

Channel communication failed.

TSALARM_NULL_REQ_DATA

Allocating memory for request data failed.

TSALARM_SUCCESS

Successful completion.

TSALARM_UNBOUND_PACKET_RECVD

An incorrect packet was received.

The tsalarm_get() function returns the following value: TSALARM_GET_ERROR

An error occurred while getting the alarm state.

The tsalarm_set() function returns the following value: TSALARM_SET_ERROR

An error occurred while setting the alarm state.

EXAMPLES

Example 1 Get and set an alarm state.

The following example demonstrates how to get and set an alarm state.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <tsalarm.h>

void help(char *name) {
 printf("Syntax: %s [get <type> | set <type> <state>]\en\en", name);
 printf(" type = { critical, major, minor, user }\en");
 printf(" state = { on, off }\en\en");

 exit(0);
}

int main(int argc, char **argv) {

 uint32_t alarm_type, alarm_state;

 if (argc < 3)
 help(argv[0]);

 if (strncmp(argv[2], "critical", 1) == 0)
 alarm_type = TSALARM_CRITICAL;
 else if (strncmp(argv[2], "major", 2) == 0)
 alarm_type = TSALARM_MAJOR;
 else if (strncmp(argv[2], "minor", 2) == 0)
 alarm_type = TSALARM_MINOR;
 else if (strncmp(argv[2], "user", 1) == 0)
 alarm_type = TSALARM_USER;
 else
 help(argv[0]);

 if (strncmp(argv[1], "get", 1) == 0) {
 tsalarm_get(alarm_type, &alarm_state);
 printf("alarm = %d\etstate = %d\en", alarm_type, alarm_state);
 }
 else if (strncmp(argv[1], "set", 1) == 0) {
 if (strncmp(argv[3], "on", 2) == 0)
 alarm_state = TSALARM_STATE_ON;
 else if (strncmp(argv[3], "off", 2) == 0)
 alarm_state = TSALARM_STATE_OFF;
 else
 help(argv[0]);

 tsalarm_set(alarm_type, alarm_state);
 }
 else {
 help(argv[0]);
 }

 return 0;
}
ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Uncommitted
MT-Level Safe
SEE ALSO

libtsalarm(3LIB), attributes(5)