MINOR: checks/obj_type: Add a new object type for checks

An object type is now affected to the check structure.
diff --git a/include/proto/obj_type.h b/include/proto/obj_type.h
index cc35d5c..c1ac5f4 100644
--- a/include/proto/obj_type.h
+++ b/include/proto/obj_type.h
@@ -32,6 +32,7 @@
 #include <types/server.h>
 #include <types/stream.h>
 #include <types/stream_interface.h>
+#include <types/checks.h>
 
 static inline enum obj_type obj_type(const enum obj_type *t)
 {
@@ -53,6 +54,7 @@
 	case OBJ_TYPE_SRVRQ:    return "SRVRQ";
 	case OBJ_TYPE_CS:       return "CS";
 	case OBJ_TYPE_STREAM:   return "STREAM";
+	case OBJ_TYPE_CHECK:    return "CHECK";
 	default:                return "!INVAL!";
 	}
 }
@@ -172,6 +174,18 @@
 	return __objt_stream(t);
 }
 
+static inline struct check *__objt_check(enum obj_type *t)
+{
+	return container_of(t, struct check, obj_type);
+}
+
+static inline struct check *objt_check(enum obj_type *t)
+{
+	if (!t || *t != OBJ_TYPE_CHECK)
+		return NULL;
+	return __objt_check(t);
+}
+
 static inline void *obj_base_ptr(enum obj_type *t)
 {
 	switch (obj_type(t)) {
@@ -184,6 +198,7 @@
 	case OBJ_TYPE_CONN:     return __objt_conn(t);
 	case OBJ_TYPE_SRVRQ:    return __objt_dns_srvrq(t);
 	case OBJ_TYPE_CS:       return __objt_cs(t);
+	case OBJ_TYPE_CHECK:    return __objt_check(t);
 	default:                return t; // exact pointer for invalid case
 	}
 }
diff --git a/include/types/checks.h b/include/types/checks.h
index f52e4a4..d1a53ed 100644
--- a/include/types/checks.h
+++ b/include/types/checks.h
@@ -158,6 +158,7 @@
 };
 
 struct check {
+	enum obj_type obj_type;                 /* object type == OBJ_TYPE_CHECK */
 	struct session *sess;			/* Health check session. */
 	struct vars vars;			/* Health check dynamic variables. */
 	struct xprt_ops *xprt;			/* transport layer operations for health checks */
diff --git a/include/types/obj_type.h b/include/types/obj_type.h
index 9410718..da3e735 100644
--- a/include/types/obj_type.h
+++ b/include/types/obj_type.h
@@ -42,6 +42,7 @@
 	OBJ_TYPE_SRVRQ,        /* object is a struct dns_srvrq */
 	OBJ_TYPE_CS,           /* object is a struct conn_stream */
 	OBJ_TYPE_STREAM,       /* object is a struct stream */
+	OBJ_TYPE_CHECK,        /* object is a struct check */
 	OBJ_TYPE_ENTRIES       /* last one : number of entries */
 } __attribute__((packed)) ;
 
diff --git a/src/server.c b/src/server.c
index e3a7449..14eb41f 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1758,11 +1758,13 @@
 	srv->next_state = SRV_ST_RUNNING; /* early server setup */
 	srv->last_change = now.tv_sec;
 
+	srv->check.obj_type = OBJ_TYPE_CHECK;
 	srv->check.status = HCHK_STATUS_INI;
 	srv->check.server = srv;
 	srv->check.proxy = proxy;
 	srv->check.tcpcheck_rules = &proxy->tcpcheck_rules;
 
+	srv->agent.obj_type = OBJ_TYPE_CHECK;
 	srv->agent.status = HCHK_STATUS_INI;
 	srv->agent.server = srv;
 	srv->agent.proxy = proxy;