- u_char ss_len; /* sizeof(struct sockaddr_sys) */
- u_char ss_family; /* AF_SYSTEM */
- u_int16_t ss_sysaddr; /* protocol address in AF_SYSTEM */
- u_int32_t ss_reserved[7]; /* reserved to the protocol use */
+ u_char ss_len; /* sizeof(struct sockaddr_sys) */
+ u_char ss_family; /* AF_SYSTEM */
+ u_int16_t ss_sysaddr; /* protocol address in AF_SYSTEM */
+ u_int32_t ss_reserved[7]; /* reserved to the protocol use */
+};
+
+
+#ifdef KERNEL_PRIVATE
+
+/*
+ * internal structure maintained for each register controller
+ */
+struct ctl_cb;
+struct socket;
+
+struct kctl
+{
+ TAILQ_ENTRY(kctl) next; /* controller chain */
+
+ /* controller information provided when registering */
+ char name[MAX_KCTL_NAME]; /* unique nke identifier, provided by DTS */
+ u_int32_t id;
+ u_int32_t reg_unit;
+
+ /* misc communication information */
+ u_int32_t flags; /* support flags */
+ u_int32_t recvbufsize; /* request more than the default buffer size */
+ u_int32_t sendbufsize; /* request more than the default buffer size */
+
+ /* Dispatch functions */
+ ctl_connect_func connect; /* Make contact */
+ ctl_disconnect_func disconnect; /* Break contact */
+ ctl_send_func send; /* Send data to nke */
+ ctl_setopt_func setopt; /* set kctl configuration */
+ ctl_getopt_func getopt; /* get kctl configuration */
+
+ TAILQ_HEAD(, ctl_cb) kcb_head;
+ u_int32_t lastunit;