Subversion Repositories HelenOS-historic

Rev

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

Rev 1428 Rev 1434
Line 149... Line 149...
149
        }
149
        }
150
    } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_RECV) {
150
    } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_RECV) {
151
        if (!IPC_GET_RETVAL(answer->data)) {
151
        if (!IPC_GET_RETVAL(answer->data)) {
152
            ipl_t ipl;
152
            ipl_t ipl;
153
            as_t *as;
153
            as_t *as;
-
 
154
            int rc;
154
           
155
           
155
            ipl = interrupts_disable();
156
            ipl = interrupts_disable();
156
            spinlock_lock(&answer->sender->lock);
157
            spinlock_lock(&answer->sender->lock);
157
            as = answer->sender->as;
158
            as = answer->sender->as;
158
            spinlock_unlock(&answer->sender->lock);
159
            spinlock_unlock(&answer->sender->lock);
159
            interrupts_restore(ipl);
160
            interrupts_restore(ipl);
160
           
161
           
161
            return as_area_share(AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG2(*olddata),
162
            rc = as_area_share(AS, IPC_GET_ARG1(answer->data), IPC_GET_ARG2(*olddata),
162
                         as, IPC_GET_ARG1(*olddata), IPC_GET_ARG3(*olddata));
163
                       as, IPC_GET_ARG1(*olddata), IPC_GET_ARG3(*olddata));
-
 
164
            IPC_SET_RETVAL(answer->data, rc);
163
        }
165
        }
164
    }
166
    }
165
    return 0;
167
    return 0;
166
}
168
}
167
 
169