IOSerialSessionSync.h [plain text]
#ifndef _IOSERIALSESSIONSYNC_H
#define _IOSERIALSESSIONSYNC_H
#include <IOKit/serial/IOSerialStreamSync.h>
typedef enum { None, Preempt, NonPreempt } PTTypeT;
#define IOSS_KERN_BUFMAX (4096 / 2)
struct IOSerialSessionSyncEntry;
class IOSerialSessionSync : public IOSerialStreamSync
{
OSDeclareDefaultStructors(IOSerialSessionSync)
protected:
static void initialize();
IOSerialSessionSyncEntry *fStreamSyncEntry; IOReturn fLockError;
virtual IOReturn acquireSession(PTTypeT req_type, bool sleep);
virtual void releaseSessionSync();
virtual IOReturn getType(PTTypeT want_type, bool sleep);
virtual IOReturn requestType(PTTypeT new_type, bool sleep);
public:
static IOSerialSessionSync * withStreamSync(IOSerialStreamSync *nub);
virtual bool initWithStreamSync(IOSerialStreamSync *stream);
virtual IOReturn acquireAudit(bool sleep);
virtual IOReturn acquirePort(bool sleep);
virtual IOReturn releasePort();
virtual IOReturn stopPort();
virtual IOReturn setState(UInt32 state, UInt32 mask);
virtual UInt32 getState();
virtual IOReturn watchState(UInt32 *state, UInt32 mask);
virtual UInt32 nextEvent();
virtual IOReturn executeEvent(UInt32 event, UInt32 data);
virtual IOReturn requestEvent(UInt32 event, UInt32 *data);
virtual IOReturn enqueueEvent(UInt32 event, UInt32 data, bool sleep);
virtual IOReturn dequeueEvent(UInt32 *event, UInt32 *data, bool sleep);
virtual IOReturn
enqueueData(UInt8 *buffer, UInt32 size, UInt32 *count, bool sleep);
virtual IOReturn
dequeueData(UInt8 *buffer, UInt32 size, UInt32 *count, UInt32 min);
};
#endif _IOSERIALSESSIONSYNC_H