connection
struct connection *conn = vconn;
static struct connection *
struct connection *conn;
struct connection *conn = 0;
struct connection *conn;
struct connection *conn;
struct connection *conn, *next;
TAILQ_ENTRY(connection) link;
TAILQ_HEAD(connection_head, connection) connections;
memset(&hdcp->connection, 0, sizeof(hdcp->connection));
struct mod_hdcp_trace *trace = &hdcp->connection.trace;
const uint8_t retry_limit = hdcp->connection.link.adjust.retry_limit;
memset(&hdcp->connection.trace, 0, sizeof(hdcp->connection.trace));
hdcp->connection.link = *link;
callback_in_ms(hdcp->connection.link.adjust.auth_delay * 1000, output);
memset(&hdcp->connection.trace, 0, sizeof(hdcp->connection.trace));
callback_in_ms(hdcp->connection.link.adjust.auth_delay * 1000,
hdcp->connection.hdcp1_retry_count++;
if (hdcp->connection.hdcp1_retry_count == retry_limit)
hdcp->connection.link.adjust.hdcp1.disable = 1;
if (memcmp(link_adjust, &hdcp->connection.link.adjust,
if (memcmp(link_adjust, &hdcp->connection.link.adjust,
hdcp->connection.hdcp2_retry_count++;
memset(&hdcp->connection.trace, 0, sizeof(hdcp->connection.trace));
if (hdcp->connection.hdcp2_retry_count == retry_limit)
hdcp->connection.link.adjust = *link_adjust;
hdcp->connection.link.adjust.hdcp2.disable = 1;
query->link = &hdcp->connection.link;
query->trace = &hdcp->connection.trace;
!hdcp->connection.link.adjust.hdcp1.disable &&
!hdcp->connection.is_hdcp1_revoked;
!hdcp->connection.link.adjust.hdcp2.disable &&
!hdcp->connection.is_hdcp2_revoked;
struct mod_hdcp_connection connection;
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DP);
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DP &&
hdcp->connection.link.dp.mst_enabled);
return (hdcp->connection.link.mode == MOD_HDCP_MODE_DEFAULT);
hdcp->connection.hdcp1_retry_count = 0;
hdcp->connection.hdcp2_retry_count = 0;
if (hdcp->connection.is_repeater) {
if (!hdcp->connection.link.adjust.hdcp1.postpone_encryption)
struct mod_hdcp_connection *conn = &hdcp->connection;
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
!hdcp->connection.is_hdcp1_revoked) {
!hdcp->connection.is_hdcp1_revoked) {
struct mod_hdcp_connection *conn = &hdcp->connection;
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
if (hdcp->connection.is_repeater)
&& !hdcp->connection.link.adjust.hdcp2.force_sw_locality_check;
struct mod_hdcp_connection *conn = &hdcp->connection;
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
struct mod_hdcp_connection *conn = &hdcp->connection;
struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust;
if (hdcp->connection.hdcp2_retry_count >= 1)
uint32_t cp_irq_addrs = (hdcp->connection.link.dp.rev >= 0x14)
struct mod_hdcp_link *link = &hdcp->connection.link;
struct mod_hdcp_link *link = &hdcp->connection.link;
hdcp->connection.is_repeater = 1;
hdcp->connection.is_repeater = 0;
hdcp->connection.is_hdcp1_revoked = 1;
hdcp->connection.is_hdcp1_revoked = 1;
if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_0)
else if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_1)
else if (hdcp->connection.link.adjust.hdcp2.force_type == MOD_HDCP_FORCE_TYPE_MAX)
hdcp->connection.is_km_stored =
hdcp->connection.is_repeater =
hdcp->connection.is_hdcp2_revoked = 1;
if (!hdcp->connection.is_km_stored) {
else if (!hdcp->connection.is_km_stored &&
hdcp->connection.is_km_stored = msg_out->process.is_km_stored ? 1 : 0;
hdcp->connection.is_repeater = msg_out->process.is_repeater ? 1 : 0;
hdcp->connection.is_hdcp2_revoked = 1;
out_resp->connection = connector->status;
__u32 connection;
| connection {
connection : CONNECTION '{' optnl conflags_l '}'
bcopy(&res->addr, &sc.connection.TargetAddr, res->addr.ss_len);
log_sockaddr(&sc->connection.TargetAddr));
log_sockaddr(&sc->connection.LocalAddr));
bcopy($2->ai_addr, &session->connection.TargetAddr,
bcopy($2->ai_addr, &session->connection.LocalAddr,
conn_free(struct connection *c)
struct connection *c = arg;
struct connection *c = arg;
conn_fail(struct connection *c)
conn_task_ready(struct connection *c)
conn_task_issue(struct connection *c, struct task *t)
conn_task_schedule(struct connection *c)
conn_task_cleanup(struct connection *c, struct task *t)
conn_parse_kvp(struct connection *c, struct kvp *kvp)
kvp_set_from_mine(struct kvp *kvp, const char *key, struct connection *c)
int c_do_connect(struct connection *, enum c_event);
int c_do_login(struct connection *, enum c_event);
int c_do_loggedin(struct connection *, enum c_event);
conn_pdu_write(struct connection *c, struct pdu *p)
int c_do_req_logout(struct connection *, enum c_event);
int c_do_logout(struct connection *, enum c_event);
int (*action)(struct connection *, enum c_event);
int c_do_loggedout(struct connection *, enum c_event);
int c_do_fail(struct connection *, enum c_event);
int c_do_cleanup(struct connection *, enum c_event);
conn_fsm(struct connection *c, enum c_event event)
c_do_connect(struct connection *c, enum c_event ev)
c_do_login(struct connection *c, enum c_event ev)
c_do_loggedin(struct connection *c, enum c_event ev)
struct connection *c;
c_do_req_logout(struct connection *c, enum c_event ev)
c_do_logout(struct connection *c, enum c_event ev)
c_do_loggedout(struct connection *c, enum c_event ev)
c_do_fail(struct connection *c, enum c_event ev)
c_do_cleanup(struct connection *c, enum c_event ev)
initiator_login(struct connection *c)
initiator_logout(struct session *s, struct connection *c, u_int8_t reason)
initiator_nop_in_imm(struct connection *c, struct pdu *p)
conn_is_leading(struct connection *c)
initiator_login_kvp(struct connection *c, u_int8_t stage)
initiator_login_build(struct connection *c, struct task_login *tl)
struct connection *c;
initiator_login_cb(struct connection *c, void *arg, struct pdu *p)
struct connection *c;
int conn_is_leading(struct connection *);
struct kvp *initiator_login_kvp(struct connection *, u_int8_t);
struct pdu *initiator_login_build(struct connection *,
initiator_discovery_cb(struct connection *c, void *arg, struct pdu *p)
void initiator_login_cb(struct connection *, void *, struct pdu *);
initiator_logout_cb(struct connection *c, void *arg, struct pdu *p)
void initiator_discovery_cb(struct connection *, void *, struct pdu *);
void initiator_logout_cb(struct connection *, void *, struct pdu *);
struct connection_config connection;
struct connection *conn;
TAILQ_ENTRY(connection) entry;
void (*callback)(struct connection *, void *, struct pdu *);
void initiator_login(struct connection *);
void initiator_logout(struct session *, struct connection *, u_int8_t);
void initiator_nop_in_imm(struct connection *, struct pdu *);
void conn_free(struct connection *);
int conn_task_ready(struct connection *);
void conn_task_issue(struct connection *, struct task *);
void conn_task_schedule(struct connection *);
void conn_task_cleanup(struct connection *, struct task *);
int conn_parse_kvp(struct connection *, struct kvp *);
int kvp_set_from_mine(struct kvp *, const char *, struct connection *);
void conn_pdu_write(struct connection *, struct pdu *);
void conn_fail(struct connection *);
void conn_fsm(struct connection *, enum c_event);
ssize_t pdu_read(struct connection *);
ssize_t pdu_write(struct connection *);
int pdu_pending(struct connection *);
void pdu_parse(struct connection *);
void (*)(struct connection *, void *, struct pdu *),
void task_pdu_cb(struct connection *, struct pdu *);
TAILQ_HEAD(connection_head, connection);
pdu_read(struct connection *c)
pdu_write(struct connection *c)
pdu_pending(struct connection *c)
pdu_parse(struct connection *c)
struct connection *c;
struct connection *c, *rc = NULL;
struct connection *c;
log_sockaddr(&s->config.connection.TargetAddr));
conn_new(s, &s->config.connection);
struct connection *c = sev->conn;
struct connection *c = sev->conn;
struct connection *c;
struct connection *c;
struct connection *c, *nc;
struct connection *c;
struct connection *c;
void (*c)(struct connection *, void *, struct pdu *),
task_pdu_cb(struct connection *c, struct pdu *p)
struct connection *c;
vscsi_callback(struct connection *c, void *arg, struct pdu *p)
vscsi_dataout(struct connection *c, struct scsi_task *t, u_int32_t ttt,
void vscsi_callback(struct connection *, void *, struct pdu *);
void vscsi_dataout(struct connection *, struct scsi_task *, u_int32_t,