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