xref: /haiku/src/system/kernel/device_manager/AbstractModuleDevice.cpp (revision 2b76973fa2401f7a5edf68e6470f3d3210cbcff3)
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 
11 AbstractModuleDevice::AbstractModuleDevice()
12 	:
13 	fNode(NULL),
14 	fInitialized(0),
15 	fDeviceModule(NULL),
16 	fDeviceData(NULL)
17 {
18 }
19 
20 
21 AbstractModuleDevice::~AbstractModuleDevice()
22 {
23 }
24 
25 
26 bool
27 AbstractModuleDevice::HasSelect() const
28 {
29 	return Module()->select != NULL;
30 }
31 
32 
33 bool
34 AbstractModuleDevice::HasDeselect() const
35 {
36 	return Module()->deselect != NULL;
37 }
38 
39 
40 bool
41 AbstractModuleDevice::HasRead() const
42 {
43 	return Module()->read != NULL;
44 }
45 
46 
47 bool
48 AbstractModuleDevice::HasWrite() const
49 {
50 	return Module()->write != NULL;
51 }
52 
53 
54 bool
55 AbstractModuleDevice::HasIO() const
56 {
57 	return Module()->io != NULL;
58 }
59 
60 
61 status_t
62 AbstractModuleDevice::Open(const char* path, int openMode, void** _cookie)
63 {
64 	return Module()->open(Data(), path, openMode, _cookie);
65 }
66 
67 
68 status_t
69 AbstractModuleDevice::Read(void* cookie, off_t pos, void* buffer, size_t* _length)
70 {
71 	return Module()->read(cookie, pos, buffer, _length);
72 }
73 
74 
75 status_t
76 AbstractModuleDevice::Write(void* cookie, off_t pos, const void* buffer, size_t* _length)
77 {
78 	return Module()->write(cookie, pos, buffer, _length);
79 }
80 
81 
82 status_t
83 AbstractModuleDevice::IO(void* cookie, io_request* request)
84 {
85 	return Module()->io(cookie, request);
86 }
87 
88 
89 status_t
90 AbstractModuleDevice::Control(void* cookie, int32 op, void* buffer, size_t length)
91 {
92 	return Module()->control(cookie, op, buffer, length);
93 }
94 
95 
96 status_t
97 AbstractModuleDevice::Select(void* cookie, uint8 event, selectsync* sync)
98 {
99 	return Module()->select(cookie, event, sync);
100 }
101 
102 
103 status_t
104 AbstractModuleDevice::Deselect(void* cookie, uint8 event, selectsync* sync)
105 {
106 	return Module()->deselect(cookie, event, sync);
107 }
108 
109 
110 status_t
111 AbstractModuleDevice::Close(void* cookie)
112 {
113 	return Module()->close(cookie);
114 }
115 
116 
117 status_t
118 AbstractModuleDevice::Free(void* cookie)
119 {
120 	return Module()->free(cookie);
121 }
122