aboutsummaryrefslogtreecommitdiff
path: root/riscv/remote_bitbang.h
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2017-02-06 20:15:34 -0800
committerTim Newsome <tim@sifive.com>2017-02-06 20:15:34 -0800
commit1f65ba49ea665ceed2774a1a62ac32076e4d3025 (patch)
treef0352004b32a8176170a60ca269e8b4239bbe8cb /riscv/remote_bitbang.h
parent4695be7cea868b34082787d5728c35577d0c05d1 (diff)
downloadspike-1f65ba49ea665ceed2774a1a62ac32076e4d3025.zip
spike-1f65ba49ea665ceed2774a1a62ac32076e4d3025.tar.gz
spike-1f65ba49ea665ceed2774a1a62ac32076e4d3025.tar.bz2
Remove unnecessary circular buffer code.
Diffstat (limited to 'riscv/remote_bitbang.h')
-rw-r--r--riscv/remote_bitbang.h50
1 files changed, 2 insertions, 48 deletions
diff --git a/riscv/remote_bitbang.h b/riscv/remote_bitbang.h
index c0aa7e0..289fbb3 100644
--- a/riscv/remote_bitbang.h
+++ b/riscv/remote_bitbang.h
@@ -5,45 +5,6 @@
#include "jtag_dtm.h"
-template <typename T>
-class circular_buffer_t
-{
-public:
- // The buffer can store capacity-1 data elements.
- circular_buffer_t(unsigned int capacity) : data(new T[capacity]),
- start(0), end(0), capacity(capacity) {}
- circular_buffer_t() : start(0), end(0), capacity(0) {}
- ~circular_buffer_t() { delete[] data; }
-
- T *data;
- unsigned int start; // Data start, inclusive.
- unsigned int end; // Data end, exclusive.
- unsigned int capacity; // Size of the buffer.
- unsigned int size() const;
- bool empty() const { return start == end; }
- bool full() const { return ((end+1) % capacity) == start; }
- T entry(unsigned index) { return data[(start + index) % capacity]; }
-
- // Return size and address of the block of RAM where more data can be copied
- // to be added to the buffer.
- unsigned int contiguous_empty_size() const;
- T *contiguous_empty() { return data + end; }
- void data_added(unsigned int bytes);
-
- unsigned int contiguous_data_size() const;
- T *contiguous_data() { return data + start; }
- // Tell the buffer that some bytes were consumed from the start of the
- // buffer.
- void consume(unsigned int bytes);
-
- void reset();
-
- T operator[](unsigned int i) const { return data[(start + i) % capacity]; }
-
- void append(const T *src, unsigned int count);
- void append(T value);
-};
-
class remote_bitbang_t
{
public:
@@ -59,18 +20,11 @@ private:
int socket_fd;
int client_fd;
- circular_buffer_t<uint8_t> recv_buf;
- circular_buffer_t<uint8_t> send_buf;
// Check for a client connecting, and accept if there is one.
void accept();
- // Read as much into recv_buf as possible.
- void read();
- // Write as much of send_buf as possible.
- void write();
-
- // Process the input buffer.
- void process_input();
+ // Execute any commands the client has for us.
+ void execute_commands();
};
#endif