Changeset 7918fce in mainline for kernel/generic/src/ipc/ipc.c


Ignore:
Timestamp:
2007-07-11T20:31:45Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
975f62f
Parents:
398d967
Message:

Implement a new mechanism for copying data between two address spaces based on
IPC. New system method IPC_M_DATA_SEND is introduced. The implementation is
generic and does not make use of any possible architecture optimizations such as
direct copy from one address space to another.

File:
1 edited

Legend:

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

    r398d967 r7918fce  
    6868        call->callerbox = &TASK->answerbox;
    6969        call->sender = TASK;
     70        call->buffer = NULL;
    7071}
    7172
     
    108109{
    109110        ASSERT(!(call->flags & IPC_CALL_STATIC_ALLOC));
     111        /* Check to see if we have data in the IPC_M_DATA_SEND buffer. */
     112        if (call->buffer)
     113                free(call->buffer);
    110114        slab_free(ipc_call_slab, call);
    111115}
     
    293297       
    294298        spinlock_lock(&phone->lock);
    295         if (phone->state == IPC_PHONE_FREE || phone->state == IPC_PHONE_HUNGUP ||
     299        if (phone->state == IPC_PHONE_FREE ||
     300            phone->state == IPC_PHONE_HUNGUP ||
    296301            phone->state == IPC_PHONE_CONNECTING) {
    297302                spinlock_unlock(&phone->lock);
Note: See TracChangeset for help on using the changeset viewer.