applesmc.c (82407b6c347db5298e18a716e386d12569479e3d) applesmc.c (db895a1e6a97e919f9b86d60c969377357b05066)
1/*
2 * Apple SMC controller
3 *
4 * Copyright (c) 2007 Alexander Graf
5 *
6 * Authors: Alexander Graf <agraf@suse.de>
7 * Susanne Graf <suse@csgraf.de>
8 *

--- 187 unchanged lines hidden (view full) ---

196 applesmc_add_key(s, "REV ", 6, "\x01\x13\x0f\x00\x00\x03");
197 applesmc_add_key(s, "OSK0", 32, s->osk);
198 applesmc_add_key(s, "OSK1", 32, s->osk + 32);
199 applesmc_add_key(s, "NATJ", 1, "\0");
200 applesmc_add_key(s, "MSSP", 1, "\0");
201 applesmc_add_key(s, "MSSD", 1, "\0x3");
202}
203
1/*
2 * Apple SMC controller
3 *
4 * Copyright (c) 2007 Alexander Graf
5 *
6 * Authors: Alexander Graf <agraf@suse.de>
7 * Susanne Graf <suse@csgraf.de>
8 *

--- 187 unchanged lines hidden (view full) ---

196 applesmc_add_key(s, "REV ", 6, "\x01\x13\x0f\x00\x00\x03");
197 applesmc_add_key(s, "OSK0", 32, s->osk);
198 applesmc_add_key(s, "OSK1", 32, s->osk + 32);
199 applesmc_add_key(s, "NATJ", 1, "\0");
200 applesmc_add_key(s, "MSSP", 1, "\0");
201 applesmc_add_key(s, "MSSD", 1, "\0x3");
202}
203
204static int applesmc_isa_init(ISADevice *dev)
204static void applesmc_isa_realize(DeviceState *dev, Error **errp)
205{
206 AppleSMCState *s = APPLE_SMC(dev);
207
208 register_ioport_read(s->iobase + APPLESMC_DATA_PORT, 4, 1,
209 applesmc_io_data_readb, s);
210 register_ioport_read(s->iobase + APPLESMC_CMD_PORT, 4, 1,
211 applesmc_io_cmd_readb, s);
212 register_ioport_write(s->iobase + APPLESMC_DATA_PORT, 4, 1,
213 applesmc_io_data_writeb, s);
214 register_ioport_write(s->iobase + APPLESMC_CMD_PORT, 4, 1,
215 applesmc_io_cmd_writeb, s);
216
217 if (!s->osk || (strlen(s->osk) != 64)) {
218 fprintf(stderr, "WARNING: Using AppleSMC with invalid key\n");
219 s->osk = default_osk;
220 }
221
222 QLIST_INIT(&s->data_def);
205{
206 AppleSMCState *s = APPLE_SMC(dev);
207
208 register_ioport_read(s->iobase + APPLESMC_DATA_PORT, 4, 1,
209 applesmc_io_data_readb, s);
210 register_ioport_read(s->iobase + APPLESMC_CMD_PORT, 4, 1,
211 applesmc_io_cmd_readb, s);
212 register_ioport_write(s->iobase + APPLESMC_DATA_PORT, 4, 1,
213 applesmc_io_data_writeb, s);
214 register_ioport_write(s->iobase + APPLESMC_CMD_PORT, 4, 1,
215 applesmc_io_cmd_writeb, s);
216
217 if (!s->osk || (strlen(s->osk) != 64)) {
218 fprintf(stderr, "WARNING: Using AppleSMC with invalid key\n");
219 s->osk = default_osk;
220 }
221
222 QLIST_INIT(&s->data_def);
223 qdev_applesmc_isa_reset(&dev->qdev);
224
225 return 0;
223 qdev_applesmc_isa_reset(dev);
226}
227
228static Property applesmc_isa_properties[] = {
229 DEFINE_PROP_HEX32("iobase", AppleSMCState, iobase,
230 APPLESMC_DEFAULT_IOBASE),
231 DEFINE_PROP_STRING("osk", AppleSMCState, osk),
232 DEFINE_PROP_END_OF_LIST(),
233};
234
235static void qdev_applesmc_class_init(ObjectClass *klass, void *data)
236{
237 DeviceClass *dc = DEVICE_CLASS(klass);
224}
225
226static Property applesmc_isa_properties[] = {
227 DEFINE_PROP_HEX32("iobase", AppleSMCState, iobase,
228 APPLESMC_DEFAULT_IOBASE),
229 DEFINE_PROP_STRING("osk", AppleSMCState, osk),
230 DEFINE_PROP_END_OF_LIST(),
231};
232
233static void qdev_applesmc_class_init(ObjectClass *klass, void *data)
234{
235 DeviceClass *dc = DEVICE_CLASS(klass);
238 ISADeviceClass *ic = ISA_DEVICE_CLASS(klass);
239 ic->init = applesmc_isa_init;
236
237 dc->realize = applesmc_isa_realize;
240 dc->reset = qdev_applesmc_isa_reset;
241 dc->props = applesmc_isa_properties;
242}
243
244static const TypeInfo applesmc_isa_info = {
245 .name = TYPE_APPLE_SMC,
246 .parent = TYPE_ISA_DEVICE,
247 .instance_size = sizeof(AppleSMCState),
248 .class_init = qdev_applesmc_class_init,
249};
250
251static void applesmc_register_types(void)
252{
253 type_register_static(&applesmc_isa_info);
254}
255
256type_init(applesmc_register_types)
238 dc->reset = qdev_applesmc_isa_reset;
239 dc->props = applesmc_isa_properties;
240}
241
242static const TypeInfo applesmc_isa_info = {
243 .name = TYPE_APPLE_SMC,
244 .parent = TYPE_ISA_DEVICE,
245 .instance_size = sizeof(AppleSMCState),
246 .class_init = qdev_applesmc_class_init,
247};
248
249static void applesmc_register_types(void)
250{
251 type_register_static(&applesmc_isa_info);
252}
253
254type_init(applesmc_register_types)