-local_session_t *application_alloc_local_session (application_t * app);
-void application_free_local_session (application_t * app,
- local_session_t * ls);
-local_session_t *application_get_local_session (application_t * app,
- u32 session_index);
-local_session_t *application_get_local_session_from_handle (session_handle_t
- handle);
-int application_local_session_connect (u32 table_index,
- application_t * client,
- application_t * server,
- local_session_t * ll, u32 opaque);
-int application_local_session_connect_notify (local_session_t * ls);
-int application_local_session_disconnect (u32 app_index,
- local_session_t * ls);
-void application_local_sessions_del (application_t * app);
-
-always_inline u32
-local_session_id (local_session_t * ll)
-{
- ASSERT (ll->app_index < (2 << 16) && ll->session_index < (2 << 16));
- return ((u32) ll->app_index << 16 | (u32) ll->session_index);
-}
-
-always_inline void
-local_session_parse_id (u32 ls_id, u32 * app_index, u32 * session_index)
-{
- *app_index = ls_id >> 16;
- *session_index = ls_id & 0xFFF;
-}
-
-always_inline void
-local_session_parse_handle (session_handle_t handle, u32 * server_index,
- u32 * session_index)
-{
- u32 bottom;
- ASSERT ((handle >> 32) == SESSION_LOCAL_HANDLE_PREFIX);
- bottom = (handle & 0xFFFFFFFF);
- local_session_parse_id (bottom, server_index, session_index);
-}
-
-always_inline session_handle_t
-application_local_session_handle (local_session_t * ls)
-{
- return ((u64) SESSION_LOCAL_HANDLE_PREFIX << 32)
- | (u64) local_session_id (ls);
-}
-
-always_inline local_session_t *
-application_get_local_listen_session (application_t * app, u32 session_index)
-{
- return pool_elt_at_index (app->local_listen_sessions, session_index);
-}
-
-always_inline local_session_t *
-application_get_local_listener_w_handle (session_handle_t handle)
-{
- u32 server_index, session_index;
- application_t *app;
- local_session_parse_handle (handle, &server_index, &session_index);
- app = application_get (server_index);
- return application_get_local_listen_session (app, session_index);
-}
-
-always_inline u8
-application_local_session_listener_has_transport (local_session_t * ls)
-{
- transport_proto_t tp;
- tp = session_type_transport_proto (ls->listener_session_type);
- return (tp != TRANSPORT_PROTO_NONE);
-}
-
-void send_local_session_disconnect_callback (u32 app_index,
- local_session_t * ls);