i8042.cc (9090:e4e22240398f) i8042.cc (9290:90dd57ca9a7e)
1/*
2 * Copyright (c) 2008 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

485 paramOut(os, base + ".outBuffer.size", bufferSize);
486 uint8_t *buffer = new uint8_t[bufferSize];
487 for (int i = 0; i < bufferSize; ++i) {
488 buffer[i] = outBuffer.front();
489 outBuffer.pop();
490 }
491 arrayParamOut(os, base + ".outBuffer.elts", buffer,
492 bufferSize*sizeof(uint8_t));
1/*
2 * Copyright (c) 2008 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

485 paramOut(os, base + ".outBuffer.size", bufferSize);
486 uint8_t *buffer = new uint8_t[bufferSize];
487 for (int i = 0; i < bufferSize; ++i) {
488 buffer[i] = outBuffer.front();
489 outBuffer.pop();
490 }
491 arrayParamOut(os, base + ".outBuffer.elts", buffer,
492 bufferSize*sizeof(uint8_t));
493 delete buffer;
493 delete[] buffer;
494}
495
496void
497X86ISA::PS2Keyboard::unserialize(const std::string &base, Checkpoint *cp,
498 const std::string &section)
499{
500 paramIn(cp, section, base + ".lastCommand", lastCommand);
501 int bufferSize;
502 paramIn(cp, section, base + ".outBuffer.size", bufferSize);
503 uint8_t *buffer = new uint8_t[bufferSize];
504 arrayParamIn(cp, section, base + ".outBuffer.elts", buffer,
505 bufferSize*sizeof(uint8_t));
506 for (int i = 0; i < bufferSize; ++i) {
507 outBuffer.push(buffer[i]);
508 }
494}
495
496void
497X86ISA::PS2Keyboard::unserialize(const std::string &base, Checkpoint *cp,
498 const std::string &section)
499{
500 paramIn(cp, section, base + ".lastCommand", lastCommand);
501 int bufferSize;
502 paramIn(cp, section, base + ".outBuffer.size", bufferSize);
503 uint8_t *buffer = new uint8_t[bufferSize];
504 arrayParamIn(cp, section, base + ".outBuffer.elts", buffer,
505 bufferSize*sizeof(uint8_t));
506 for (int i = 0; i < bufferSize; ++i) {
507 outBuffer.push(buffer[i]);
508 }
509 delete buffer;
509 delete[] buffer;
510}
511
512void
513X86ISA::PS2Mouse::serialize(const std::string &base, std::ostream &os)
514{
515 uint8_t statusData = status.__data;
516 paramOut(os, base + ".lastCommand", lastCommand);
517 int bufferSize = outBuffer.size();
518 paramOut(os, base + ".outBuffer.size", bufferSize);
519 uint8_t *buffer = new uint8_t[bufferSize];
520 for (int i = 0; i < bufferSize; ++i) {
521 buffer[i] = outBuffer.front();
522 outBuffer.pop();
523 }
524 arrayParamOut(os, base + ".outBuffer.elts", buffer,
525 bufferSize*sizeof(uint8_t));
510}
511
512void
513X86ISA::PS2Mouse::serialize(const std::string &base, std::ostream &os)
514{
515 uint8_t statusData = status.__data;
516 paramOut(os, base + ".lastCommand", lastCommand);
517 int bufferSize = outBuffer.size();
518 paramOut(os, base + ".outBuffer.size", bufferSize);
519 uint8_t *buffer = new uint8_t[bufferSize];
520 for (int i = 0; i < bufferSize; ++i) {
521 buffer[i] = outBuffer.front();
522 outBuffer.pop();
523 }
524 arrayParamOut(os, base + ".outBuffer.elts", buffer,
525 bufferSize*sizeof(uint8_t));
526 delete buffer;
526 delete[] buffer;
527 paramOut(os, base + ".status", statusData);
528 paramOut(os, base + ".resolution", resolution);
529 paramOut(os, base + ".sampleRate", sampleRate);
530}
531
532void
533X86ISA::PS2Mouse::unserialize(const std::string &base, Checkpoint *cp,
534 const std::string &section)
535{
536 uint8_t statusData;
537 paramIn(cp, section, base + ".lastCommand", lastCommand);
538 int bufferSize;
539 paramIn(cp, section, base + ".outBuffer.size", bufferSize);
540 uint8_t *buffer = new uint8_t[bufferSize];
541 arrayParamIn(cp, section, base + ".outBuffer.elts", buffer,
542 bufferSize*sizeof(uint8_t));
543 for (int i = 0; i < bufferSize; ++i) {
544 outBuffer.push(buffer[i]);
545 }
527 paramOut(os, base + ".status", statusData);
528 paramOut(os, base + ".resolution", resolution);
529 paramOut(os, base + ".sampleRate", sampleRate);
530}
531
532void
533X86ISA::PS2Mouse::unserialize(const std::string &base, Checkpoint *cp,
534 const std::string &section)
535{
536 uint8_t statusData;
537 paramIn(cp, section, base + ".lastCommand", lastCommand);
538 int bufferSize;
539 paramIn(cp, section, base + ".outBuffer.size", bufferSize);
540 uint8_t *buffer = new uint8_t[bufferSize];
541 arrayParamIn(cp, section, base + ".outBuffer.elts", buffer,
542 bufferSize*sizeof(uint8_t));
543 for (int i = 0; i < bufferSize; ++i) {
544 outBuffer.push(buffer[i]);
545 }
546 delete buffer;
546 delete[] buffer;
547 paramIn(cp, section, base + ".status", statusData);
548 paramIn(cp, section, base + ".resolution", resolution);
549 paramIn(cp, section, base + ".sampleRate", sampleRate);
550
551 status.__data = statusData;
552}
553
554X86ISA::I8042 *
555I8042Params::create()
556{
557 return new X86ISA::I8042(this);
558}
547 paramIn(cp, section, base + ".status", statusData);
548 paramIn(cp, section, base + ".resolution", resolution);
549 paramIn(cp, section, base + ".sampleRate", sampleRate);
550
551 status.__data = statusData;
552}
553
554X86ISA::I8042 *
555I8042Params::create()
556{
557 return new X86ISA::I8042(this);
558}