| | 2943 | | dm_db(hp, mp) | | | 2944 | | struct hostd *hp; | | | 2945 | | struct pmsg *mp; | | | 2946 | | { | | | 2947 | | int opcode; | | | 2948 | | int tid; | | | 2949 | | int req; | | | 2950 | | int flags; | | | 2951 | | char *name = 0; | | | 2952 | | struct pmsg *mp2 = 0; | | | 2953 | | struct pmsg *mp3 = 0; | | | 2954 | | | | | 2955 | | struct waitc *wp, *wp2; | | | 2956 | | struct pmsg *mp4 = 0; | | | 2957 | | struct hostd *hp2; | | | 2958 | | | | | 2959 | | struct pvmmclass *np, *np2; | | | 2960 | | struct pvmmentry *ep, *ep2; | | | 2961 | | int *noresets; | | | 2962 | | int nnr; | | | 2963 | | int found; | | | 2964 | | int cc; | | | 2965 | | int i; | | | 2966 | | int notified; | | | 2967 | | | | | 2968 | | hp = hp; | | | 2969 | | | | | 2970 | | if (upkint(mp, &opcode) || upkint(mp, &tid) | | | 2971 | | || upkstralloc(mp, &name) || upkint(mp, &req) || upkint(mp, &flags)) | | | 2972 | | goto badformat; | | | 2973 | | | | | 2974 | | mp2 = mesg_new(0); | | | 2975 | | mp2->m_dst = mp->m_src; | | | 2976 | | mp2->m_tag = DM_DBACK;
| | | 2977 | | mp2->m_wid = mp->m_wid; | | | 2978 | | | | | 2979 | | switch (opcode) { | | | 2980 | | | | | 2981 | | case TMDB_PUT:
| | | 2982 | | mp3 = mesg_new(0); | | | 2983 | | if (pmsg_unpack(mp, mp3)) | | | 2984 | | goto badformat; | | | 2985 | | if ((req = mb_insert(tid, name, req, flags, mp3)) < 0) | | | 2986 | | pmsg_unref(mp3); | | | 2987 | | else { | | | 2988 | | | | | 2989 | | | | | | | ... | | | 3040 | | | | | 3041 | | } | | | 3042 | | pkint(mp2, req); | | | 3043 | | break; | | | 3044 | | | | | 3045 | | case TMDB_REMOVE:
| | | 3046 | | req = mb_delete(tid, name, req, flags); | | | 3047 | | pkint(mp2, req); | | | 3048 | | break; | | | 3049 | | | | | 3050 | | case TMDB_GET:
| | | 3051 | | cc = mb_lookup(tid, name, req, flags, &mp3); | | | 3052 | | if ( cc == PvmNotFound && (flags & PvmMboxWaitForInfo) ) {
|
|