Skip to content

Commit

Permalink
fpgad: Cleanup code, add error checking
Browse files Browse the repository at this point in the history
Add checks for return values, remove unused variables.
  • Loading branch information
luebbers committed Nov 3, 2017
1 parent cd54c47 commit 57fcb9d
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 16 deletions.
1 change: 0 additions & 1 deletion tools/fpgad/ap6.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,6 @@ void *ap6_thread(void *thread_context)
int ret;
struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000 }; /* 100ms */

fpga_guid interface_id;
fpga_token fme_token;
fpga_handle fme_handle;
fpga_properties filter;
Expand Down
1 change: 0 additions & 1 deletion tools/fpgad/errtable.c
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,6 @@ static int poll_error(struct fpga_err *e)
*/
static int poll_errors(struct fpga_err error_table[])
{
uint64_t err_val;
unsigned i;
int errors = 0;
int res;
Expand Down
18 changes: 14 additions & 4 deletions tools/fpgad/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,11 @@ FILE *fLog;
int open_log(const char *filename)
{
int res;
int err;

pthread_mutex_lock(&log_lock);
err = pthread_mutex_lock(&log_lock);
if (err)
fprintf(stderr, "pthread_mutex_lock() failed: %s", strerror(err));

fLog = fopen(filename, "a");
if (fLog) {
Expand All @@ -51,23 +54,30 @@ int open_log(const char *filename)
res = -1;
}

pthread_mutex_unlock(&log_lock);
err = pthread_mutex_unlock(&log_lock);
if (err)
fprintf(stderr, "pthread_mutex_unlock() failed: %s", strerror(err));
return res;
}

int dlog(const char *fmt, ...)
{
va_list l;
int res;
int err;

va_start(l, fmt);

pthread_mutex_lock(&log_lock);
err = pthread_mutex_lock(&log_lock);
if (err)
fprintf(stderr, "pthread_mutex_lock() failed: %s", strerror(err));

res = vfprintf(fLog, fmt, l);
fflush(fLog);

pthread_mutex_unlock(&log_lock);
err = pthread_mutex_unlock(&log_lock);
if (err)
fprintf(stderr, "pthread_mutex_unlock() failed: %s", strerror(err));

va_end(l);

Expand Down
44 changes: 34 additions & 10 deletions tools/fpgad/srv.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,16 @@ struct client_event_registry *register_event(int conn_socket, int fd,
goto out_free;
}

pthread_mutex_lock(&list_lock);
err = pthread_mutex_lock(&list_lock);
if (err)
dlog("pthread_mutex_lock() failed: %s", strerror(err));

r->next = event_registry_list;
event_registry_list = r;

pthread_mutex_unlock(&list_lock);
err = pthread_mutex_unlock(&list_lock);
if (err)
dlog("pthread_mutex_unlock() failed: %s", strerror(err));

return r;

Expand All @@ -108,8 +112,11 @@ void unregister_event(int conn_socket, fpga_event_type e, const char *device)
{
struct client_event_registry *trash;
struct client_event_registry *save;
int err;

pthread_mutex_lock(&list_lock);
err = pthread_mutex_lock(&list_lock);
if (err)
dlog("pthread_mutex_lock() failed: %s", strerror(err));

trash = event_registry_list;

Expand Down Expand Up @@ -147,7 +154,9 @@ void unregister_event(int conn_socket, fpga_event_type e, const char *device)
save->next = trash->next;
release_event_registry(trash);
out_unlock:
pthread_mutex_unlock(&list_lock);
err = pthread_mutex_unlock(&list_lock);
if (err)
dlog("pthread_mutex_unlock() failed: %s", strerror(err));
}

struct client_event_registry *
Expand All @@ -165,23 +174,31 @@ find_event_for(int conn_socket)
void unregister_all_events_for(int conn_socket)
{
struct client_event_registry *r;
int err;

pthread_mutex_lock(&list_lock);
err = pthread_mutex_lock(&list_lock);
if (err)
dlog("pthread_mutex_lock() failed: %s", strerror(err));

r = find_event_for(conn_socket);
while (r) {
unregister_event(conn_socket, r->event, r->device);
r = find_event_for(conn_socket);
}

pthread_mutex_unlock(&list_lock);
err = pthread_mutex_unlock(&list_lock);
if (err)
dlog("pthread_mutex_unlock() failed: %s", strerror(err));
}

void unregister_all_events(void)
{
struct client_event_registry *r;
int err;

pthread_mutex_lock(&list_lock);
err = pthread_mutex_lock(&list_lock);
if (err)
dlog("pthread_mutex_lock() failed: %s", strerror(err));

for (r = event_registry_list ; r != NULL ; ) {
struct client_event_registry *trash;
Expand All @@ -192,21 +209,28 @@ void unregister_all_events(void)

event_registry_list = NULL;

pthread_mutex_unlock(&list_lock);
err = pthread_mutex_unlock(&list_lock);
if (err)
dlog("pthread_mutex_unlock() failed: %s", strerror(err));
}

void for_each_registered_event(void (*cb)(struct client_event_registry *,
const struct fpga_err *),
const struct fpga_err *e) {
struct client_event_registry *r;
int err;

pthread_mutex_lock(&list_lock);
err = pthread_mutex_lock(&list_lock);
if (err)
dlog("pthread_mutex_lock() failed: %s", strerror(err));

for (r = event_registry_list; r != NULL; r = r->next) {
cb(r, e);
}

pthread_mutex_unlock(&list_lock);
err = pthread_mutex_unlock(&list_lock);
if (err)
dlog("pthread_mutex_unlock() failed: %s", strerror(err));
}

#define SRV_SOCKET 0
Expand Down

0 comments on commit 57fcb9d

Please sign in to comment.