Changeset b77ce84 in mainline for kernel


Ignore:
Timestamp:
2011-04-13T17:27:52Z (14 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
34e8bab, a0a134b
Parents:
8b4ce802 (diff), 17279ead (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes

Location:
kernel
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • kernel/Makefile

    r8b4ce802 rb77ce84  
    226226        generic/src/proc/task.c \
    227227        generic/src/proc/the.c \
    228         generic/src/proc/tasklet.c \
    229228        generic/src/syscall/syscall.c \
    230229        generic/src/syscall/copy.c \
     
    382381                generic/src/main/kinit.c \
    383382                generic/src/proc/the.c \
    384                 generic/src/proc/tasklet.c \
    385383                generic/src/mm/frame.c \
    386384                generic/src/mm/page.c \
  • kernel/arch/mips32/include/atomic.h

    r8b4ce802 rb77ce84  
    9191                "       sc %0, %1\n"
    9292                "       beqz %0, 1b\n"
     93                "       nop\n"
    9394                "2:\n"
    9495                : "=&r" (tmp),
  • kernel/generic/include/ipc/ipc.h

    r8b4ce802 rb77ce84  
    115115 */
    116116#define IPC_FF_ROUTE_FROM_ME  (1 << 0)
     117
     118/* Data transfer flags. */
     119#define IPC_XF_NONE             0
     120
     121/** Restrict the transfer size if necessary. */
     122#define IPC_XF_RESTRICT         (1 << 0)
    117123
    118124/** Kernel IPC interfaces
  • kernel/generic/src/ipc/sysipc.c

    r8b4ce802 rb77ce84  
    426426        case IPC_M_DATA_READ: {
    427427                size_t size = IPC_GET_ARG2(call->data);
    428                 if ((size <= 0 || (size > DATA_XFER_LIMIT)))
     428                if (size <= 0)
    429429                        return ELIMIT;
    430                
     430                if (size > DATA_XFER_LIMIT) {
     431                        int flags = IPC_GET_ARG3(call->data);
     432                        if (flags & IPC_XF_RESTRICT)
     433                                IPC_SET_ARG2(call->data, DATA_XFER_LIMIT);
     434                        else
     435                                return ELIMIT;
     436                }
    431437                break;
    432438        }
     
    435441                size_t size = IPC_GET_ARG2(call->data);
    436442               
    437                 if (size > DATA_XFER_LIMIT)
    438                         return ELIMIT;
     443                if (size > DATA_XFER_LIMIT) {
     444                        int flags = IPC_GET_ARG3(call->data);
     445                        if (flags & IPC_XF_RESTRICT) {
     446                                size = DATA_XFER_LIMIT;
     447                                IPC_SET_ARG2(call->data, size);
     448                        } else
     449                                return ELIMIT;
     450                }
    439451               
    440452                call->buffer = (uint8_t *) malloc(size, 0);
  • kernel/generic/src/main/main.c

    r8b4ce802 rb77ce84  
    5858#include <proc/thread.h>
    5959#include <proc/task.h>
    60 #include <proc/tasklet.h>
    6160#include <main/kinit.h>
    6261#include <main/version.h>
     
    217216        tlb_init();
    218217        ddi_init();
    219         tasklet_init();
    220218        arch_post_mm_init();
    221219        arch_pre_smp_init();
Note: See TracChangeset for help on using the changeset viewer.