port.hh (8706:b1838faf3bcc) port.hh (8708:7ccbdea0fa12)
1/*
2 * Copyright (c) 2002-2005 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;

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

42
43#include <list>
44
45#include "base/misc.hh"
46#include "base/range.hh"
47#include "base/types.hh"
48#include "mem/packet.hh"
49#include "mem/request.hh"
1/*
2 * Copyright (c) 2002-2005 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;

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

42
43#include <list>
44
45#include "base/misc.hh"
46#include "base/range.hh"
47#include "base/types.hh"
48#include "mem/packet.hh"
49#include "mem/request.hh"
50#include "sim/eventq.hh"
51
52/** This typedef is used to clean up the parameter list of
53 * getDeviceAddressRanges() and getPeerAddressRanges(). It's declared
54 * outside the Port object since it's also used by some mem objects.
55 * Eventually we should move this typedef to wherever Addr is
56 * defined.
57 */
58
59typedef std::list<Range<Addr> > AddrRangeList;
60typedef std::list<Range<Addr> >::iterator AddrRangeIter;
61
50
51/** This typedef is used to clean up the parameter list of
52 * getDeviceAddressRanges() and getPeerAddressRanges(). It's declared
53 * outside the Port object since it's also used by some mem objects.
54 * Eventually we should move this typedef to wherever Addr is
55 * defined.
56 */
57
58typedef std::list<Range<Addr> > AddrRangeList;
59typedef std::list<Range<Addr> >::iterator AddrRangeIter;
60
62class EventQueue;
63class MemObject;
64
65/**
66 * Ports are used to interface memory objects to
67 * each other. They will always come in pairs, and we refer to the other
68 * port object as the peer. These are used to make the design more
69 * modular so that a specific interface between every type of objcet doesn't
70 * have to be created.
71 *
72 * Recv accesor functions are being called from the peer interface.
73 * Send accessor functions are being called from the device the port is
74 * associated with, and it will call the peer recv. accessor function.
75 */
61class MemObject;
62
63/**
64 * Ports are used to interface memory objects to
65 * each other. They will always come in pairs, and we refer to the other
66 * port object as the peer. These are used to make the design more
67 * modular so that a specific interface between every type of objcet doesn't
68 * have to be created.
69 *
70 * Recv accesor functions are being called from the peer interface.
71 * Send accessor functions are being called from the device the port is
72 * associated with, and it will call the peer recv. accessor function.
73 */
76class Port : public EventManager
74class Port
77{
78 protected:
79 /** Descriptive name (for DPRINTF output) */
80 mutable std::string portName;
81
82 /** A pointer to the peer port. Ports always come in pairs, that way they
83 can use a standardized interface to communicate between different
84 memory objects. */

--- 174 unchanged lines hidden ---
75{
76 protected:
77 /** Descriptive name (for DPRINTF output) */
78 mutable std::string portName;
79
80 /** A pointer to the peer port. Ports always come in pairs, that way they
81 can use a standardized interface to communicate between different
82 memory objects. */

--- 174 unchanged lines hidden ---