-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstatic_buffer.h
29 lines (24 loc) · 887 Bytes
/
static_buffer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef StaticBuffer_H_
#define StaticBuffer_H_
#include <inttypes.h>
#include "common.h"
typedef struct StaticBufferEntry {
uint64_t block_num;
uint8_t server_num;
uint8_t volume_num;
struct StaticBufferEntry *lookup_next;
} StaticBufferEntry __attribute__((aligned (64)));
typedef struct StaticBuffer {
uint64_t size;
uint64_t entry_count;
uint64_t read_hits;
uint64_t write_hits;
StaticBufferEntry *entry;
StaticBufferEntry **lookup_table;
} StaticBuffer;
int static_buffer_init (StaticBuffer *sb, uint64_t size);
int static_buffer_lookup (StaticBuffer *sb, ReplayReq *req);
int static_buffer_insert (StaticBuffer *sb, uint64_t block_num,
uint8_t server_num, uint8_t volume_num);
void static_buffer_destroy (StaticBuffer *sb);
#endif