Skip to content

Commit e160c21

Browse files
committed
Changes to DriverInterface
1 parent d7dd17b commit e160c21

File tree

1 file changed

+35
-12
lines changed

1 file changed

+35
-12
lines changed

src/MacMSRDriver/DriverInterface.c

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,33 +32,56 @@ kern_return_t getTopologyInfo(io_connect_t connect, topologyEntry* data, size_t*
3232

3333
kern_return_t getNumClients(io_connect_t connect, uint32_t* num_insts)
3434
{
35-
kern_return_t kernResult;
36-
size_t num_outputs = 1;
35+
kern_return_t kernResult;
36+
uint32_t output_count = 1;
3737
uint64_t knum_insts;
3838

39-
kernResult = IOConnectCallStructMethod(connect, kGetNumInstances, NULL, 0, &knum_insts, &num_outputs);
40-
*num_insts = (uint32_t)knum_insts;
39+
kernResult = IOConnectCallScalarMethod(connect,
40+
kGetNumInstances,
41+
NULL, 0,
42+
&knum_insts, &output_count);
43+
44+
if (kernResult == kIOReturnSuccess)
45+
{
46+
*num_insts = (uint32_t) knum_insts;
47+
}
48+
4149
return kernResult;
4250
}
4351

4452
kern_return_t incrementNumClients(io_connect_t connect, uint32_t* num_insts)
4553
{
46-
kern_return_t kernResult;
47-
size_t num_outputs = 1;
54+
kern_return_t kernResult;
55+
uint32_t output_count = 1;
4856
uint64_t knum_insts;
4957

50-
kernResult = IOConnectCallStructMethod(connect, kIncrementNumInstances, NULL, 0, &knum_insts, &num_outputs);
51-
*num_insts = (uint32_t)knum_insts;
58+
kernResult = IOConnectCallScalarMethod(connect,
59+
kIncrementNumInstances,
60+
NULL, 0,
61+
&knum_insts, &output_count);
62+
63+
if (kernResult == kIOReturnSuccess)
64+
{
65+
*num_insts = (uint32_t) knum_insts;
66+
}
67+
5268
return kernResult;
5369
}
5470

5571
kern_return_t decrementNumClients(io_connect_t connect, uint32_t* num_insts)
5672
{
57-
kern_return_t kernResult;
58-
size_t num_outputs = 1;
73+
kern_return_t kernResult;
74+
uint32_t output_count = 1;
5975
uint64_t knum_insts;
6076

61-
kernResult = IOConnectCallStructMethod(connect, kDecrementNumInstances, NULL, 0, &knum_insts, &num_outputs);
62-
*num_insts = (uint32_t)knum_insts;
77+
kernResult = IOConnectCallScalarMethod(connect, kDecrementNumInstances,
78+
NULL, 0,
79+
&knum_insts, &output_count);
80+
81+
if (kernResult == kIOReturnSuccess)
82+
{
83+
*num_insts = (uint32_t) knum_insts;
84+
}
85+
6386
return kernResult;
6487
}

0 commit comments

Comments
 (0)