1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Copyright 2008-2009, Axel Dörfler, axeld@pinc-software.de.
4 * Distributed under the terms of the MIT License.
5 */
6
7
8#include "AbstractModuleDevice.h"
9
10
11AbstractModuleDevice::AbstractModuleDevice()
12	:
13	fNode(NULL),
14	fInitialized(0),
15	fDeviceModule(NULL),
16	fDeviceData(NULL)
17{
18}
19
20
21AbstractModuleDevice::~AbstractModuleDevice()
22{
23}
24
25
26bool
27AbstractModuleDevice::HasSelect() const
28{
29	return Module()->select != NULL;
30}
31
32
33bool
34AbstractModuleDevice::HasDeselect() const
35{
36	return Module()->deselect != NULL;
37}
38
39
40bool
41AbstractModuleDevice::HasRead() const
42{
43	return Module()->read != NULL;
44}
45
46
47bool
48AbstractModuleDevice::HasWrite() const
49{
50	return Module()->write != NULL;
51}
52
53
54bool
55AbstractModuleDevice::HasIO() const
56{
57	return Module()->io != NULL;
58}
59
60
61status_t
62AbstractModuleDevice::Open(const char* path, int openMode, void** _cookie)
63{
64	return Module()->open(Data(), path, openMode, _cookie);
65}
66
67
68status_t
69AbstractModuleDevice::Read(void* cookie, off_t pos, void* buffer, size_t* _length)
70{
71	return Module()->read(cookie, pos, buffer, _length);
72}
73
74
75status_t
76AbstractModuleDevice::Write(void* cookie, off_t pos, const void* buffer, size_t* _length)
77{
78	return Module()->write(cookie, pos, buffer, _length);
79}
80
81
82status_t
83AbstractModuleDevice::IO(void* cookie, io_request* request)
84{
85	return Module()->io(cookie, request);
86}
87
88
89status_t
90AbstractModuleDevice::Control(void* cookie, int32 op, void* buffer, size_t length)
91{
92	return Module()->control(cookie, op, buffer, length);
93}
94
95
96status_t
97AbstractModuleDevice::Select(void* cookie, uint8 event, selectsync* sync)
98{
99	return Module()->select(cookie, event, sync);
100}
101
102
103status_t
104AbstractModuleDevice::Deselect(void* cookie, uint8 event, selectsync* sync)
105{
106	return Module()->deselect(cookie, event, sync);
107}
108
109
110status_t
111AbstractModuleDevice::Close(void* cookie)
112{
113	return Module()->close(cookie);
114}
115
116
117status_t
118AbstractModuleDevice::Free(void* cookie)
119{
120	return Module()->free(cookie);
121}
122