return tpmif->opaque;
}
+EXPORT_SYMBOL(tpmback_get_opaque);
int tpmback_set_opaque(domid_t domid, unsigned int handle, void *opaque)
{
tpmif->opaque = opaque;
return 0;
}
+EXPORT_SYMBOL(tpmback_set_opaque);
unsigned char* tpmback_get_uuid(domid_t domid, unsigned int handle)
{
return tpmif->uuid;
}
+EXPORT_SYMBOL(tpmback_get_uuid);
int tpmback_get_peercontext(domid_t domid, unsigned int handle, void* buffer, int buflen)
{
return evtchn_get_peercontext(tpmif->evtchn, buffer, buflen);
}
+EXPORT_SYMBOL(tpmback_get_peercontext);
static void event_listener(void)
{
eventthread = create_thread("tpmback-listener", event_thread, NULL);
}
+EXPORT_SYMBOL(init_tpmback);
void shutdown_tpmback(void)
{
wake_up(&waitq);
schedule();
}
+EXPORT_SYMBOL(shutdown_tpmback);
static void init_tpmcmd(tpmcmd_t* tpmcmd, domid_t domid, unsigned int handle, void *opaque)
{
TPMBACK_ERR("backend request ready flag was set but no interfaces were actually ready\n");
return NULL;
}
+EXPORT_SYMBOL(tpmback_req_any);
tpmcmd_t* tpmback_req(domid_t domid, unsigned int handle)
{
return get_request(tpmif);
}
+EXPORT_SYMBOL(tpmback_req);
void tpmback_resp(tpmcmd_t* tpmcmd)
{
free(tpmcmd);
return;
}
+EXPORT_SYMBOL(tpmback_resp);
int tpmback_wait_for_frontend_connect(domid_t *domid, unsigned int *handle)
{
return 0;
}
+EXPORT_SYMBOL(tpmback_wait_for_frontend_connect);
int tpmback_num_frontends(void)
{
return gtpmdev.num_tpms;
}
+EXPORT_SYMBOL(tpmback_num_frontends);