Commit 771f64ee authored by Wesley W. Terpstra's avatar Wesley W. Terpstra

api: add a new heap type to prepare for flexible SDB table size

parent 59370989
......@@ -37,6 +37,14 @@ struct eb_sdb_scan {
eb_address_t bus_base;
};
typedef EB_POINTER(eb_sdb_record) eb_sdb_record_t;
struct eb_sdb_record {
eb_sdb_scan_t scan;
eb_operation_t ops;
int16_t status;
uint32_t pending;
};
EB_PRIVATE eb_data_t eb_sdb(eb_socket_t socket, eb_width_t width, eb_address_t addr);
#endif
......@@ -67,6 +67,7 @@ eb_socket_aux_t eb_new_socket_aux (void) { return (eb_socket_aux_t)
eb_transport_t eb_new_transport (void) { return (eb_transport_t) eb_new_memory_item(); }
eb_link_t eb_new_link (void) { return (eb_link_t) eb_new_memory_item(); }
eb_sdb_scan_t eb_new_sdb_scan (void) { return (eb_sdb_scan_t) eb_new_memory_item(); }
eb_sdb_record_t eb_new_sdb_record (void) { return (eb_sdb_record_t) eb_new_memory_item(); }
void eb_free_operation (eb_operation_t x) { eb_free_memory_item(x); }
void eb_free_cycle (eb_cycle_t x) { eb_free_memory_item(x); }
......@@ -79,5 +80,6 @@ void eb_free_socket_aux (eb_socket_aux_t x) { eb_free_memory_item(x);
void eb_free_transport (eb_transport_t x) { eb_free_memory_item(x); }
void eb_free_link (eb_link_t x) { eb_free_memory_item(x); }
void eb_free_sdb_scan (eb_sdb_scan_t x) { eb_free_memory_item(x); }
void eb_free_sdb_record (eb_sdb_record_t x) { eb_free_memory_item(x); }
#endif
......@@ -44,6 +44,7 @@ eb_socket_aux_t eb_new_socket_aux (void) { return (eb_socket_aux_t)
eb_transport_t eb_new_transport (void) { return (eb_transport_t) malloc(sizeof(struct eb_transport)); }
eb_link_t eb_new_link (void) { return (eb_link_t) malloc(sizeof(struct eb_link)); }
eb_sdb_scan_t eb_new_sdb_scan (void) { return (eb_sdb_scan_t) malloc(sizeof(struct eb_sdb_scan)); }
eb_sdb_record_t eb_new_sdb_record (void) { return (eb_sdb_record_t) malloc(sizeof(struct eb_sdb_record)); }
void eb_free_operation (eb_operation_t x) { free(x); }
void eb_free_cycle (eb_cycle_t x) { free(x); }
......@@ -56,5 +57,6 @@ void eb_free_socket_aux (eb_socket_aux_t x) { free(x); }
void eb_free_transport (eb_transport_t x) { free(x); }
void eb_free_link (eb_link_t x) { free(x); }
void eb_free_sdb_scan (eb_sdb_scan_t x) { free(x); }
void eb_free_sdb_record (eb_sdb_record_t x) { free(x); }
#endif
......@@ -47,6 +47,7 @@ union eb_memory_item {
struct eb_transport transport;
struct eb_link link;
struct eb_sdb_scan sdb_scan;
struct eb_sdb_record sdb_record;
struct eb_free_item free_item;
};
......@@ -73,6 +74,7 @@ EB_PRIVATE int eb_expand_array(void);
#define EB_TRANSPORT(x) (&eb_memory_array[x].transport)
#define EB_LINK(x) (&eb_memory_array[x].link)
#define EB_SDB_SCAN(x) (&eb_memory_array[x].sdb_scan)
#define EB_SDB_RECORD(x) (&eb_memory_array[x].sdb_record)
#endif
#endif
......@@ -41,6 +41,7 @@
#define EB_TRANSPORT(x) (x)
#define EB_LINK(x) (x)
#define EB_SDB_SCAN(x) (x)
#define EB_SDB_RECORD(x) (x)
#endif
#endif
......@@ -52,6 +52,7 @@ EB_PRIVATE eb_socket_aux_t eb_new_socket_aux(void);
EB_PRIVATE eb_transport_t eb_new_transport(void);
EB_PRIVATE eb_link_t eb_new_link(void);
EB_PRIVATE eb_sdb_scan_t eb_new_sdb_scan(void);
EB_PRIVATE eb_sdb_record_t eb_new_sdb_record(void);
EB_PRIVATE void eb_free_operation(eb_operation_t x);
EB_PRIVATE void eb_free_cycle(eb_cycle_t x);
......@@ -64,5 +65,6 @@ EB_PRIVATE void eb_free_socket_aux(eb_socket_aux_t x);
EB_PRIVATE void eb_free_transport(eb_transport_t x);
EB_PRIVATE void eb_free_link(eb_link_t x);
EB_PRIVATE void eb_free_sdb_scan(eb_sdb_scan_t x);
EB_PRIVATE void eb_free_sdb_record(eb_sdb_record_t x);
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment