Changeset View
Changeset View
Standalone View
Standalone View
tests/sys/devad2/devad2_devctl.h
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
/*- | |||||
* Copyright (c) 2014 Spectra Logic Corporation | |||||
* All rights reserved. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions | |||||
* are met: | |||||
* 1. Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions, and the following disclaimer, | |||||
* without modification. | |||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer | |||||
* substantially similar to the "NO WARRANTY" disclaimer below | |||||
* ("Disclaimer") and any redistribution must be conditioned upon | |||||
* including a substantially similar Disclaimer requirement for further | |||||
* binary redistribution. | |||||
* | |||||
* NO WARRANTY | |||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR | |||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | |||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | |||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |||||
* POSSIBILITY OF SUCH DAMAGES. | |||||
* | |||||
*/ | |||||
#ifndef __DEVAD2_DEVCTL_H__ | |||||
#define __DEVAD2_DEVCTL_H__ | |||||
/*============================= Class Devinitions ============================*/ | |||||
/*------------------------------- EventConsumer ------------------------------*/ | |||||
class EventConsumer : public DevdCtl::Consumer | |||||
{ | |||||
public: | |||||
/** Return the HpdEventConsumer singleton. */ | |||||
static EventConsumer &Get(); | |||||
static int Init(struct devad_softc *softc); | |||||
static struct devad_softc *GetSoftc(); | |||||
private: | |||||
EventConsumer(); | |||||
virtual ~EventConsumer(); | |||||
static EventConsumer *s_theEventConsumer; | |||||
static DevdCtl::EventFactory::Record s_registryEntries[]; | |||||
static struct devad_softc *s_softc; | |||||
}; | |||||
//- HpdEventConsumer Static Inline Public Methods ------------------------------ | |||||
inline | |||||
EventConsumer & | |||||
EventConsumer::Get() | |||||
{ | |||||
return (*s_theEventConsumer); | |||||
} | |||||
inline | |||||
struct devad_softc * | |||||
EventConsumer::GetSoftc() | |||||
{ | |||||
return (s_softc); | |||||
} | |||||
/*--------------------------------- HpdEvent ---------------------------------*/ | |||||
class Event : public DevdCtl::Event | |||||
{ | |||||
public: | |||||
/** Specialized Event object factor for HPD events. */ | |||||
static BuildMethod Builder; | |||||
virtual bool Process() const; | |||||
protected: | |||||
/** Constructor */ | |||||
Event(DevdCtl::Event::Type, DevdCtl::NVPairMap &, const std::string &); | |||||
}; | |||||
/*--------------------------------- DevfsEvent -------------------------------*/ | |||||
class DevfsEvent : public DevdCtl::DevfsEvent | |||||
{ | |||||
public: | |||||
static BuildMethod Builder; | |||||
virtual bool Process() const; | |||||
protected: | |||||
DevfsEvent(DevdCtl::Event::Type, DevdCtl::NVPairMap &, | |||||
const std::string &, struct devad_softc *softc); | |||||
static struct devad_softc *s_softc; | |||||
}; | |||||
#endif |