xref: /haiku/src/system/boot/platform/amiga_m68k/Handle.cpp (revision 1deede7388b04dbeec5af85cae7164735ea9e70d)
1 /*
2  * Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include <SupportDefs.h>
8 #include <platform/openfirmware/openfirmware.h>
9 #include <util/kernel_cpp.h>
10 
11 #include "Handle.h"
12 #include "rom_calls.h"
13 
14 /*
15  * (X)BIOS supports char and block devices with a separate namespace
16  * for char devs handle is {DEV_PRINTER, ... DEV_CONSOLE, ...}
17  * for block devs handle is either:
18  * 		 - the partition number {0=A:, 2=C:...} in logical mode.
19  * 		 - the drive number {0=A:, 1=B:, 2=ACSI-0, 10=SCSI-0, ...}
20  *			in phys mode (RW_NOTRANSLATE).
21  * BlockHandle is in devices.cpp
22  *
23  * XXX: handle network devices ? not sure how TOS net extensions do this
24  * not sure it'll ever be supported anyway.
25  * XXX: BIOSDrive/BIOSHandle : public BlockHandle ?
26  */
27 
28 Handle::Handle(int handle)
29 	:
30 	fHandle(handle)
31 {
32 }
33 
34 
35 Handle::Handle(void)
36 	:
37 	fHandle(-1)
38 {
39 }
40 
41 
42 Handle::~Handle()
43 {
44 }
45 
46 
47 void
48 Handle::SetHandle(int handle)
49 {
50 	fHandle = handle;
51 }
52 
53 
54 ssize_t
55 Handle::ReadAt(void *cookie, off_t pos, void *buffer, size_t bufferSize)
56 {
57 	return B_ERROR;
58 }
59 
60 
61 ssize_t
62 Handle::WriteAt(void *cookie, off_t pos, const void *buffer, size_t bufferSize)
63 {
64 	return B_ERROR;
65 }
66 
67 
68 off_t
69 Handle::Size() const
70 {
71 	// ToDo: fix this!
72 	return 1024LL * 1024 * 1024 * 1024;
73 		// 1024 GB
74 }
75 
76 
77 // #pragma mark -
78 
79 
80 CharHandle::CharHandle(int handle)
81 	: Handle(handle)
82 {
83 }
84 
85 
86 CharHandle::CharHandle(void)
87 	: Handle()
88 {
89 }
90 
91 
92 CharHandle::~CharHandle()
93 {
94 }
95 
96 
97 ssize_t
98 CharHandle::ReadAt(void *cookie, off_t pos, void *buffer, size_t bufferSize)
99 {
100 	char *string = (char *)buffer;
101 	int i;
102 
103 
104 	return bufferSize;
105 }
106 
107 
108 ssize_t
109 CharHandle::WriteAt(void *cookie, off_t pos, const void *buffer, size_t bufferSize)
110 {
111 	const char *string = (const char *)buffer;
112 	int i;
113 
114 	return bufferSize;
115 }
116 
117 
118