1/*
2 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include "IOScheduler.h"
8
9#include <stdlib.h>
10#include <string.h>
11
12#include "IOSchedulerRoster.h"
13
14
15IOScheduler::IOScheduler(DMAResource* resource)
16	:
17	fDMAResource(resource),
18	fName(NULL),
19	fID(IOSchedulerRoster::Default()->NextID()),
20	fIOCallback(NULL),
21	fIOCallbackData(NULL),
22	fSchedulerRegistered(false)
23{
24}
25
26
27IOScheduler::~IOScheduler()
28{
29	if (fSchedulerRegistered)
30		IOSchedulerRoster::Default()->RemoveScheduler(this);
31
32	free(fName);
33}
34
35
36status_t
37IOScheduler::Init(const char* name)
38{
39	fName = strdup(name);
40	if (fName == NULL)
41		return B_NO_MEMORY;
42
43	IOSchedulerRoster::Default()->AddScheduler(this);
44	fSchedulerRegistered = true;
45
46	return B_OK;
47}
48
49
50void
51IOScheduler::SetCallback(IOCallback& callback)
52{
53	SetCallback(&IOCallback::WrapperFunction, &callback);
54}
55
56
57void
58IOScheduler::SetCallback(io_callback callback, void* data)
59{
60	fIOCallback = callback;
61	fIOCallbackData = data;
62}
63
64
65void
66IOScheduler::SetDeviceCapacity(off_t deviceCapacity)
67{
68}
69
70
71void
72IOScheduler::MediaChanged()
73{
74}
75