Subversion Repositories HelenOS

Rev

Rev 3466 | Rev 3846 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3466 Rev 3666
Line 31... Line 31...
31
 */
31
 */
32
 
32
 
33
/** @file
33
/** @file
34
 */
34
 */
35
#include <async.h>
35
#include <async.h>
36
#include <errno.h>
-
 
37
#include <ipc/ipc.h>
36
#include <ipc/ipc.h>
38
#include <ipc/services.h>
37
#include <ipc/services.h>
39
 
38
 
40
#include <stdio.h>
39
#include "err.h"
41
 
-
 
42
#include "modules.h"
40
#include "modules.h"
43
 
41
 
44
#define MODULE_WAIT_TIME    10000
42
#define MODULE_WAIT_TIME    10000
45
 
43
 
46
int connect_to_service( services_t need ){
44
int connect_to_service( services_t need ){
Line 58... Line 56...
58
 
56
 
59
int start_service( services_t me, services_t need[], int * need_phone[], void ( * client_connection )( ipc_callid_t iid, ipc_call_t * icall ), int ( * initialize_me )( void )){
57
int start_service( services_t me, services_t need[], int * need_phone[], void ( * client_connection )( ipc_callid_t iid, ipc_call_t * icall ), int ( * initialize_me )( void )){
60
    ipcarg_t phonehash;
58
    ipcarg_t phonehash;
61
    ERROR_DECLARE;
59
    ERROR_DECLARE;
62
 
60
 
63
    if(( ! me ) || ( ! client_connection )) return EINVAL;
61
    if( ! client_connection ) return EINVAL;
64
    async_set_client_connection( client_connection );
62
    async_set_client_connection( client_connection );
65
 
63
 
66
    if( need ){
64
    if( need ){
67
        if( ! need_phone ) return EINVAL;
65
        if( ! need_phone ) return EINVAL;
68
        while( * need ){
66
        while( * need ){
Line 77... Line 75...
77
 
75
 
78
    /* Initialize service by its callback */
76
    /* Initialize service by its callback */
79
    if( initialize_me ) ERROR_PROPAGATE( initialize_me());
77
    if( initialize_me ) ERROR_PROPAGATE( initialize_me());
80
 
78
 
81
    /* Register service at NS */
79
    /* Register service at NS */
82
    ERROR_PROPAGATE( REGISTER_ME( me, & phonehash ));
80
    if( me ) ERROR_PROPAGATE( REGISTER_ME( me, & phonehash ));
83
 
81
 
84
    async_manager();
82
    async_manager();
85
 
83
 
86
    return EOK;
84
    return EOK;
87
}
85
}