Example #1
0
File: psl.c Project: open-cpu/pslse
// Client release from AFU
static void _free(struct psl *psl, struct client *client)
{
	struct cmd_event *mem_access;

	// DEBUG
	debug_context_remove(psl->dbg_fp, psl->dbg_id, client->context);

	info_msg("%s client disconnect from %s context %d", client->ip,
		 psl->name, client->context);
	close_socket(&(client->fd));
	if (client->ip)
		free(client->ip);
	client->ip = NULL;
	mem_access = (struct cmd_event *)client->mem_access;
	if (mem_access != NULL) {
		if (mem_access->state != MEM_DONE) {
			mem_access->resp = PSL_RESPONSE_FAILED;
			mem_access->state = MEM_DONE;
		}
	}
	client->mem_access = NULL;
	client->mmio_access = NULL;
	if (client->job)
		client->job->state = PSLSE_DONE;
	client->state = CLIENT_NONE;
}
Example #2
0
File: psl.c Project: ibm-capi/pslse
// Client release from AFU
static void _free(struct psl *psl, struct client *client)
{
	struct cmd_event *mem_access;

	// DEBUG
	debug_context_remove(psl->dbg_fp, psl->dbg_id, client->context);

	info_msg("%s client disconnect from %s context %d", client->ip,
		 psl->name, client->context);
	close_socket(&(client->fd));
	if (client->ip)
		free(client->ip);
	client->ip = NULL;
	mem_access = (struct cmd_event *)client->mem_access;
	if (mem_access != NULL) {
		if (mem_access->state != MEM_DONE) {
			mem_access->resp = PSL_RESPONSE_FAILED;
			mem_access->state = MEM_DONE;
		}
	}
	client->mem_access = NULL;
	client->mmio_access = NULL;
	client->state = CLIENT_NONE;

	psl->attached_clients--;
	info_msg( "Detatched a client: current attached clients = %d\n", psl->attached_clients );

	// where do we *really* free the client struct and it's contents???
	
}