Changeset 984a9ba in mainline for uspace/lib/c/include


Ignore:
Timestamp:
2018-07-05T09:34:09Z (7 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
63d46341
Parents:
76f566d
Message:

do not expose the call capability handler from the async framework

Keep the call capability handler encapsulated within the async framework
and do not expose it explicitly via its API. Use the pointer to
ipc_call_t as the sole object identifying an IPC call in the code that
uses the async framework.

This plugs a major leak in the abstraction and also simplifies both the
async framework (slightly) and all IPC servers.

Location:
uspace/lib/c/include
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/async.h

    r76f566d r984a9ba  
    6161/** Port connection handler
    6262 *
    63  * @param chandle  Handle of the incoming call or CAP_NIL if connection
    64  *                 initiated from inside using async_create_callback_port()
    65  * @param call     Incoming call or 0 if connection initiated from inside
    66  *                 using async_create_callback_port()
    67  * @param arg      Local argument.
    68  *
    69  */
    70 typedef void (*async_port_handler_t)(cap_call_handle_t, ipc_call_t *, void *);
     63 * @param call Incoming call or NULL if connection initiated from inside
     64 *             using async_create_callback_port()
     65 * @param arg  Local argument.
     66 *
     67 */
     68typedef void (*async_port_handler_t)(ipc_call_t *, void *);
    7169
    7270/** Notification handler */
     
    115113        async_get_call_timeout(data, 0)
    116114
    117 extern cap_call_handle_t async_get_call_timeout(ipc_call_t *, suseconds_t);
     115extern bool async_get_call_timeout(ipc_call_t *, suseconds_t);
    118116
    119117/*
     
    194192 */
    195193
    196 extern errno_t async_answer_0(cap_call_handle_t, errno_t);
    197 extern errno_t async_answer_1(cap_call_handle_t, errno_t, sysarg_t);
    198 extern errno_t async_answer_2(cap_call_handle_t, errno_t, sysarg_t, sysarg_t);
    199 extern errno_t async_answer_3(cap_call_handle_t, errno_t, sysarg_t, sysarg_t,
     194extern errno_t async_answer_0(ipc_call_t *, errno_t);
     195extern errno_t async_answer_1(ipc_call_t *, errno_t, sysarg_t);
     196extern errno_t async_answer_2(ipc_call_t *, errno_t, sysarg_t, sysarg_t);
     197extern errno_t async_answer_3(ipc_call_t *, errno_t, sysarg_t, sysarg_t,
    200198    sysarg_t);
    201 extern errno_t async_answer_4(cap_call_handle_t, errno_t, sysarg_t, sysarg_t,
     199extern errno_t async_answer_4(ipc_call_t *, errno_t, sysarg_t, sysarg_t,
    202200    sysarg_t, sysarg_t);
    203 extern errno_t async_answer_5(cap_call_handle_t, errno_t, sysarg_t, sysarg_t,
     201extern errno_t async_answer_5(ipc_call_t *, errno_t, sysarg_t, sysarg_t,
    204202    sysarg_t, sysarg_t, sysarg_t);
    205203
     
    208206 */
    209207
    210 extern errno_t async_forward_fast(cap_call_handle_t, async_exch_t *, sysarg_t,
     208extern errno_t async_forward_fast(ipc_call_t *, async_exch_t *, sysarg_t,
    211209    sysarg_t, sysarg_t, unsigned int);
    212 extern errno_t async_forward_slow(cap_call_handle_t, async_exch_t *, sysarg_t,
     210extern errno_t async_forward_slow(ipc_call_t *, async_exch_t *, sysarg_t,
    213211    sysarg_t, sysarg_t, sysarg_t, sysarg_t, sysarg_t, unsigned int);
    214212
     
    380378extern errno_t async_share_in_start(async_exch_t *, size_t, sysarg_t,
    381379    unsigned int *, void **);
    382 extern bool async_share_in_receive(cap_call_handle_t *, size_t *);
    383 extern errno_t async_share_in_finalize(cap_call_handle_t, void *, unsigned int);
     380extern bool async_share_in_receive(ipc_call_t *, size_t *);
     381extern errno_t async_share_in_finalize(ipc_call_t *, void *, unsigned int);
    384382
    385383extern errno_t async_share_out_start(async_exch_t *, void *, unsigned int);
    386 extern bool async_share_out_receive(cap_call_handle_t *, size_t *,
    387     unsigned int *);
    388 extern errno_t async_share_out_finalize(cap_call_handle_t, void **);
     384extern bool async_share_out_receive(ipc_call_t *, size_t *, unsigned int *);
     385extern errno_t async_share_out_finalize(ipc_call_t *, void **);
    389386
    390387/*
     
    420417extern aid_t async_data_read(async_exch_t *, void *, size_t, ipc_call_t *);
    421418extern errno_t async_data_read_start(async_exch_t *, void *, size_t);
    422 extern bool async_data_read_receive(cap_call_handle_t *, size_t *);
    423 extern bool async_data_read_receive_call(cap_call_handle_t *, ipc_call_t *,
    424     size_t *);
    425 extern errno_t async_data_read_finalize(cap_call_handle_t, const void *,
    426     size_t);
     419extern bool async_data_read_receive(ipc_call_t *, size_t *);
     420extern errno_t async_data_read_finalize(ipc_call_t *, const void *, size_t);
    427421
    428422extern errno_t async_data_read_forward_fast(async_exch_t *, sysarg_t, sysarg_t,
     
    461455
    462456extern errno_t async_data_write_start(async_exch_t *, const void *, size_t);
    463 extern bool async_data_write_receive(cap_call_handle_t *, size_t *);
    464 extern bool async_data_write_receive_call(cap_call_handle_t *, ipc_call_t *,
    465     size_t *);
    466 extern errno_t async_data_write_finalize(cap_call_handle_t, void *, size_t);
     457extern bool async_data_write_receive(ipc_call_t *, size_t *);
     458extern errno_t async_data_write_finalize(ipc_call_t *, void *, size_t);
    467459
    468460extern errno_t async_data_write_accept(void **, const bool, const size_t,
     
    478470extern errno_t async_state_change_start(async_exch_t *, sysarg_t, sysarg_t,
    479471    sysarg_t, async_exch_t *);
    480 extern bool async_state_change_receive(cap_call_handle_t *, sysarg_t *,
    481     sysarg_t *, sysarg_t *);
    482 extern errno_t async_state_change_finalize(cap_call_handle_t, async_exch_t *);
     472extern bool async_state_change_receive(ipc_call_t *);
     473extern errno_t async_state_change_finalize(ipc_call_t *, async_exch_t *);
    483474
    484475extern void *async_remote_state_acquire(async_sess_t *);
  • uspace/lib/c/include/bd_srv.h

    r76f566d r984a9ba  
    7070extern void bd_srvs_init(bd_srvs_t *);
    7171
    72 extern errno_t bd_conn(cap_call_handle_t, ipc_call_t *, bd_srvs_t *);
     72extern errno_t bd_conn(ipc_call_t *, bd_srvs_t *);
    7373
    7474#endif
  • uspace/lib/c/include/inet/iplink_srv.h

    r76f566d r984a9ba  
    6666extern void iplink_srv_init(iplink_srv_t *);
    6767
    68 extern errno_t iplink_conn(cap_call_handle_t, ipc_call_t *, void *);
     68extern errno_t iplink_conn(ipc_call_t *, void *);
    6969extern errno_t iplink_ev_recv(iplink_srv_t *, iplink_recv_sdu_t *, ip_ver_t);
    7070extern errno_t iplink_ev_change_addr(iplink_srv_t *, addr48_t *);
  • uspace/lib/c/include/io/chardev_srv.h

    r76f566d r984a9ba  
    6161        errno_t (*read)(chardev_srv_t *, void *, size_t, size_t *);
    6262        errno_t (*write)(chardev_srv_t *, const void *, size_t, size_t *);
    63         void (*def_handler)(chardev_srv_t *, cap_call_handle_t, ipc_call_t *);
     63        void (*def_handler)(chardev_srv_t *, ipc_call_t *);
    6464};
    6565
    6666extern void chardev_srvs_init(chardev_srvs_t *);
    6767
    68 extern errno_t chardev_conn(cap_call_handle_t, ipc_call_t *, chardev_srvs_t *);
     68extern errno_t chardev_conn(ipc_call_t *, chardev_srvs_t *);
    6969
    7070#endif
  • uspace/lib/c/include/io/con_srv.h

    r76f566d r984a9ba  
    8787extern void con_srvs_init(con_srvs_t *);
    8888
    89 extern errno_t con_conn(cap_call_handle_t, ipc_call_t *, con_srvs_t *);
     89extern errno_t con_conn(ipc_call_t *, con_srvs_t *);
    9090
    9191#endif
Note: See TracChangeset for help on using the changeset viewer.