Changes in / [7b2a7ad:ab34cc9] in mainline
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
r7b2a7ad rab34cc9 70 70 @ "pentium4" Pentium 4 71 71 @ "pentium3" Pentium 3 72 @ "i486" i486 72 73 @ "core" Core Solo/Duo 73 74 @ "athlon_xp" Athlon XP 74 75 @ "athlon_mp" Athlon MP 75 @ "i486" i48676 76 ! [PLATFORM=ia32] PROCESSOR (choice) 77 77 -
kernel/arch/ia32/Makefile.inc
r7b2a7ad rab34cc9 44 44 # 45 45 46 ifeq ($(PROCESSOR),i486)47 CMN2 = -march=i48648 endif49 50 46 ifeq ($(PROCESSOR),athlon_xp) 51 47 CMN2 = -march=athlon-xp … … 66 62 CMN2 = -march=pentium4 67 63 SUNCC_CFLAGS += -xarch=sse2 64 endif 65 66 ifeq ($(PROCESSOR),i486) 67 CMN2 = -march=i486 68 68 endif 69 69 -
kernel/arch/ia32/include/asm.h
r7b2a7ad rab34cc9 312 312 313 313 #ifndef PROCESSOR_i486 314 315 314 /** Write to MSR */ 316 315 NO_TRACE static inline void write_msr(uint32_t msr, uint64_t value) … … 337 336 return ((uint64_t) dx << 32) | ax; 338 337 } 339 340 #endif /* PROCESSOR_i486 */ 338 #endif 341 339 342 340 -
kernel/arch/ia32/src/asm.S
r7b2a7ad rab34cc9 407 407 #ifdef PROCESSOR_i486 408 408 jz 0f 409 410 409 movl %eax, %ebp 410 0: 411 411 #else 412 412 cmovnzl %eax, %ebp -
kernel/arch/ia32/src/syscall.c
r7b2a7ad rab34cc9 40 40 41 41 #ifndef PROCESSOR_i486 42 43 42 /** Enable & setup support for SYSENTER/SYSEXIT */ 44 43 void syscall_setup_cpu(void) … … 51 50 write_msr(IA32_MSR_SYSENTER_EIP, (uint32_t) sysenter_handler); 52 51 } 53 54 #endif /* PROCESSOR_i486 */ 52 #endif 55 53 56 54 /** @} -
uspace/lib/c/arch/ia32/Makefile.common
r7b2a7ad rab34cc9 28 28 29 29 CLANG_ARCH = i386 30 31 30 ifeq ($(PROCESSOR),i486) 32 31 GCC_CFLAGS += -march=i486 -fno-omit-frame-pointer 33 32 else 34 33 GCC_CFLAGS += -march=pentium -fno-omit-frame-pointer 35 34 endif 36 35 -
uspace/lib/c/arch/ia32/src/entry.S
r7b2a7ad rab34cc9 46 46 mov %ax, %fs 47 47 # Do not set %gs, it contains descriptor that can see TLS 48 48 49 49 #ifndef PROCESSOR_i486 50 50 # Detect the mechanism used for making syscalls … … 53 53 bt $(INTEL_SEP), %edx 54 54 jnc 0f 55 56 57 55 leal __syscall_fast_func, %eax 56 movl $__syscall_fast, (%eax) 57 0: 58 58 #endif 59 60 59 # 61 60 # Create the first stack frame. -
uspace/lib/c/generic/async.c
r7b2a7ad rab34cc9 98 98 #include <ipc/ipc.h> 99 99 #include <async.h> 100 #include "private/async.h"101 100 #undef LIBC_ASYNC_C_ 102 101 … … 114 113 #include <stdlib.h> 115 114 #include <macros.h> 115 #include "private/async.h" 116 116 117 117 #define CLIENT_HASH_TABLE_BUCKETS 32 -
uspace/lib/c/generic/async_obsolete.c
r7b2a7ad rab34cc9 38 38 #include <async.h> 39 39 #include <async_obsolete.h> 40 #include "private/async.h"41 40 #undef LIBC_ASYNC_C_ 42 41 #undef LIBC_ASYNC_OBSOLETE_C_ … … 45 44 #include <malloc.h> 46 45 #include <errno.h> 46 #include "private/async.h" 47 47 48 48 /** Send message and return id of the sent message. -
uspace/lib/c/generic/private/async.h
r7b2a7ad rab34cc9 36 36 #define LIBC_PRIVATE_ASYNC_H_ 37 37 38 #include < async.h>38 #include <ipc/common.h> 39 39 #include <adt/list.h> 40 40 #include <fibril.h> 41 #include <fibril_synch.h>42 41 #include <sys/time.h> 43 42 #include <bool.h> 44 45 /** Session data */46 struct _async_sess {47 /** List of inactive exchanges */48 list_t exch_list;49 50 /** Exchange management style */51 exch_mgmt_t mgmt;52 53 /** Session identification */54 int phone;55 56 /** First clone connection argument */57 sysarg_t arg1;58 59 /** Second clone connection argument */60 sysarg_t arg2;61 62 /** Third clone connection argument */63 sysarg_t arg3;64 65 /** Exchange mutex */66 fibril_mutex_t mutex;67 68 /** Number of opened exchanges */69 atomic_t refcnt;70 };71 72 /** Exchange data */73 struct _async_exch {74 /** Link into list of inactive exchanges */75 link_t sess_link;76 77 /** Link into global list of inactive exchanges */78 link_t global_link;79 80 /** Session pointer */81 async_sess_t *sess;82 83 /** Exchange identification */84 int phone;85 };86 43 87 44 /** Structures of this type are used to track the timeout events. */ -
uspace/lib/c/include/async.h
r7b2a7ad rab34cc9 42 42 #include <ipc/common.h> 43 43 #include <fibril.h> 44 #include <fibril_synch.h> 44 45 #include <sys/time.h> 45 46 #include <atomic.h> … … 95 96 } exch_mgmt_t; 96 97 97 /** Forward declarations */ 98 struct _async_exch; 99 struct _async_sess; 100 101 typedef struct _async_sess async_sess_t; 102 typedef struct _async_exch async_exch_t; 98 /** Session data */ 99 typedef struct { 100 /** List of inactive exchanges */ 101 list_t exch_list; 102 103 /** Exchange management style */ 104 exch_mgmt_t mgmt; 105 106 /** Session identification */ 107 int phone; 108 109 /** First clone connection argument */ 110 sysarg_t arg1; 111 112 /** Second clone connection argument */ 113 sysarg_t arg2; 114 115 /** Third clone connection argument */ 116 sysarg_t arg3; 117 118 /** Exchange mutex */ 119 fibril_mutex_t mutex; 120 121 /** Number of opened exchanges */ 122 atomic_t refcnt; 123 } async_sess_t; 124 125 /** Exchange data */ 126 typedef struct { 127 /** Link into list of inactive exchanges */ 128 link_t sess_link; 129 130 /** Link into global list of inactive exchanges */ 131 link_t global_link; 132 133 /** Session pointer */ 134 async_sess_t *sess; 135 136 /** Exchange identification */ 137 int phone; 138 } async_exch_t; 103 139 104 140 extern atomic_t threads_in_ipc_wait;
Note:
See TracChangeset
for help on using the changeset viewer.