Changeset 06e1e95 in mainline for kernel/generic
- Timestamp:
- 2006-09-14T17:09:21Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1d1f5d3
- Parents:
- e5ecc02
- Location:
- kernel/generic
- Files:
-
- 85 edited
-
include/adt/bitmap.h (modified) (3 diffs)
-
include/adt/btree.h (modified) (3 diffs)
-
include/adt/fifo.h (modified) (3 diffs)
-
include/adt/list.h (modified) (3 diffs)
-
include/atomic.h (modified) (1 diff)
-
include/bitops.h (modified) (1 diff)
-
include/byteorder.h (modified) (1 diff)
-
include/config.h (modified) (1 diff)
-
include/console/chardev.h (modified) (3 diffs)
-
include/console/cmd.h (modified) (3 diffs)
-
include/console/console.h (modified) (3 diffs)
-
include/console/kconsole.h (modified) (3 diffs)
-
include/console/klog.h (modified) (3 diffs)
-
include/context.h (modified) (1 diff)
-
include/ddi/ddi.h (modified) (3 diffs)
-
include/ddi/ddi_arg.h (modified) (3 diffs)
-
include/debug.h (modified) (1 diff)
-
include/elf.h (modified) (1 diff)
-
include/errno.h (modified) (1 diff)
-
include/fpu_context.h (modified) (2 diffs)
-
include/func.h (modified) (1 diff)
-
include/interrupt.h (modified) (1 diff)
-
include/ipc/ipc.h (modified) (3 diffs)
-
include/ipc/ipcrsc.h (modified) (3 diffs)
-
include/ipc/irq.h (modified) (3 diffs)
-
include/ipc/sysipc.h (modified) (3 diffs)
-
include/main/kinit.h (modified) (3 diffs)
-
include/main/main.h (modified) (1 diff)
-
include/main/uinit.h (modified) (3 diffs)
-
include/main/version.h (modified) (3 diffs)
-
include/memstr.h (modified) (1 diff)
-
include/mm/as.h (modified) (1 diff)
-
include/mm/asid.h (modified) (3 diffs)
-
include/mm/buddy.h (modified) (4 diffs)
-
include/mm/page.h (modified) (3 diffs)
-
include/mm/slab.h (modified) (3 diffs)
-
include/mm/tlb.h (modified) (4 diffs)
-
include/panic.h (modified) (1 diff)
-
include/preemption.h (modified) (1 diff)
-
include/print.h (modified) (1 diff)
-
include/printf/printf_core.h (modified) (3 diffs)
-
include/proc/scheduler.h (modified) (1 diff)
-
include/proc/task.h (modified) (2 diffs)
-
include/proc/thread.h (modified) (1 diff)
-
include/proc/uarg.h (modified) (1 diff)
-
include/putchar.h (modified) (1 diff)
-
include/security/cap.h (modified) (2 diffs)
-
include/smp/ipi.h (modified) (3 diffs)
-
include/smp/smp.h (modified) (3 diffs)
-
include/sort.h (modified) (1 diff)
-
include/stackarg.h (modified) (2 diffs)
-
include/stdarg.h (modified) (2 diffs)
-
include/symtab.h (modified) (1 diff)
-
include/synch/condvar.h (modified) (3 diffs)
-
include/synch/futex.h (modified) (2 diffs)
-
include/synch/mutex.h (modified) (3 diffs)
-
include/synch/rwlock.h (modified) (3 diffs)
-
include/synch/semaphore.h (modified) (3 diffs)
-
include/synch/spinlock.h (modified) (3 diffs)
-
include/synch/synch.h (modified) (3 diffs)
-
include/synch/waitq.h (modified) (3 diffs)
-
include/syscall/copy.h (modified) (1 diff)
-
include/syscall/sysarg64.h (modified) (1 diff)
-
include/sysinfo/sysinfo.h (modified) (3 diffs)
-
include/test.h (modified) (1 diff)
-
include/userspace.h (modified) (1 diff)
-
src/console/chardev.c (modified) (2 diffs)
-
src/console/cmd.c (modified) (2 diffs)
-
src/console/console.c (modified) (2 diffs)
-
src/console/kconsole.c (modified) (2 diffs)
-
src/console/klog.c (modified) (2 diffs)
-
src/ddi/ddi.c (modified) (2 diffs)
-
src/debug/symtab.c (modified) (2 diffs)
-
src/ipc/ipcrsc.c (modified) (1 diff)
-
src/printf/printf.c (modified) (2 diffs)
-
src/printf/printf_core.c (modified) (6 diffs)
-
src/printf/snprintf.c (modified) (2 diffs)
-
src/printf/sprintf.c (modified) (2 diffs)
-
src/printf/vprintf.c (modified) (2 diffs)
-
src/printf/vsnprintf.c (modified) (2 diffs)
-
src/printf/vsprintf.c (modified) (2 diffs)
-
src/proc/scheduler.c (modified) (3 diffs)
-
src/security/cap.c (modified) (2 diffs)
-
src/synch/rwlock.c (modified) (1 diff)
-
src/syscall/copy.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/include/adt/bitmap.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericadt29 /** @addtogroup genericadt 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __BITMAP_H__36 #define __BITMAP_H__35 #ifndef KERN_BITMAP_H_ 36 #define KERN_BITMAP_H_ 37 37 38 38 #include <arch/types.h> … … 53 53 #endif 54 54 55 /** @}55 /** @} 56 56 */ 57 -
kernel/generic/include/adt/btree.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericadt29 /** @addtogroup genericadt 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __BTREE_H__36 #define __BTREE_H__35 #ifndef KERN_BTREE_H_ 36 #define KERN_BTREE_H_ 37 37 38 38 #include <arch/types.h> … … 100 100 #endif 101 101 102 /** @}102 /** @} 103 103 */ 104 -
kernel/generic/include/adt/fifo.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericadt29 /** @addtogroup genericadt 30 30 * @{ 31 31 */ … … 43 43 */ 44 44 45 #ifndef __FIFO_H__46 #define __FIFO_H__45 #ifndef KERN_FIFO_H_ 46 #define KERN_FIFO_H_ 47 47 48 48 #include <typedefs.h> … … 119 119 #endif 120 120 121 /** @}121 /** @} 122 122 */ 123 -
kernel/generic/include/adt/list.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericadt29 /** @addtogroup genericadt 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __LIST_H__36 #define __LIST_H__35 #ifndef KERN_LIST_H_ 36 #define KERN_LIST_H_ 37 37 38 38 #include <arch/types.h> … … 183 183 #endif 184 184 185 /** @}185 /** @} 186 186 */ 187 -
kernel/generic/include/atomic.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __ATOMIC_H__36 #define __ATOMIC_H__35 #ifndef KERN_ATOMIC_H_ 36 #define KERN_ATOMIC_H_ 37 37 38 38 typedef struct atomic { -
kernel/generic/include/bitops.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef _BITOPS_H_36 #define _BITOPS_H_35 #ifndef KERN_BITOPS_H_ 36 #define KERN_BITOPS_H_ 37 37 38 38 #include <typedefs.h> -
kernel/generic/include/byteorder.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __BYTEORDER_H__36 #define __BYTEORDER_H__35 #ifndef KERN_BYTEORDER_H_ 36 #define KERN_BYTEORDER_H_ 37 37 38 38 static inline uint64_t uint64_t_byteorder_swap(uint64_t n) -
kernel/generic/include/config.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __CONFIG_H__36 #define __CONFIG_H__35 #ifndef KERN_CONFIG_H_ 36 #define KERN_CONFIG_H_ 37 37 38 38 #include <arch/types.h> -
kernel/generic/include/console/chardev.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __CHARDEV_H__36 #define __CHARDEV_H__35 #ifndef KERN_CHARDEV_H_ 36 #define KERN_CHARDEV_H_ 37 37 38 38 #include <typedefs.h> … … 72 72 extern void chardev_push_character(chardev_t *chardev, uint8_t ch); 73 73 74 #endif /* __CHARDEV_H__ */74 #endif /* KERN_CHARDEV_H_ */ 75 75 76 /** @}76 /** @} 77 77 */ 78 -
kernel/generic/include/console/cmd.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __CMD_H__36 #define __CMD_H__35 #ifndef KERN_CMD_H_ 36 #define KERN_CMD_H_ 37 37 38 38 #include <typedefs.h> … … 43 43 #endif 44 44 45 /** @}45 /** @} 46 46 */ 47 -
kernel/generic/include/console/console.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __CONSOLE_H__36 #define __CONSOLE_H__35 #ifndef KERN_CONSOLE_H_ 36 #define KERN_CONSOLE_H_ 37 37 38 38 #include <arch/types.h> … … 50 50 extern void arch_release_console(void); 51 51 52 #endif /* __CHARDEV_H__ */52 #endif /* KERN_CONSOLE_H_ */ 53 53 54 /** @}54 /** @} 55 55 */ 56 -
kernel/generic/include/console/kconsole.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __KCONSOLE_H__36 #define __KCONSOLE_H__35 #ifndef KERN_KCONSOLE_H_ 36 #define KERN_KCONSOLE_H_ 37 37 38 38 #include <typedefs.h> … … 81 81 #endif 82 82 83 /** @}83 /** @} 84 84 */ 85 -
kernel/generic/include/console/klog.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericklog29 /** @addtogroup genericklog 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef _KLOG_H_36 #define _KLOG_H_35 #ifndef KERN_KLOG_H_ 36 #define KERN_KLOG_H_ 37 37 38 38 void klog_init(void); … … 41 41 #endif 42 42 43 /** @}43 /** @} 44 44 */ 45 -
kernel/generic/include/context.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __CONTEXT_H__36 #define __CONTEXT_H__35 #ifndef KERN_CONTEXT_H_ 36 #define KERN_CONTEXT_H_ 37 37 38 38 #include <arch/types.h> -
kernel/generic/include/ddi/ddi.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericddi29 /** @addtogroup genericddi 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __DDI_H__36 #define __DDI_H__35 #ifndef KERN_DDI_H_ 36 #define KERN_DDI_H_ 37 37 38 38 #include <ddi/ddi_arg.h> … … 52 52 #endif 53 53 54 /** @}54 /** @} 55 55 */ 56 -
kernel/generic/include/ddi/ddi_arg.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericddi29 /** @addtogroup genericddi 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __DDI_ARG_H__36 #define __DDI_ARG_H__35 #ifndef KERN_DDI_ARG_H_ 36 #define KERN_DDI_ARG_H_ 37 37 38 38 /** Structure encapsulating arguments for SYS_MAP_PHYSMEM syscall. */ … … 54 54 #endif 55 55 56 /** @}56 /** @} 57 57 */ 58 -
kernel/generic/include/debug.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __DEBUG_H__36 #define __DEBUG_H__35 #ifndef KERN_DEBUG_H_ 36 #define KERN_DEBUG_H_ 37 37 38 38 #include <panic.h> -
kernel/generic/include/elf.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __ELF_H__36 #define __ELF_H__35 #ifndef KERN_ELF_H_ 36 #define KERN_ELF_H_ 37 37 38 38 #include <arch/elf.h> -
kernel/generic/include/errno.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __ERRNO_H__36 #define __ERRNO_H__35 #ifndef KERN_ERRNO_H_ 36 #define KERN_ERRNO_H_ 37 37 38 38 /* 1-255 are kernel error codes, 256-512 are user error codes */ -
kernel/generic/include/fpu_context.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __FPU_CONTEXT_H__36 #define __FPU_CONTEXT_H__35 #ifndef KERN_FPU_CONTEXT_H_ 36 #define KERN_FPU_CONTEXT_H_ 37 37 38 38 #include <arch/fpu_context.h> … … 49 49 extern void fpu_disable(void); 50 50 51 52 #endif /* __FPU_CONTEXT_H__ */ 53 51 #endif /* KERN_FPU_CONTEXT_H_ */ 54 52 55 53 /** @} -
kernel/generic/include/func.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __FUNC_H__36 #define __FUNC_H__35 #ifndef KERN_FUNC_H_ 36 #define KERN_FUNC_H_ 37 37 38 38 #include <arch/types.h> -
kernel/generic/include/interrupt.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __INTERRUPT_H__36 #define __INTERRUPT_H__35 #ifndef KERN_INTERRUPT_H_ 36 #define KERN_INTERRUPT_H_ 37 37 38 38 #include <arch/interrupt.h> -
kernel/generic/include/ipc/ipc.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericipc29 /** @addtogroup genericipc 30 30 * @{ 31 31 */ … … 167 167 unative_t args[IPC_CALL_LEN]; 168 168 phone_t *phone; 169 } ipc_data_t;169 } ipc_data_t; 170 170 171 171 struct answerbox_s { … … 218 218 219 219 ipc_data_t data; /**< Data passed from/to userspace */ 220 } call_t;220 } call_t; 221 221 222 222 extern void ipc_init(void); -
kernel/generic/include/ipc/ipcrsc.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericipc29 /** @addtogroup genericipc 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __IPCRSC_H__36 #define __IPCRSC_H__35 #ifndef KERN_IPCRSC_H_ 36 #define KERN_IPCRSC_H_ 37 37 38 38 call_t * get_call(unative_t callid); … … 43 43 #endif 44 44 45 /** @}45 /** @} 46 46 */ 47 -
kernel/generic/include/ipc/irq.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericipc29 /** @addtogroup genericipc 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __IRQ_H__36 #define __IRQ_H__35 #ifndef KERN_IRQ_H_ 36 #define KERN_IRQ_H_ 37 37 38 38 /** Maximum length of IPC IRQ program */ … … 89 89 #endif 90 90 91 /** @}91 /** @} 92 92 */ 93 -
kernel/generic/include/ipc/sysipc.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericipc29 /** @addtogroup genericipc 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __SYSIPC_H__36 #define __SYSIPC_H__35 #ifndef KERN_SYSIPC_H_ 36 #define KERN_SYSIPC_H_ 37 37 38 38 #include <ipc/ipc.h> … … 59 59 #endif 60 60 61 /** @}61 /** @} 62 62 */ 63 -
kernel/generic/include/main/kinit.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup main29 /** @addtogroup main 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __KINIT_H__36 #define __KINIT_H__35 #ifndef KERN_KINIT_H_ 36 #define KERN_KINIT_H_ 37 37 38 38 extern void kinit(void *arg); … … 40 40 #endif 41 41 42 /** @}42 /** @} 43 43 */ 44 -
kernel/generic/include/main/main.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __MAIN_H__36 #define __MAIN_H__35 #ifndef KERN_MAIN_H_ 36 #define KERN_MAIN_H_ 37 37 38 38 #include <typedefs.h> -
kernel/generic/include/main/uinit.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup main29 /** @addtogroup main 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __UINIT_H__36 #define __UINIT_H__35 #ifndef KERN_UINIT_H_ 36 #define KERN_UINIT_H_ 37 37 38 38 #include <arch/types.h> … … 42 42 #endif 43 43 44 /** @}44 /** @} 45 45 */ 46 -
kernel/generic/include/main/version.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup main29 /** @addtogroup main 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __VERSION_H__36 #define __VERSION_H__35 #ifndef KERN_VERSION_H_ 36 #define KERN_VERSION_H_ 37 37 38 38 extern void version_print(void); … … 40 40 #endif 41 41 42 /** @}42 /** @} 43 43 */ 44 44 -
kernel/generic/include/memstr.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __MEMSTR_H__36 #define __MEMSTR_H__35 #ifndef KERN_MEMSTR_H_ 36 #define KERN_MEMSTR_H_ 37 37 38 38 #include <typedefs.h> -
kernel/generic/include/mm/as.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __AS_H__36 #define __AS_H__35 #ifndef KERN_AS_H_ 36 #define KERN_AS_H_ 37 37 38 38 /** Address space area flags. */ -
kernel/generic/include/mm/asid.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericmm29 /** @addtogroup genericmm 30 30 * @{ 31 31 */ … … 38 38 */ 39 39 40 #ifndef __ASID_H__41 #define __ASID_H__40 #ifndef KERN_ASID_H_ 41 #define KERN_ASID_H_ 42 42 43 43 #ifndef __ASM__ … … 84 84 #endif 85 85 86 87 /** @} 86 /** @} 88 87 */ 89 -
kernel/generic/include/mm/buddy.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericmm29 /** @addtogroup genericmm 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __BUDDY_H__36 #define __BUDDY_H__35 #ifndef KERN_BUDDY_H_ 36 #define KERN_BUDDY_H_ 37 37 38 38 #include <arch/types.h> … … 56 56 57 57 struct buddy_system { 58 uint8_t max_order; /**< Maximal order of block which can be stored by buddy system. */58 uint8_t max_order; /**< Maximal order of block which can be stored by buddy system. */ 59 59 link_t *order; 60 60 buddy_system_operations_t *op; 61 void *data; /**< Pointer to be used by the implementation. */61 void *data; /**< Pointer to be used by the implementation. */ 62 62 }; 63 63 … … 74 74 #endif 75 75 76 /** @}76 /** @} 77 77 */ 78 -
kernel/generic/include/mm/page.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericmm29 /** @addtogroup genericmm 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __PAGE_H__36 #define __PAGE_H__35 #ifndef KERN_PAGE_H_ 36 #define KERN_PAGE_H_ 37 37 38 38 #include <arch/mm/asid.h> … … 98 98 #endif 99 99 100 /** @}100 /** @} 101 101 */ 102 -
kernel/generic/include/mm/slab.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericmm29 /** @addtogroup genericmm 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __SLAB_H__36 #define __SLAB_H__35 #ifndef KERN_SLAB_H_ 36 #define KERN_SLAB_H_ 37 37 38 38 #include <adt/list.h> … … 136 136 #endif 137 137 138 /** @}138 /** @} 139 139 */ 140 -
kernel/generic/include/mm/tlb.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericmm29 /** @addtogroup genericmm 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __TLB_H__36 #define __TLB_H__35 #ifndef KERN_TLB_H_ 36 #define KERN_TLB_H_ 37 37 38 38 #include <arch/mm/asid.h> … … 76 76 #endif /* CONFIG_SMP */ 77 77 78 79 78 /* Export TLB interface that each architecture must implement. */ 80 79 extern void tlb_arch_init(void); … … 87 86 #endif 88 87 89 /** @}88 /** @} 90 89 */ 91 -
kernel/generic/include/panic.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __PANIC_H__36 #define __PANIC_H__35 #ifndef KERN_PANIC_H_ 36 #define KERN_PANIC_H_ 37 37 38 38 #ifdef CONFIG_DEBUG -
kernel/generic/include/preemption.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __PREEMPTION_H__36 #define __PREEMPTION_H__35 #ifndef KERN_PREEMPTION_H_ 36 #define KERN_PREEMPTION_H_ 37 37 38 38 extern void preemption_disable(void); -
kernel/generic/include/print.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __PRINT_H__36 #define __PRINT_H__35 #ifndef KERN_PRINT_H_ 36 #define KERN_PRINT_H_ 37 37 38 38 #include <arch/types.h> -
kernel/generic/include/printf/printf_core.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __PRINTF_CORE_H__36 #define __PRINTF_CORE_H__35 #ifndef KERN_PRINTF_CORE_H_ 36 #define KERN_PRINTF_CORE_H_ 37 37 38 38 #include <typedefs.h> … … 52 52 #endif 53 53 54 /** @}54 /** @} 55 55 */ 56 -
kernel/generic/include/proc/scheduler.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __SCHEDULER_H__36 #define __SCHEDULER_H__35 #ifndef KERN_SCHEDULER_H_ 36 #define KERN_SCHEDULER_H_ 37 37 38 38 #include <synch/spinlock.h> -
kernel/generic/include/proc/task.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __TASK_H__36 #define __TASK_H__35 #ifndef KERN_TASK_H_ 36 #define KERN_TASK_H_ 37 37 38 38 #include <typedefs.h> … … 108 108 #endif 109 109 110 /** @}110 /** @} 111 111 */ 112 -
kernel/generic/include/proc/thread.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __THREAD_H__36 #define __THREAD_H__35 #ifndef KERN_THREAD_H_ 36 #define KERN_THREAD_H_ 37 37 38 38 #include <arch/proc/thread.h> -
kernel/generic/include/proc/uarg.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __UARG_H__36 #define __UARG_H__35 #ifndef KERN_UARG_H_ 36 #define KERN_UARG_H_ 37 37 38 38 /** Structure passed to uinit kernel thread as argument. */ -
kernel/generic/include/putchar.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __PUTCHAR_H__36 #define __PUTCHAR_H__35 #ifndef KERN_PUTCHAR_H_ 36 #define KERN_PUTCHAR_H_ 37 37 38 38 extern void putchar(const char ch); -
kernel/generic/include/security/cap.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 90 90 #endif 91 91 92 /** @}92 /** @} 93 93 */ 94 -
kernel/generic/include/smp/ipi.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __IPI_H__36 #define __IPI_H__35 #ifndef KERN_IPI_H_ 36 #define KERN_IPI_H_ 37 37 38 38 #ifdef CONFIG_SMP … … 45 45 #endif 46 46 47 /** @}47 /** @} 48 48 */ 49 -
kernel/generic/include/smp/smp.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __SMP_H__36 #define __SMP_H__35 #ifndef KERN_SMP_H_ 36 #define KERN_SMP_H_ 37 37 38 38 #ifdef CONFIG_SMP … … 44 44 #endif /* __SMP_H__ */ 45 45 46 /** @}46 /** @} 47 47 */ 48 -
kernel/generic/include/sort.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __SORT_H__36 #define __SORT_H__35 #ifndef KERN_SORT_H_ 36 #define KERN_SORT_H_ 37 37 38 38 #include <arch/types.h> -
kernel/generic/include/stackarg.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 36 35 /* 37 36 * Variable argument list manipulation macros … … 39 38 */ 40 39 41 #ifndef __STACKARG_H__42 #define __STACKARG_H__40 #ifndef KERN_STACKARG_H_ 41 #define KERN_STACKARG_H_ 43 42 44 43 #include <arch/types.h> -
kernel/generic/include/stdarg.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 36 35 /* 37 36 * Variable argument list manipulation macros … … 39 38 */ 40 39 41 #ifndef __STDARG_H__42 #define __STDARG_H__40 #ifndef KERN_STDARG_H_ 41 #define KERN_STDARG_H_ 43 42 44 43 typedef __builtin_va_list va_list; -
kernel/generic/include/symtab.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __SYMTAB_H__36 #define __SYMTAB_H__35 #ifndef KERN_SYMTAB_H_ 36 #define KERN_SYMTAB_H_ 37 37 38 38 #include <arch/types.h> -
kernel/generic/include/synch/condvar.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __CONDVAR_H__36 #define __CONDVAR_H__35 #ifndef KERN_CONDVAR_H_ 36 #define KERN_CONDVAR_H_ 37 37 38 38 #include <arch/types.h> … … 57 57 #endif 58 58 59 /** @}59 /** @} 60 60 */ 61 -
kernel/generic/include/synch/futex.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __FUTEX_H__36 #define __FUTEX_H__35 #ifndef KERN_FUTEX_H_ 36 #define KERN_FUTEX_H_ 37 37 38 38 #include <arch/types.h> … … 60 60 /** @} 61 61 */ 62 -
kernel/generic/include/synch/mutex.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __MUTEX_H__36 #define __MUTEX_H__35 #ifndef KERN_MUTEX_H_ 36 #define KERN_MUTEX_H_ 37 37 38 38 #include <arch/types.h> … … 60 60 #endif 61 61 62 /** @}62 /** @} 63 63 */ 64 -
kernel/generic/include/synch/rwlock.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __RWLOCK_H__36 #define __RWLOCK_H__35 #ifndef KERN_RWLOCK_H_ 36 #define KERN_RWLOCK_H_ 37 37 38 38 #include <arch/types.h> … … 75 75 #endif 76 76 77 78 /** @} 77 /** @} 79 78 */ 80 -
kernel/generic/include/synch/semaphore.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __SEMAPHORE_H__36 #define __SEMAPHORE_H__35 #ifndef KERN_SEMAPHORE_H_ 36 #define KERN_SEMAPHORE_H_ 37 37 38 38 #include <arch/types.h> … … 59 59 #endif 60 60 61 62 /** @} 61 /** @} 63 62 */ 64 -
kernel/generic/include/synch/spinlock.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __SPINLOCK_H__36 #define __SPINLOCK_H__35 #ifndef KERN_SPINLOCK_H_ 36 #define KERN_SPINLOCK_H_ 37 37 38 38 #include <arch/types.h> … … 117 117 #endif 118 118 119 /** @}119 /** @} 120 120 */ 121 -
kernel/generic/include/synch/synch.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __SYNCH_H__36 #define __SYNCH_H__35 #ifndef KERN_SYNCH_H_ 36 #define KERN_SYNCH_H_ 37 37 38 38 #define SYNCH_NO_TIMEOUT 0 /**< Request with no timeout. */ … … 53 53 #endif 54 54 55 /** @}55 /** @} 56 56 */ 57 -
kernel/generic/include/synch/waitq.h
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup sync29 /** @addtogroup sync 30 30 * @{ 31 31 */ … … 33 33 */ 34 34 35 #ifndef __WAITQ_H__36 #define __WAITQ_H__35 #ifndef KERN_WAITQ_H_ 36 #define KERN_WAITQ_H_ 37 37 38 38 #include <arch/types.h> … … 72 72 #endif 73 73 74 /** @}74 /** @} 75 75 */ 76 -
kernel/generic/include/syscall/copy.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __COPY_H__36 #define __COPY_H__35 #ifndef KERN_COPY_H_ 36 #define KERN_COPY_H_ 37 37 38 38 #include <typedefs.h> -
kernel/generic/include/syscall/sysarg64.h
re5ecc02 r06e1e95 36 36 */ 37 37 38 #ifndef __SYSARG64_H__39 #define __SYSARG64_H__38 #ifndef KERN_SYSARG64_H_ 39 #define KERN_SYSARG64_H_ 40 40 41 41 typedef struct { -
kernel/generic/include/sysinfo/sysinfo.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef KERN_SYSINFO_H_ 36 #define KERN_SYSINFO_H_ 37 35 38 #include <arch/types.h> 36 39 … … 65 68 #define SYSINFO_SUBINFO_FUNCTION 2 66 69 67 68 70 typedef unative_t (*sysinfo_val_fn_t)(sysinfo_item_t *root); 69 71 typedef unative_t (*sysinfo_subinfo_fn_t)(const char *subname); … … 84 86 unative_t sys_sysinfo_value(unative_t ptr,unative_t len); 85 87 88 #endif 89 86 90 /** @} 87 91 */ -
kernel/generic/include/test.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __TEST_H__36 #define __TEST_H__35 #ifndef KERN_TEST_H_ 36 #define KERN_TEST_H_ 37 37 38 38 extern void test(void); -
kernel/generic/include/userspace.h
re5ecc02 r06e1e95 33 33 */ 34 34 35 #ifndef __USERSPACE_H__36 #define __USERSPACE_H__35 #ifndef KERN_USERSPACE_H_ 36 #define KERN_USERSPACE_H_ 37 37 38 38 #include <proc/thread.h> -
kernel/generic/src/console/chardev.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 75 75 } 76 76 77 /** @}77 /** @} 78 78 */ 79 -
kernel/generic/src/console/cmd.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 807 807 } 808 808 809 /** @} 810 */ 811 809 /** @} 810 */ -
kernel/generic/src/console/console.c
re5ecc02 r06e1e95 28 28 */ 29 29 30 /** @addtogroup genericconsole30 /** @addtogroup genericconsole 31 31 * @{ 32 32 */ … … 166 166 } 167 167 168 /** @}168 /** @} 169 169 */ 170 -
kernel/generic/src/console/kconsole.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericconsole29 /** @addtogroup genericconsole 30 30 * @{ 31 31 */ … … 627 627 } 628 628 629 /** @} 630 */ 631 629 /** @} 630 */ -
kernel/generic/src/console/klog.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericklog29 /** @addtogroup genericklog 30 30 * @{ 31 31 */ … … 106 106 } 107 107 108 /** @}108 /** @} 109 109 */ 110 -
kernel/generic/src/ddi/ddi.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericddi29 /** @addtogroup genericddi 30 30 * @{ 31 31 */ … … 206 206 } 207 207 208 /** @} 209 */ 210 208 /** @} 209 */ -
kernel/generic/src/debug/symtab.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup genericdebug29 /** @addtogroup genericdebug 30 30 * @{ 31 31 */ … … 198 198 } 199 199 200 /** @} 201 */ 202 200 /** @} 201 */ -
kernel/generic/src/ipc/ipcrsc.c
re5ecc02 r06e1e95 97 97 * to the calling task. All new calls through this phone 98 98 * get a EHUNGUP error code, the task is expected to 99 * send an sys_ipc_hangup after cleaning up it 's internal structures.99 * send an sys_ipc_hangup after cleaning up its internal structures. 100 100 * 101 101 * Call forwarding -
kernel/generic/src/printf/printf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 49 49 } 50 50 51 52 /** @} 51 /** @} 53 52 */ 54 -
kernel/generic/src/printf/printf_core.c
re5ecc02 r06e1e95 28 28 */ 29 29 30 /** @addtogroup generic30 /** @addtogroup generic 31 31 * @{ 32 32 */ … … 497 497 ++i; 498 498 switch (c = fmt[i]) { 499 case '#': flags |= __PRINTF_FLAG_PREFIX; break;500 case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break;501 case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break;502 case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break;503 case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break;504 default: end = 1;499 case '#': flags |= __PRINTF_FLAG_PREFIX; break; 500 case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break; 501 case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break; 502 case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break; 503 case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break; 504 default: end = 1; 505 505 }; 506 506 … … 546 546 547 547 switch (fmt[i++]) { 548 /** TODO: unimplemented qualifiers:549 * t ptrdiff_t - ISO C 99550 */551 case 'h': /* char or short */552 qualifier = PrintfQualifierShort;553 if (fmt[i] == 'h') {554 i++;555 qualifier = PrintfQualifierByte;556 }557 break;558 case 'l': /* long or long long*/559 qualifier = PrintfQualifierLong;560 if (fmt[i] == 'l') {561 i++;562 qualifier = PrintfQualifierLongLong;563 }564 break;565 case 'z': /* unative_t */566 qualifier = PrintfQualifierNative;567 break;568 default:569 qualifier = PrintfQualifierInt; /* default type */570 --i;548 /** TODO: unimplemented qualifiers: 549 * t ptrdiff_t - ISO C 99 550 */ 551 case 'h': /* char or short */ 552 qualifier = PrintfQualifierShort; 553 if (fmt[i] == 'h') { 554 i++; 555 qualifier = PrintfQualifierByte; 556 } 557 break; 558 case 'l': /* long or long long*/ 559 qualifier = PrintfQualifierLong; 560 if (fmt[i] == 'l') { 561 i++; 562 qualifier = PrintfQualifierLongLong; 563 } 564 break; 565 case 'z': /* unative_t */ 566 qualifier = PrintfQualifierNative; 567 break; 568 default: 569 qualifier = PrintfQualifierInt; /* default type */ 570 --i; 571 571 } 572 572 … … 575 575 switch (c = fmt[i]) { 576 576 577 /* 578 * String and character conversions. 579 */ 580 case 's': 581 if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) { 582 counter = -counter; 583 goto out; 584 }; 577 /* 578 * String and character conversions. 579 */ 580 case 's': 581 if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) { 582 counter = -counter; 583 goto out; 584 }; 585 586 counter += retval; 587 j = i + 1; 588 goto next_char; 589 case 'c': 590 c = va_arg(ap, unsigned int); 591 if ((retval = print_char(c, width, flags, ps)) < 0) { 592 counter = -counter; 593 goto out; 594 }; 585 595 586 counter += retval; 587 j = i + 1; 588 goto next_char; 589 case 'c': 590 c = va_arg(ap, unsigned int); 591 if ((retval = print_char(c, width, flags, ps)) < 0) { 592 counter = -counter; 593 goto out; 594 }; 595 596 counter += retval; 597 j = i + 1; 598 goto next_char; 599 600 /* 601 * Integer values 602 */ 603 case 'P': /* pointer */ 604 flags |= __PRINTF_FLAG_BIGCHARS; 605 case 'p': 606 flags |= __PRINTF_FLAG_PREFIX; 607 base = 16; 608 qualifier = PrintfQualifierPointer; 609 break; 610 case 'b': 611 base = 2; 612 break; 613 case 'o': 614 base = 8; 615 break; 616 case 'd': 617 case 'i': 618 flags |= __PRINTF_FLAG_SIGNED; 619 case 'u': 620 break; 621 case 'X': 622 flags |= __PRINTF_FLAG_BIGCHARS; 623 case 'x': 624 base = 16; 625 break; 626 /* percentile itself */ 627 case '%': 628 j = i; 629 goto next_char; 630 /* 631 * Bad formatting. 632 */ 633 default: 634 /* Unknown format 635 * now, the j is index of '%' so we will 636 * print whole bad format sequence 637 */ 638 goto next_char; 596 counter += retval; 597 j = i + 1; 598 goto next_char; 599 600 /* 601 * Integer values 602 */ 603 case 'P': /* pointer */ 604 flags |= __PRINTF_FLAG_BIGCHARS; 605 case 'p': 606 flags |= __PRINTF_FLAG_PREFIX; 607 base = 16; 608 qualifier = PrintfQualifierPointer; 609 break; 610 case 'b': 611 base = 2; 612 break; 613 case 'o': 614 base = 8; 615 break; 616 case 'd': 617 case 'i': 618 flags |= __PRINTF_FLAG_SIGNED; 619 case 'u': 620 break; 621 case 'X': 622 flags |= __PRINTF_FLAG_BIGCHARS; 623 case 'x': 624 base = 16; 625 break; 626 /* percentile itself */ 627 case '%': 628 j = i; 629 goto next_char; 630 /* 631 * Bad formatting. 632 */ 633 default: 634 /* Unknown format 635 * now, j is index of '%' so we will 636 * print whole bad format sequence 637 */ 638 goto next_char; 639 639 } 640 640 … … 643 643 /* print number */ 644 644 switch (qualifier) { 645 case PrintfQualifierByte:646 size = sizeof(unsigned char);647 number = (uint64_t)va_arg(ap, unsigned int);648 break;649 case PrintfQualifierShort:650 size = sizeof(unsigned short);651 number = (uint64_t)va_arg(ap, unsigned int);652 break;653 case PrintfQualifierInt:654 size = sizeof(unsigned int);655 number = (uint64_t)va_arg(ap, unsigned int);656 break;657 case PrintfQualifierLong:658 size = sizeof(unsigned long);659 number = (uint64_t)va_arg(ap, unsigned long);660 break;661 case PrintfQualifierLongLong:662 size = sizeof(unsigned long long);663 number = (uint64_t)va_arg(ap, unsigned long long);664 break;665 case PrintfQualifierPointer:666 size = sizeof(void *);667 number = (uint64_t)(unsigned long)va_arg(ap, void *);668 break;669 case PrintfQualifierNative:670 size = sizeof(unative_t);671 number = (uint64_t)va_arg(ap, unative_t);672 break;673 default: /* Unknown qualifier */674 counter = -counter;675 goto out;645 case PrintfQualifierByte: 646 size = sizeof(unsigned char); 647 number = (uint64_t)va_arg(ap, unsigned int); 648 break; 649 case PrintfQualifierShort: 650 size = sizeof(unsigned short); 651 number = (uint64_t)va_arg(ap, unsigned int); 652 break; 653 case PrintfQualifierInt: 654 size = sizeof(unsigned int); 655 number = (uint64_t)va_arg(ap, unsigned int); 656 break; 657 case PrintfQualifierLong: 658 size = sizeof(unsigned long); 659 number = (uint64_t)va_arg(ap, unsigned long); 660 break; 661 case PrintfQualifierLongLong: 662 size = sizeof(unsigned long long); 663 number = (uint64_t)va_arg(ap, unsigned long long); 664 break; 665 case PrintfQualifierPointer: 666 size = sizeof(void *); 667 number = (uint64_t)(unsigned long)va_arg(ap, void *); 668 break; 669 case PrintfQualifierNative: 670 size = sizeof(unative_t); 671 number = (uint64_t)va_arg(ap, unative_t); 672 break; 673 default: /* Unknown qualifier */ 674 counter = -counter; 675 goto out; 676 676 } 677 677 … … 719 719 } 720 720 721 722 /** @} 723 */ 724 721 /** @} 722 */ -
kernel/generic/src/printf/snprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 49 49 } 50 50 51 /** @}51 /** @} 52 52 */ 53 53 -
kernel/generic/src/printf/sprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 48 48 } 49 49 50 /** @}50 /** @} 51 51 */ 52 -
kernel/generic/src/printf/vprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 54 54 } 55 55 56 57 58 /** @} 56 /** @} 59 57 */ 60 -
kernel/generic/src/printf/vsnprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 101 101 } 102 102 103 /** @}103 /** @} 104 104 */ 105 -
kernel/generic/src/printf/vsprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 40 40 } 41 41 42 43 /** @} 42 /** @} 44 43 */ 45 -
kernel/generic/src/proc/scheduler.c
re5ecc02 r06e1e95 375 375 376 376 switch (THREAD->state) { 377 case Running:377 case Running: 378 378 spinlock_unlock(&THREAD->lock); 379 379 thread_ready(THREAD); 380 380 break; 381 381 382 case Exiting:382 case Exiting: 383 383 repeat: 384 384 if (THREAD->detached) { … … 406 406 break; 407 407 408 case Sleeping:408 case Sleeping: 409 409 /* 410 410 * Prefer the thread after it's woken up. … … 431 431 break; 432 432 433 default:433 default: 434 434 /* 435 435 * Entering state is unexpected. -
kernel/generic/src/security/cap.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 178 178 } 179 179 180 /** @}180 /** @} 181 181 */ 182 182 -
kernel/generic/src/synch/rwlock.c
re5ecc02 r06e1e95 207 207 rc = _mutex_lock_timeout(&rwl->exclusive, usec, flags); 208 208 switch (rc) { 209 case ESYNCH_WOULD_BLOCK:210 /*211 * release_spinlock() wasn't called212 */213 thread_register_call_me(NULL, NULL);214 spinlock_unlock(&rwl->lock);215 case ESYNCH_TIMEOUT:216 case ESYNCH_INTERRUPTED:217 /*218 * The sleep timed out.219 * We just restore interrupt priority level.220 */221 case ESYNCH_OK_BLOCKED:222 /*223 * We were woken with rwl->readers_in already incremented.224 * Note that this arrangement avoids race condition between225 * two concurrent readers. (Race is avoided if 'exclusive' is226 * locked at the same time as 'readers_in' is incremented.227 * Same time means both events happen atomically when228 * rwl->lock is held.)229 */230 interrupts_restore(ipl);231 break;232 case ESYNCH_OK_ATOMIC:233 panic("_mutex_lock_timeout()==ESYNCH_OK_ATOMIC\n");234 break;235 default:236 panic("invalid ESYNCH\n");237 break;209 case ESYNCH_WOULD_BLOCK: 210 /* 211 * release_spinlock() wasn't called 212 */ 213 thread_register_call_me(NULL, NULL); 214 spinlock_unlock(&rwl->lock); 215 case ESYNCH_TIMEOUT: 216 case ESYNCH_INTERRUPTED: 217 /* 218 * The sleep timed out. 219 * We just restore interrupt priority level. 220 */ 221 case ESYNCH_OK_BLOCKED: 222 /* 223 * We were woken with rwl->readers_in already incremented. 224 * Note that this arrangement avoids race condition between 225 * two concurrent readers. (Race is avoided if 'exclusive' is 226 * locked at the same time as 'readers_in' is incremented. 227 * Same time means both events happen atomically when 228 * rwl->lock is held.) 229 */ 230 interrupts_restore(ipl); 231 break; 232 case ESYNCH_OK_ATOMIC: 233 panic("_mutex_lock_timeout()==ESYNCH_OK_ATOMIC\n"); 234 break; 235 default: 236 panic("invalid ESYNCH\n"); 237 break; 238 238 } 239 239 return rc; -
kernel/generic/src/syscall/copy.c
re5ecc02 r06e1e95 106 106 107 107 ASSERT(THREAD); 108 ASSERT(!THREAD->in_copy_ from_uspace);108 ASSERT(!THREAD->in_copy_to_uspace); 109 109 110 110 if (!KERNEL_ADDRESS_SPACE_SHADOWED) { … … 119 119 120 120 ipl = interrupts_disable(); 121 THREAD->in_copy_ from_uspace = true;121 THREAD->in_copy_to_uspace = true; 122 122 123 123 rc = memcpy_to_uspace(uspace_dst, src, size); 124 124 125 THREAD->in_copy_ from_uspace = false;125 THREAD->in_copy_to_uspace = false; 126 126 127 127 interrupts_restore(ipl);
Note:
See TracChangeset
for help on using the changeset viewer.
