File: ipmi_control_sun_led.h

package info (click to toggle)
openhpi 2.14.1-1.2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 20,380 kB
  • sloc: ansic: 187,087; cpp: 32,188; sh: 10,415; makefile: 4,467; perl: 1,529
file content (63 lines) | stat: -rw-r--r-- 1,690 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
 * Copyright (c) 2009 by Sun Microsystems, Inc.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  This
 * file and program are licensed under a BSD style license.  See
 * the Copying file included with the OpenHPI distribution for
 * full licensing terms.
 *
 * Authors:
 *     Chris Rinaldo <chris.rinaldo@sun.com>
 */

#ifndef dIpmiControlSunLed_h
#define dIpmiControlSunLed_h

#include <stdint.h>
#include "ipmi_control.h"
#include "ipmi_log.h"
#include "ipmi_mc.h"
#include "SaHpi.h"

class cIpmiControlSunLed : public cIpmiControl
{
protected:
  uint8_t m_dev_access_addr;
  uint8_t m_dev_slave_addr;
  uint8_t m_entity_id;
  uint8_t m_entity_inst;
  uint8_t m_oem;
  SaHpiBoolT m_read_only;

public:
  cIpmiControlSunLed(cIpmiMc *mc, unsigned int num, uint8_t dev_access_addr,
      uint8_t dev_slave_addr, uint8_t entity_id, uint8_t entity_inst,
      uint8_t oem, SaHpiBoolT read_only);
  virtual ~cIpmiControlSunLed();

  virtual bool CreateRdr(SaHpiRptEntryT &resource, SaHpiRdrT &rdr);

  virtual SaErrorT SetState(const SaHpiCtrlModeT &mode,
          const SaHpiCtrlStateT &state);
  virtual SaErrorT GetState(SaHpiCtrlModeT &mode, SaHpiCtrlStateT &state);

  virtual void Dump(cIpmiLog &dump, const char *name) const;

private:
  static const tIpmiCmd eIpmiCmdSunOemLedGet = static_cast<tIpmiCmd> (0x21);
  static const tIpmiCmd eIpmiCmdSunOemLedSet = static_cast<tIpmiCmd> (0x22);

  enum tLedState
  {
    eLedStateOff,
    eLedStateOn,
    eLedStateStandByBlink,
    eLedStateSlowBlink,
    eLedStateFastBlink
  };
};

#endif