mem: Add SharedMemoryServer
Add an utility class that provides a service for another process
query and get the fd of the corresponding region in gem5's physmem.
Basically, the service works in this way:
1. client connect to the unix socket created by a SharedMemoryServer
2. client send a request {start, end} to gem5
3. the server locates the corresponding shared memory
4. gem5 response {offset} and pass {fd} in ancillary data
mmap fd at offset will provide the client the view into the physical
memory of the request range.
Change-Id: I9d42fd8a41fc28dcfebb45dec10bc9ebb8e21d11
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/57729
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Boris Shingarov <shingarov@labware.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -56,6 +56,7 @@ SimObject('NVMInterface.py', sim_objects=['NVMInterface'])
|
||||
SimObject('ExternalMaster.py', sim_objects=['ExternalMaster'])
|
||||
SimObject('ExternalSlave.py', sim_objects=['ExternalSlave'])
|
||||
SimObject('CfiMemory.py', sim_objects=['CfiMemory'])
|
||||
SimObject('SharedMemoryServer.py', sim_objects=['SharedMemoryServer'])
|
||||
SimObject('SimpleMemory.py', sim_objects=['SimpleMemory'])
|
||||
SimObject('XBar.py', sim_objects=[
|
||||
'BaseXBar', 'NoncoherentXBar', 'CoherentXBar', 'SnoopFilter'])
|
||||
@@ -80,6 +81,7 @@ Source('port.cc')
|
||||
Source('packet_queue.cc')
|
||||
Source('port_proxy.cc')
|
||||
Source('physical.cc')
|
||||
Source('shared_memory_server.cc')
|
||||
Source('simple_mem.cc')
|
||||
Source('snoop_filter.cc')
|
||||
Source('stack_dist_calc.cc')
|
||||
|
||||
Reference in New Issue
Block a user