osmo_io: Move notify_connected function to backend

This relocation is necessary as the backend (osmo_io_fd or
osmo_io_uring) requires a different approach in handling connect
notifications. As a result, a function call has been introduced to
struct iofd_backend_ops.

In a subsequent patch, the process for the osmo_io_uring backend will
be modified to handle SCTP connect notifications using poll/select.

If connect notification is requested using poll/select, the file
descriptior must be registered to osmo_fd, using osmo_fd_register. If
read / write notification is requested by application, the file
descriptior must be registered also. A flag is used prevent calling
osmo_fd_register / osmo_fd_unregister multiple times, which would cause
a crash.

Change-Id: I905ec85210570aff8addadfc9603335d04eb057a
Related: OS#5751
diff --git a/src/core/osmo_io_internal.h b/src/core/osmo_io_internal.h
index e8f4ea2..9c86e05 100644
--- a/src/core/osmo_io_internal.h
+++ b/src/core/osmo_io_internal.h
@@ -31,12 +31,14 @@
 	void (*write_disable)(struct osmo_io_fd *iofd);
 	void (*read_enable)(struct osmo_io_fd *iofd);
 	void (*read_disable)(struct osmo_io_fd *iofd);
+	void (*notify_connected)(struct osmo_io_fd *iofd);
 };
 
 #define IOFD_FLAG_CLOSED (1<<0)
 #define IOFD_FLAG_IN_CALLBACK (1<<1)
 #define IOFD_FLAG_TO_FREE (1<<2)
 #define IOFD_FLAG_NOTIFY_CONNECTED (1<<3)
+#define IOFD_FLAG_FD_REGISTERED (1<<4)
 
 #define IOFD_FLAG_SET(iofd, flag) \
 	(iofd)->flags |= (flag)