Changeset 8d6bc2d5 in mainline for generic/src/ipc/sysipc.c


Ignore:
Timestamp:
2006-05-24T22:02:59Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9dfc69a
Parents:
567807b1
Message:

Reimplement memory sharing. Currently, only
anonymous address space areas can be shared.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/ipc/sysipc.c

    r567807b1 r8d6bc2d5  
    130130        } else if (IPC_GET_METHOD(*olddata) == IPC_M_AS_AREA_SEND) {
    131131                if (!IPC_GET_RETVAL(answer->data)) { /* Accepted, handle as_area receipt */
    132                         return as_area_steal(answer->sender,
    133                                              IPC_GET_ARG2(*olddata),IPC_GET_ARG3(*olddata),
    134                                              IPC_GET_ARG1(answer->data));
     132                        ipl_t ipl;
     133                        as_t *as;
     134                       
     135                        ipl = interrupts_disable();
     136                        spinlock_lock(&answer->sender->lock);
     137                        as = answer->sender->as;
     138                        spinlock_unlock(&answer->sender->lock);
     139                        interrupts_restore(ipl);
     140                       
     141                        return as_area_share(as, IPC_GET_ARG2(*olddata),IPC_GET_ARG3(*olddata),
     142                                IPC_GET_ARG1(answer->data));
    135143                }
    136144        }
Note: See TracChangeset for help on using the changeset viewer.