Changeset f1380b7 in mainline
- Timestamp:
- 2018-03-02T20:21:57Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 34e1206
- Parents:
- a35b458
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:51:04)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:21:57)
- Files:
-
- 62 edited
Legend:
- Unmodified
- Added
- Removed
-
README.md
ra35b458 rf1380b7 94 94 95 95 ## License 96 96 97 97 HelenOS is open source, free software. Its source code is available under 98 98 the BSD license. Some third-party components are licensed under GPL. -
boot/Makefile
ra35b458 rf1380b7 81 81 echo "</ul></body></html>" >>"$(DIST_PATH)/test/test.html" 82 82 endif 83 83 84 84 ifeq ($(CONFIG_PCUT_SELF_TESTS),y) 85 85 echo "echo Running all PCUT self-tests..." >"$(DIST_PATH)/test/run_pcut" … … 99 99 echo "</ul></body></html>" >>"$(DIST_PATH)/test/pcut.html" 100 100 endif 101 101 102 102 for drv in $(RD_DRVS) ; do \ 103 103 drv_dir="`dirname "$$drv"`" ; \ -
boot/Makefile.grub
ra35b458 rf1380b7 63 63 gunzip $(IMAGE) 64 64 endif 65 65 66 66 for module in $(COMPONENTS) ; do \ 67 67 cp "$$module" $(BOOT)/ ; \ 68 68 done 69 69 70 70 echo "set default=0" > $(BOOT_CONFIG) 71 71 echo "set timeout=10" >> $(BOOT_CONFIG) 72 72 echo "" >> $(BOOT_CONFIG) 73 73 74 74 ifeq ($(GRUB_ARCH),pc) 75 75 echo "insmod vbe" >> $(BOOT_CONFIG) … … 81 81 endif 82 82 echo "" >> $(BOOT_CONFIG) 83 83 84 84 echo "menuentry 'HelenOS $(RELEASE)' --class helenos --class os {" >> $(BOOT_CONFIG) 85 85 for module in $(MODULES) ; do \ -
boot/arch/ia64/_link.ld.in
ra35b458 rf1380b7 18 18 *(.components); 19 19 } 20 20 21 21 /DISCARD/ : { 22 22 *(.*); -
boot/arch/mips32/_link.ld.in
ra35b458 rf1380b7 23 23 *(.components); 24 24 } 25 25 26 26 /DISCARD/ : { 27 27 *(.gnu.*); -
boot/arch/ppc32/_link.ld.in
ra35b458 rf1380b7 20 20 *(.components); 21 21 } 22 22 23 23 /DISCARD/ : { 24 24 *(.gnu.*); -
boot/arch/riscv64/_link.ld.in
ra35b458 rf1380b7 5 5 SECTIONS { 6 6 . = PHYSMEM_START; 7 7 8 8 .text : { 9 9 *(BOOTSTRAP); 10 10 *(.text); 11 11 } 12 12 13 13 . = ALIGN(0x1000); 14 14 .htif : { … … 17 17 } 18 18 . = ALIGN(0x1000); 19 19 20 20 . = ALIGN(0x1000); 21 21 .pt : { … … 24 24 } 25 25 . = ALIGN(0x1000); 26 26 27 27 .data : { 28 28 *(.data); /* initialized data */ … … 37 37 *(.components); 38 38 } 39 39 40 40 /DISCARD/ : { 41 41 *(.gnu.*); -
boot/arch/sparc64/_link.ld.in
ra35b458 rf1380b7 6 6 *(BOOTSTRAP); 7 7 *(.text); 8 8 9 9 *(.data); /* initialized data */ 10 10 *(.rodata); … … 17 17 *(.components); 18 18 } 19 19 20 20 /DISCARD/ : { 21 21 *(.gnu.*); -
contrib/arch/HelenOS.adl
ra35b458 rf1380b7 2 2 /* SPARTAN kernel */ 3 3 inst kernel kernel; 4 4 5 5 /* Naming Service */ 6 6 inst ns ns; 7 7 8 8 /* Loader (clonable service) */ 9 9 inst loader loader; 10 10 11 11 /* Device mapper */ 12 12 inst devmap devmap; 13 13 14 14 /* Block device */ 15 15 inst bd bd; 16 16 17 17 /* VFS server */ 18 18 inst vfs vfs; 19 19 20 20 /* Console */ 21 21 inst console console; 22 22 23 23 /* Kernel log */ 24 24 inst kio kio; 25 25 26 26 [/uspace/lib/libc/bind%ns] 27 27 [/uspace/lib/libc/bind%loader] … … 31 31 [/uspace/lib/libc/bind%console] 32 32 [/uspace/lib/libc/bind%kio] 33 33 34 34 bind ns:kbd to console:kbd; 35 35 bind ns:fb to console:fb; … … 39 39 bind ns:devmap_client to devmap:devmap_client; 40 40 bind ns:loader to loader:loader; 41 41 42 42 bind loader:ns to ns:ns; 43 43 44 44 bind devmap:ns to ns:ns; 45 45 bind devmap:rd to bd:rd; 46 46 bind devmap:console to console:console; 47 47 48 48 bind bd:ns to ns:ns; 49 49 bind bd:devmap_driver to devmap:devmap_driver; 50 50 51 51 bind vfs:ns to ns:ns; 52 52 bind vfs:rd to bd:rd; 53 53 bind vfs:devmap_client to devmap:devmap_client; 54 54 bind vfs:device to console:console; 55 55 56 56 bind console:ns to ns:ns; 57 57 bind console:devmap_driver to devmap:devmap_driver; 58 58 bind console:sys_console to kernel:sys_console; 59 59 60 60 bind kio:ns to ns:ns; 61 61 }; -
contrib/arch/kernel/kernel.adl
ra35b458 rf1380b7 13 13 /* Enable kernel console */ 14 14 sysarg_t sys_debug_enable_console(void); 15 15 16 16 /* Disable kernel console */ 17 17 sysarg_t sys_debug_disable_console(void); … … 26 26 /* Create new thread */ 27 27 sysarg_t sys_thread_create(uspace_arg_t *uspace_uarg, char *uspace_name, size_t name_len, thread_id_t *uspace_thread_id); 28 28 29 29 /* Terminate current thread */ 30 30 sysarg_t sys_thread_exit(int uspace_status); 31 31 32 32 /* Get current thread id */ 33 33 sysarg_t sys_thread_get_id(thread_id_t *uspace_thread_id); … … 43 43 /* Set name fo the current task */ 44 44 sysarg_t sys_task_set_name(const char *uspace_name, size_t name_len); 45 45 46 46 /* Get current task id */ 47 47 sysarg_t sys_task_get_id(task_id_t *uspace_task_id); … … 63 63 /* Sleep in a futex wait queue */ 64 64 sysarg_t sys_futex_sleep_timeout(uintptr_t uaddr, uint32_t usec, int flags); 65 65 66 66 /* Wakeup one thread waiting in futex wait queue */ 67 67 sysarg_t sys_futex_wakeup(uintptr_t uaddr); … … 83 83 /* Create new address space area */ 84 84 sysarg_t sys_as_area_create(uintptr_t address, size_t size, int flags); 85 85 86 86 /* Resize an address space area */ 87 87 sysarg_t sys_as_area_resize(uinptr_t address, size_t size, int flags); 88 88 89 89 /* Change flags of an address space area */ 90 90 sysarg_t sys_as_area_change_flags(uintptr_t address, int flags); 91 91 92 92 /* Destroy an address space area */ 93 93 sysarg_t sys_as_area_destroy(uintptr_t address); … … 104 104 /* Fast synchronous IPC call */ 105 105 sysarg_t sys_ipc_call_sync_fast(sysarg_t phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, ipc_data_t *data); 106 106 107 107 /* Slow synchronous IPC call */ 108 108 sysarg_t sys_ipc_call_sync_slow(sysarg_t phoneid, ipc_data_t *question, ipc_data_t *answer); 109 109 110 110 /* Fast asynchronous IPC call */ 111 111 sysarg_t sys_ipc_call_async_fast(sysarg_t phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4); 112 112 113 113 /* Slow asynchronous IPC call */ 114 114 sysarg_t sys_ipc_call_async_slow(sysarg_t phoneid, ipc_data_t *data); 115 115 116 116 /* Fast forward a received IPC call to another destination */ 117 117 sysarg_t sys_ipc_forward_fast(sysarg_t callid, sysarg_t phoneid, sysarg_t method, sysarg_t arg1, sysarg_t arg2, int mode); 118 118 119 119 /* Slow forward a received IPC call to another destination */ 120 120 sysarg_t sys_ipc_forward_slow(sysarg_t callid, sysarg_t phoneid, ipc_data_t *data, int mode); 121 121 122 122 /* Fast answer an IPC call */ 123 123 sysarg_t sys_ipc_answer_fast(sysarg_t callid, sysarg_t retval, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4); 124 124 125 125 /* Slow answer an IPC call */ 126 126 sysarg_t sys_ipc_answer_slow(sysarg_t callid, ipc_data_t *data); 127 127 128 128 /* Hang up a phone */ 129 129 sysarg_t sys_ipc_hangup(int phoneid); 130 130 131 131 /* Wait for an incoming IPC call or answer */ 132 132 sysarg_t sys_ipc_wait_for_call(ipc_data_t *calldata, uint32_t usec, int flags); 133 133 134 134 /* Interrupt one thread of the current task from waiting on IPC call */ 135 135 sysarg_t sys_ipc_poke(void); … … 162 162 sysarg_t sys_cap_grant(sysarg64_t *uspace_taskid, cap_t caps); 163 163 #endif 164 164 165 165 #ifdef __64_BITS__ 166 166 sysarg_t sys_cap_grant(sysarg_t taskid, cap_t caps); 167 167 #endif 168 168 169 169 /* Revoke capabilities from a task */ 170 170 #ifdef __32_BITS__ 171 171 sysarg_t sys_cap_revoke(sysarg64_t *uspace_taskid, cap_t caps); 172 172 #endif 173 173 174 174 #ifdef __64_BITS__ 175 175 sysarg_t sys_cap_revoke(sysarg_t taskid, cap_t caps); … … 185 185 /* Enable access I/O address space for the current task */ 186 186 sysarg_t sys_enable_iospace(ddi_ioarg_t *uspace_io_arg); 187 187 188 188 /* Map physical memory to the current task's address space */ 189 189 sysarg_t sys_physmem_map(sysarg_t phys_base, sysarg_t virt_base, sysarg_t pages, sysarg_t flags); 190 190 191 191 /* Enable or disable preemption */ 192 192 sysarg_t sys_preempt_control(int enable); 193 193 194 194 /* Assign unique device number */ 195 195 sysarg_t sys_device_assign_devno(void); 196 196 197 197 /* Connect an IRQ handler to the current task */ 198 198 sysarg_t sys_register_irq(inr_t inr, devno_t devno, sysarg_t method, irq_code_t *ucode); 199 199 200 200 /* Disconnect an IRQ handler from the current task */ 201 201 sysarg_t sys_unregister_irq(inr_t inr, devno_t devno); … … 214 214 /* Check for sysinfo key validity */ 215 215 sysarg_t sys_sysinfo_valid(sysarg_t ptr, sysarg_t len); 216 216 217 217 /* Get sysinfo key value */ 218 218 sysarg_t sys_sysinfo_value(unatice_t ptr, sysarg_t len); … … 229 229 sysarg_t sys_ipc_connect_kbox(sysarg64_t *uspace_taskid); 230 230 #endif 231 231 232 232 #ifdef __64_BITS__ 233 233 sysarg_t sys_ipc_connect_kbox(sysarg_t taskid); … … 308 308 inst sys_sysinfo sys_sysinfo; 309 309 inst sys_debug sys_debug; 310 310 311 311 delegate sys_kio to sys_console:sys_kio; 312 312 delegate sys_console to sys_console:sys_console; -
contrib/arch/uspace/srv/bd/bd.adl
ra35b458 rf1380b7 2 2 /* Share out data buffer */ 3 3 sysarg_t ipc_m_share_out(in sysarg_t as_area_base, in sysarg_t as_area_size, in sysarg_t flags, out sysarg_t dst_as_area_base); 4 4 5 5 /* Get block size */ 6 6 sysarg_t get_block_size(out sysarg_t block_size); 7 7 8 8 /* Read blocks via shared data buffer */ 9 9 sysarg_t read_blocks(in sysarg_t index_lower, in sysarg_t index_upper, in sysarg_t count); 10 10 11 11 /* Write blocks via shared data buffer */ 12 12 sysarg_t write_blocks(in sysarg_t index_lower, in sysarg_t index_upper, in sysarg_t count); … … 17 17 architecture bd { 18 18 inst rd rd; 19 19 20 20 [/uspace/lib/libc/subsume%rd] 21 21 22 22 delegate rd to rd:rd; 23 23 24 24 subsume rd:ns to ns; 25 25 subsume rd:devmap_driver to devmap_driver; -
contrib/arch/uspace/srv/console/console.adl
ra35b458 rf1380b7 2 2 /* Read characters from console */ 3 3 sysarg_t read(out_copy stream data); 4 4 5 5 /* Write characters to console */ 6 6 sysarg_t write(in_copy stream data); 7 7 8 8 /* Get last event from event queue */ 9 9 sysarg_t get_event(out sysarg_t type, out sysarg_t key, out sysarg_t mods, out sysarg_t char); 10 10 11 11 /* Flush output buffer */ 12 12 sysarg_t sync(void); 13 13 14 14 /* Clear console */ 15 15 sysarg_t clear(void); 16 16 17 17 /* Move cursor to given position */ 18 18 sysarg_t goto(in sysarg_t col, in sysarg_t row); 19 19 20 20 /* Get console dimensions (in character cells) */ 21 21 sysarg_t get_size(out sysarg_t cols, in sysarg_t rows); 22 22 23 23 /* Get color capabilities */ 24 24 sysarg_t get_color_cap(void); 25 25 26 26 /* Set abstract text style */ 27 27 sysarg_t set_style(in sysarg_t style); 28 28 29 29 /* Set EGA-based text color */ 30 30 sysarg_t set_color(in sysarg_t fb_color, in sysarg_t bg_color, in sysarg_t attr); 31 31 32 32 /* Set RGB-based text color */ 33 33 sysarg_t set_rgb_color(in sysarg_t fb_color, in sysarg_t bg_color); 34 34 35 35 /* Set cursor visibility */ 36 36 sysarg_t cursor_visibility(in sysarg_t visible); 37 37 38 38 /* Switch to kernel debugging console (if available) */ 39 39 sysarg_t kcon_enable(void); … … 85 85 inst kbd kbd; 86 86 inst fb fb; 87 87 88 88 bind ui_dispatcher:kbd to kbd:kbd; 89 89 bind ui_dispatcher:fb to fb:fb; 90 90 91 91 bind kbd:event to ui_dispatcher:event; 92 92 93 93 delegate console to ui_dispatcher:console; 94 94 delegate kbd to kbd:kbd; 95 95 delegate fb to fb:fb; 96 96 97 97 [/uspace/lib/libc/subsume%ui_dispatcher] 98 98 [/uspace/lib/libc/subsume%kbd] 99 99 [/uspace/lib/libc/subsume%fb] 100 100 101 101 subsume ui_dispatcher:ns to ns; 102 102 subsume ui_dispatcher:devmap_driver to devmap_driver; 103 103 subsume ui_dispatcher:sys_console to sys_console; 104 104 105 105 subsume kbd:ns to ns; 106 106 subsume fb:ns to ns; -
contrib/arch/uspace/srv/console/console.bp
ra35b458 rf1380b7 5 5 [fnc.cons_read] 6 6 } + 7 7 8 8 ?write { 9 9 [fnc.cons_write] 10 10 } + 11 11 12 12 ?sync { 13 13 [fnc.fb_pending_flush] ; … … 17 17 } 18 18 } + 19 19 20 20 ?clear { 21 21 tentative { … … 23 23 } 24 24 } + 25 25 26 26 ?goto { 27 27 tentative { … … 29 29 } 30 30 } + 31 31 32 32 ?set_style { 33 33 [fnc.fb_pending_flush] ; … … 36 36 } 37 37 } + 38 38 39 39 ?set_color { 40 40 [fnc.fb_pending_flush] ; … … 43 43 } 44 44 } + 45 45 46 46 ?set_rgb_color { 47 47 [fnc.fb_pending_flush] ; … … 50 50 } 51 51 } + 52 52 53 53 ?cursor_visibility { 54 54 [fnc.fb_pending_flush] ; … … 57 57 } 58 58 } + 59 59 60 60 ?kcon_enable { 61 61 !sys_console.sys_debug_enable_console 62 62 } + 63 63 64 64 ?get_event + 65 65 ?get_size + -
contrib/arch/uspace/srv/devmap/devmap.adl
ra35b458 rf1380b7 2 2 /* Establish connection (iface is DEVMAP_DRIVER) */ 3 3 sysarg_t ipc_m_connect_me_to(in sysarg_t iface); 4 4 5 5 /* Register as a new driver */ 6 6 sysarg_t driver_register(in_copy string name); 7 7 8 8 /* Unregister all devices and the driver itself */ 9 9 sysarg_t driver_unregister(void); 10 10 11 11 /* Register new device and return handle */ 12 12 sysarg_t device_register(in_copy string name, out sysarg_t handle); 13 13 14 14 /* Unregister device */ 15 15 sysarg_t device_unregister(in sysarg_t handle); 16 16 17 17 /* Resolve device name to handle */ 18 18 sysarg_t device_get_handle(in sysarg_t flags, in_copy string name); 19 19 20 20 /* Get device name for a given handle */ 21 21 sysarg_t device_get_name(in sysarg_t handle); 22 22 23 23 /* Close connection */ 24 24 sysarg_t ipc_m_phone_hungup(void); … … 30 30 /* Establish connection (iface is DEVMAP_CLIENT) or forward to device (iface is DEVMAP_CONNECT_TO_DEVICE) */ 31 31 sysarg_t ipc_m_connect_me_to(in sysarg_t iface, in sysarg_t handle); 32 32 33 33 /* Resolve device name to handle */ 34 34 sysarg_t device_get_handle(in sysarg_t flags, in_copy string name); 35 35 36 36 /* Get device name for a given handle */ 37 37 sysarg_t device_get_name(in sysarg_t handle); 38 38 39 39 /* Clone NULL device */ 40 40 sysarg_t device_null_create(out sysarg_t index); 41 41 42 42 /* Destroy NULL device */ 43 43 sysarg_t device_null_destroy(in sysarg_t index); 44 44 45 45 /* Get number of devices */ 46 46 sysarg_t device_get_count(out sysarg_t count); 47 47 48 48 /* Get an array of (device_name, handle) pairs */ 49 49 sysarg_t device_get_devices(out_copy stream data); 50 50 51 51 /* Close connection */ 52 52 sysarg_t ipc_m_phone_hungup(void); 53 53 protocol: 54 54 [devmap_client.bp] 55 55 56 56 }; 57 57 -
contrib/arch/uspace/srv/devmap/devmap_client.bp
ra35b458 rf1380b7 10 10 ?ipc_m_data_write /* device name */ 11 11 } + 12 12 13 13 ?device_get_name + 14 14 ?device_null_create + 15 15 ?device_null_destroy + 16 16 ?device_get_count + 17 17 18 18 ?device_get_devices { 19 19 ?ipc_m_data_read /* buffer */ -
contrib/arch/uspace/srv/devmap/devmap_driver.bp
ra35b458 rf1380b7 14 14 } 15 15 } + 16 16 17 17 ?device_get_handle { 18 18 ?ipc_m_data_write /* device name */ 19 19 } + 20 20 21 21 ?device_get_name + 22 22 ?device_unregister + -
contrib/arch/uspace/srv/fb/fb.adl
ra35b458 rf1380b7 2 2 /* Get screen resolution */ 3 3 sysarg_t get_resolution(out sysarg_t width, out sysarg_t height); 4 4 5 5 /* Yield screen */ 6 6 sysarg_t screen_yield(void); 7 7 8 8 /* Reclaim screen */ 9 9 sysarg_t screen_reclaim(void); 10 10 11 11 /* Set mouse cursor position on screen */ 12 12 sysarg_t pointer_move(in sysarg_t x, in sysarg_t y); 13 13 14 14 /* Create new viewport */ 15 15 sysarg_t viewport_create(in sysarg_t origin, in sysarg_t dimension); 16 16 17 17 /* Get viewport size in character cells */ 18 18 sysarg_t get_csize(out sysarg_t width, out sysarg_t height); 19 19 20 20 /* Clear viewport character buffer */ 21 21 sysarg_t clear(void); 22 22 23 23 /* Scroll viewport character buffer */ 24 24 sysarg_t scroll(in sysarg_t lines); 25 25 26 26 /* Set active viewport */ 27 27 sysarg_t viewport_switch(in sysarg_t index); 28 28 29 29 /* Delete viewport */ 30 30 sysarg_t viewport_delete(in sysarg_t index); 31 31 32 32 /* Get color capabilities of the screen */ 33 33 sysarg_t get_color_cap(void); 34 34 35 35 /* Set abstract text style */ 36 36 sysarg_t set_style(in sysarg_t style); 37 37 38 38 /* Set EGA-based text color */ 39 39 sysarg_t set_color(in sysarg_t fg_color, in sysarg_t bg_color, in sysarg_t atrr); 40 40 41 41 /* Set RGB-based text color */ 42 42 sysarg_t set_rgb_color(in sysarg_t fg_color, in sysarg_t bg_color); 43 43 44 44 /* Put a character to a given position in viewport character buffer */ 45 45 sysarg_t putchar(in sysarg_t char, in sysarg_t col, in sysarg_t row); 46 46 47 47 /* Set character cursor visibility in viewport */ 48 48 sysarg_t cursor_visibility(in sysarg_t visible); 49 49 50 50 /* Set character cursor position in viewport */ 51 51 sysarg_t cursor_goto(in sysarg_t col, in sysarg_t row); 52 52 53 53 /* Prepare memory sharing of bitmaps */ 54 54 sysarg_t prepare_shm(in sysarg_t as_area_base); 55 55 56 56 /* Share bitmap or text data */ 57 57 sysarg_t ipc_m_share_out(in sysarg_t as_area_base, in sysarg_t as_area_size, out sysarg_t dst_as_area); 58 58 59 59 /* Drop memory sharing */ 60 60 sysarg_t drop_shm(void); 61 61 62 62 /* Draw PPM data from shared memory to viewport */ 63 63 sysarg_t draw_ppm(in sysarg_t x, in sysarg_t y); 64 64 65 65 /* Put characters from shared memory to viewport */ 66 66 sysarg_t draw_text_data(in sysarg_t x, in sysarg_t y, in sysarg_t width, in sysarg_t height); 67 67 68 68 /* Convert PPM data from shared memory to pixmap */ 69 69 sysarg_t shm2pixmap(void); 70 70 71 71 /* Save viewport contents to a pixmap */ 72 72 sysarg_t vp2pixmap(in sysarg_t vp_index); 73 73 74 74 /* Draw pixmap to viewport */ 75 75 sysarg_t vp_draw_pixmap(in sysarg_t vp_index, in sysarg_t pm_index); 76 76 77 77 /* Discard pixmap */ 78 78 sysarg_t drop_pixmap(in sysarg_t pm_index); 79 79 80 80 /* Create new (empty) animation for a viewport */ 81 81 sysarg_t anim_create(in sysarg_t vp_index); 82 82 83 83 /* Append a pixmap to an animation */ 84 84 sysarg_t anim_addpixmap(in sysarg_t anim_index, in sysarg_t pm_index); 85 85 86 86 /* Change a viewport associated with an animation */ 87 87 sysarg_t anim_chgvp(in sysarg_t anim_index, in sysarg_t vp_index); 88 88 89 89 /* Start animation playback */ 90 90 sysarg_t anim_start(in sysarg_t anim_index); 91 91 92 92 /* Stop animation playback */ 93 93 sysarg_t anim_stop(in sysarg_t anim_index); 94 94 95 95 /* Delete animation */ 96 96 sysarg_t anim_drop(in sysarg_t anim_index); -
contrib/arch/uspace/srv/fs/devfs/devfs.bp
ra35b458 rf1380b7 5 5 ?ipc_m_data_write /* mount options */ 6 6 } + 7 7 8 8 ?lookup { 9 9 tentative { … … 14 14 } 15 15 } + 16 16 17 17 ?open_node { 18 18 tentative { … … 20 20 } 21 21 } + 22 22 23 23 ?read { 24 24 tentative { … … 34 34 } 35 35 } + 36 36 37 37 ?write { 38 38 tentative { … … 44 44 } 45 45 } + 46 46 47 47 ?stat { 48 48 ?ipc_m_data_read /* struct data */ 49 49 } + 50 50 51 51 ?close { 52 52 !device.ipc_m_phone_hungup 53 53 } + 54 54 55 55 ?mount + 56 56 ?truncate + -
contrib/arch/uspace/srv/fs/fat/fat.bp
ra35b458 rf1380b7 10 10 } 11 11 } + 12 12 13 13 ?mount { 14 14 [/uspace/lib/libfs/fnc.libfs_mount] 15 15 } + 16 16 17 17 ?lookup { 18 18 [/uspace/lib/libfs/fnc.libfs_lookup] 19 19 } + 20 20 21 21 ?open_node { 22 22 [/uspace/lib/libfs/fnc.libfs_open_node] 23 23 } + 24 24 25 25 ?read { 26 26 tentative { … … 28 28 } 29 29 } + 30 30 31 31 ?write { 32 32 tentative { … … 34 34 } 35 35 } + 36 36 37 37 ?stat { 38 38 [/uspace/lib/libfs/fnc.libfs_stat] 39 39 } + 40 40 41 41 ?truncate + 42 42 ?close + -
contrib/arch/uspace/srv/fs/tmpfs/tmpfs.bp
ra35b458 rf1380b7 8 8 } 9 9 } + 10 10 11 11 ?mount { 12 12 [/uspace/lib/libfs/fnc.libfs_mount] 13 13 } + 14 14 15 15 ?lookup { 16 16 [/uspace/lib/libfs/fnc.libfs_lookup] 17 17 } + 18 18 19 19 ?open_node { 20 20 [/uspace/lib/libfs/fnc.libfs_open_node] 21 21 } + 22 22 23 23 ?read { 24 24 tentative { … … 26 26 } 27 27 } + 28 28 29 29 ?write { 30 30 tentative { … … 32 32 } 33 33 } + 34 34 35 35 ?stat { 36 36 [/uspace/lib/libfs/fnc.libfs_stat] 37 37 } + 38 38 39 39 ?truncate + 40 40 ?close + -
contrib/arch/uspace/srv/kbd/kbd.adl
ra35b458 rf1380b7 2 2 /* Callback connection */ 3 3 sysarg_t ipc_m_connect_to_me(void); 4 4 5 5 /* Yield hardware */ 6 6 sysarg_t yield(void); 7 7 8 8 /* Reclaim hardware */ 9 9 sysarg_t reclaim(void); -
contrib/arch/uspace/srv/loader/loader.adl
ra35b458 rf1380b7 2 2 /* Set task pathname */ 3 3 sysarg_t set_pathname(in_copy string pathname); 4 4 5 5 /* Set task arguments */ 6 6 sysarg_t set_args(in_copy stream args); 7 7 8 8 /* Set task initial files */ 9 9 sysarg_t set_files(in_copy stream files); 10 10 11 11 /* Get task ID */ 12 12 sysarg_t get_taskid(out_copy stream id); 13 13 14 14 /* Load binary */ 15 15 sysarg_t load(void); 16 16 17 17 /* Run binary */ 18 18 sysarg_t run(void); -
contrib/arch/uspace/srv/loader/loader.bp
ra35b458 rf1380b7 3 3 ?ipc_m_data_read /* task ID */ 4 4 } + 5 5 6 6 ?set_pathname { 7 7 ?ipc_m_data_write /* pathname */ 8 8 } + 9 9 10 10 ?set_args { 11 11 ?ipc_m_data_write /* arguments */ 12 12 } + 13 13 14 14 ?set_files { 15 15 ?ipc_m_data_write /* files */ 16 16 } + 17 17 18 18 ?load 19 19 )* ; -
contrib/arch/uspace/srv/ns/ns.adl
ra35b458 rf1380b7 2 2 /* Register a clonable service or a generic service */ 3 3 sysarg_t ipc_m_connect_to_me(in sysarg_t service); 4 4 5 5 /* Connect to a clonable service or a generic service */ 6 6 sysarg_t ipc_m_connect_me_to(in sysarg_t service, in sysarg_t arg2, in sysarg_t arg3, in sysarg_t flags); 7 7 8 8 /* Share real-time clock page or kio page */ 9 9 sysarg_t ipc_m_share_in(in sysarg_t as_area_base, in sysarg_t as_area_size, in sysarg_t service); 10 10 11 11 /* For IPC testing purposes */ 12 12 sysarg_t ping(void); 13 13 14 14 /* Wait for task exit and get exit status and return value */ 15 15 sysarg_t task_wait(in sysarg_t id_lower, in sysarg_t id_upper, out sysarg_t status, out sysarg_t retval); 16 16 17 17 /* Introduce a new loader task id in such a way it cannot be spoofed */ 18 18 sysarg_t id_intro(in sysarg_t id_lower, in sysarg_t id_upper); 19 19 20 20 /* Set task return value */ 21 21 sysarg_t retval(in sysarg_t retval); 22 22 23 23 /* Implicit connection close */ 24 24 sysarg_t ipc_m_phone_hungup(void); -
contrib/arch/uspace/srv/ns/ns.bp
ra35b458 rf1380b7 8 8 } 9 9 } + 10 10 11 11 ?ipc_m_connect_me_to { 12 12 tentative { … … 16 16 } 17 17 } + 18 18 19 19 ?ipc_m_share_in + 20 20 ?ping + -
contrib/arch/uspace/srv/ns/service.adl
ra35b458 rf1380b7 3 3 (this call is forwarded from Naming Service or Device Mapper) */ 4 4 sysarg_t ipc_m_connect_me_to(void); 5 5 6 6 /* Close connection */ 7 7 sysarg_t ipc_m_phone_hungup(void); -
contrib/arch/uspace/srv/vfs/vfs.adl
ra35b458 rf1380b7 2 2 /* Register a filesystem driver */ 3 3 sysarg_t register(in_copy string name); 4 4 5 5 /* Mount filesystem */ 6 6 sysarg_t mount(in sysarg_t device, in sysarg_t flags, in sysarg_t instance, in_copy string point, in_copy string opts, in_copy string fs); 7 7 8 8 /* Open file */ 9 9 sysarg_t open(in sysarg_t lflag, in sysarg_t oflag, in sysarg_t mode, in_copy string path, out sysarg_t fd); 10 10 11 11 /* Open file using node */ 12 12 sysarg_t open_node(in sysarg_t fs_handle, in sysarg_t dev_handle, in sysarg_t index, in sysarg_t oflag, out sysarg_t fd); 13 13 14 14 /* Read data from file */ 15 15 sysarg_t read(in sysarg_t fd, out_copy stream data); 16 16 17 17 /* Write data to file */ 18 18 sysarg_t write(in sysarg_t fd, in_copy stream data); 19 19 20 20 /* Seek in file */ 21 21 sysarg_t seek(in sysarg_t fd, in sysarg_t offset, in sysarg_t whence); 22 22 23 23 /* Truncate file */ 24 24 sysarg_t truncate(in sysarg_t fd, in sysarg_t size); 25 25 26 26 /* Get file metadata */ 27 27 sysarg_t fstat(in sysarg_t fd, out_copy stream stat); 28 28 29 29 /* Get directory entry metadata */ 30 30 sysarg_t stat(in_copy string path, out_copy stream stat); 31 31 32 32 /* Create directory */ 33 33 sysarg_t mkdir(in sysarg_t mode, in_copy string path); 34 34 35 35 /* Delete directory entry */ 36 36 sysarg_t unlink(in sysarg_t lflag, in_copy string path); 37 37 38 38 /* Rename directory entry */ 39 39 sysarg_t rename(in_copy string old, in_copy string new); 40 40 41 41 /* Flush file buffers */ 42 42 sysarg_t sync(in sysarg_t fd); 43 43 44 44 /* In-protocol status value */ 45 45 sysarg_t ipc_m_ping(void); 46 46 47 47 /* Close connection */ 48 48 sysarg_t ipc_m_phone_hungup(void); … … 54 54 /* Notify filesystem that it was mounted */ 55 55 sysarg_t mounted(in sysarg_t dev_handle, in_copy string opts); 56 56 57 57 /* Mount filesystem */ 58 58 sysarg_t mount(in sysarg_t device, in sysarg_t flags, in sysarg_t instance, in_copy string point, in_copy string opts, ...); 59 59 60 60 /* Open file by node */ 61 61 sysarg_t open_node(in sysarg_t lflag, in sysarg_t oflag, in sysarg_t mode, ...); 62 62 63 63 /* Lookup file */ 64 64 sysarg_t lookup(in sysarg_t lflag, in sysarg_t oflag, in sysarg_t mode, ...); 65 65 66 66 /* Read data from file */ 67 67 sysarg_t read(in sysarg_t dev_handle, in sysarg_t fs_index, in sysarg_t offset, out_copy stream data); 68 68 69 69 /* Write data to file */ 70 70 sysarg_t write(in sysarg_t dev_handle, in sysarg_t fs_index, in sysarg_t offset, in_copy stream data); 71 71 72 72 /* Truncate file */ 73 73 sysarg_t truncate(in sysarg_t dev_handle, in sysarg_t fs_index, in sysarg_t size); 74 74 75 75 /* Get directory entry metadata */ 76 76 sysarg_t stat(in sysarg_t dev_handle, in sysarg_t fs_index, out_copy stream stat); 77 77 78 78 /* Flush file buffers */ 79 79 sysarg_t sync(in sysarg_t dev_handle, in sysarg_t fs_index); 80 80 81 81 /* Notify on file close */ 82 82 sysarg_t close(in sysarg_t dev_handle, in sysarg_t fs_index); … … 103 103 inst fat fat; 104 104 inst devfs devfs; 105 105 106 106 bind io_dispatcher:tmpfs to tmpfs:tmpfs; 107 107 bind io_dispatcher:fat to fat:fat; 108 108 bind io_dispatcher:devfs to devfs:devfs; 109 109 110 110 bind tmpfs:vfs to io_dispatcher:vfs; 111 111 bind fat:vfs to io_dispatcher:vfs; 112 112 bind devfs:vfs to io_dispatcher:vfs; 113 113 114 114 bind tmpfs:tmpfs_nested to tmpfs:tmpfs; 115 115 bind tmpfs:fat_nested to fat:fat; 116 116 bind tmpfs:devfs_nested to devfs:devfs; 117 117 118 118 bind fat:tmpfs_nested to tmpfs:tmpfs; 119 119 bind fat:fat_nested to fat:fat; 120 120 bind fat:devfs_nested to devfs:devfs; 121 121 122 122 delegate vfs to io_dispatcher:vfs; 123 123 124 124 [/uspace/lib/libc/subsume%io_dispatcher] 125 125 [/uspace/lib/libc/subsume%tmpfs] 126 126 [/uspace/lib/libc/subsume%fat] 127 127 [/uspace/lib/libc/subsume%devfs] 128 128 129 129 subsume io_dispatcher:ns to ns; 130 130 subsume tmpfs:ns to ns; 131 131 subsume fat:ns to ns; 132 132 subsume devfs:ns to ns; 133 133 134 134 subsume tmpfs:rd to rd; 135 135 subsume fat:rd to rd; 136 136 137 137 subsume devfs:devmap_client to devmap_client; 138 138 subsume devfs:device to device; -
contrib/arch/uspace/srv/vfs/vfs.bp
ra35b458 rf1380b7 9 9 } 10 10 } + 11 11 12 12 ?mount { 13 13 ?ipc_m_data_write /* mount point */ ; … … 51 51 } 52 52 } + 53 53 54 54 ?open { 55 55 tentative { … … 67 67 } 68 68 } + 69 69 70 70 ?open_node { 71 71 alternative (fs; tmpfs; fat; devfs) { … … 78 78 } 79 79 } + 80 80 81 81 ?close { 82 82 tentative { … … 88 88 } 89 89 } + 90 90 91 91 ?read { 92 92 tentative { … … 102 102 } 103 103 } + 104 104 105 105 ?write { 106 106 tentative { … … 116 116 } 117 117 } + 118 118 119 119 ?truncate { 120 120 tentative { … … 126 126 } 127 127 } + 128 128 129 129 ?fstat { 130 130 tentative { … … 140 140 } 141 141 } + 142 142 143 143 ?stat { 144 144 ?ipc_m_data_write /* path */ ; … … 156 156 } 157 157 } + 158 158 159 159 ?mkdir { 160 160 ?ipc_m_data_write /* path */ ; … … 165 165 } 166 166 } + 167 167 168 168 ?unlink { 169 169 ?ipc_m_data_write /* path */ ; … … 174 174 } 175 175 } + 176 176 177 177 ?rename { 178 178 ?ipc_m_data_write /* old path */ ; … … 198 198 } 199 199 } + 200 200 201 201 ?sync { 202 202 tentative { … … 206 206 } 207 207 } + 208 208 209 209 ?seek 210 210 211 211 )* ; 212 212 ?ipc_m_phone_hungup -
contrib/highlight/adl.syntax
ra35b458 rf1380b7 6 6 keyword whole frame yellow 7 7 keyword whole architecture yellow 8 8 9 9 keyword whole system yellow 10 10 keyword whole extends yellow 11 11 keyword whole version yellow 12 12 13 13 keyword whole inst yellow 14 14 keyword whole bind yellow … … 16 16 keyword whole subsume yellow 17 17 keyword whole delegate yellow 18 18 19 19 keyword whole sysarg_t yellow 20 20 keyword whole string yellow 21 21 keyword whole stream yellow 22 22 keyword whole void yellow 23 23 24 24 keyword whole in yellow 25 25 keyword whole in_copy yellow 26 26 keyword whole out yellow 27 27 keyword whole out_copy yellow 28 28 29 29 keyword whole protocol yellow 30 30 keyword whole initialization yellow … … 32 32 keyword whole provides yellow 33 33 keyword whole requires yellow 34 34 35 35 keyword /\* brown 36 36 keyword \*/ brown 37 37 keyword // brown 38 38 39 39 keyword { brightcyan 40 40 keyword } brightcyan 41 41 42 42 keyword ( brightcyan 43 43 keyword ) brightcyan 44 44 45 45 keyword , brightcyan 46 46 keyword : brightcyan 47 47 keyword ; brightmagenta 48 48 49 49 keyword [ brightblue black 50 50 keyword ] brightblue black -
contrib/highlight/bp.syntax
ra35b458 rf1380b7 6 6 keyword whole tentative yellow 7 7 keyword whole alternative yellow 8 8 9 9 keyword /\* brown 10 10 keyword \*/ brown 11 11 keyword # brown 12 12 13 13 keyword ! brightred 14 14 keyword ? brightgreen 15 15 16 16 keyword ( brightcyan 17 17 keyword ) brightcyan 18 18 19 19 keyword { brightcyan 20 20 keyword } brightcyan 21 21 22 22 keyword \+ brightmagenta 23 23 keyword ; brightmagenta 24 24 keyword \* brightmagenta 25 25 keyword | brightmagenta 26 26 27 27 keyword \. brightcyan 28 28 29 29 keyword [ brightblue black 30 30 keyword ] brightblue black -
contrib/tools/font/bdf2c.pl
ra35b458 rf1380b7 53 53 /^FONTBOUNDINGBOX\s/ and do { 54 54 ($skip, $width, $height, $offset_x, $offset_y) = (split); 55 55 56 56 die("Font width is not 8px\n") if ($width != 8); 57 57 die("Font height is not 16px\n") if ($height != 16); … … 70 70 my @glyph = (); 71 71 my $y; 72 72 73 73 # Add empty lines at top 74 74 my $empties = $height + $offset_y - $goffset_y - $gheight; 75 75 76 76 for ($y = 0; $y < $empties; $y++) { 77 77 $glyph[$y] = 0; 78 78 } 79 79 80 80 # Scan the hex bitmap 81 81 for ($y = $empties; $y < $empties + $gheight; $y++) { … … 83 83 $glyph[$y] = hex(substr($_, 0, 2)) >> $goffset_x; 84 84 } 85 85 86 86 # Add empty lines at bottom 87 87 my $fill = $height - $gheight - $empties; … … 89 89 $glyph[$y] = 0; 90 90 } 91 91 92 92 if ($index != 0) { 93 93 $glyphs[$index] = (\@glyph); … … 125 125 print "\t\treturn (ch - " . ($start - $start_pos) . ");\n"; 126 126 } 127 127 128 128 print "\t\n"; 129 129 } 130 130 131 131 $start = $index; 132 132 $start_pos = $pos; 133 133 } 134 134 135 135 $pos++; 136 136 $prev = $index; … … 145 145 for $index (@chars) { 146 146 print "\n\t{"; 147 147 148 148 my $y; 149 149 for ($y = 0; $y < $height; $y++) { … … 151 151 printf "0x%.2x", $glyphs[$index]->[$y]; 152 152 } 153 153 154 154 print "},"; 155 155 } -
doxygen/doxygen.cfg.diff
ra35b458 rf1380b7 4 4 # title of most generated pages and in a few other places. 5 5 # The default value is: My Project. 6 6 7 7 -PROJECT_NAME = "My Project" 8 8 +PROJECT_NAME = "HelenOS" 9 9 10 10 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This 11 11 # could be handy for archiving the generated documentation or if some version … … 13 13 # for a project that appears at the top of each page and should give viewer a 14 14 # quick idea about the purpose of the project. Keep the description short. 15 15 16 16 -PROJECT_BRIEF = 17 17 +PROJECT_BRIEF = " HelenOS is a portable microkernel-based multiserver operating system designed and implemented from scratch." 18 18 19 19 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included 20 20 # in the documentation. The maximum height of the logo should not exceed 55 … … 22 22 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING 23 23 # Note: If this tag is empty the current directory is searched. 24 24 25 25 -INPUT = 26 26 +INPUT = .. 27 27 28 28 # This tag can be used to specify the character encoding of the source files 29 29 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses … … 31 31 # be searched for input files as well. 32 32 # The default value is: NO. 33 33 34 34 -RECURSIVE = NO 35 35 +RECURSIVE = YES 36 36 37 37 # The EXCLUDE tag can be used to specify files and/or directories that should be 38 38 # excluded from the INPUT source files. This way you can easily exclude a -
kernel/Makefile
ra35b458 rf1380b7 308 308 test/thread/thread1.c \ 309 309 test/smpcall/smpcall1.c 310 310 311 311 ifeq ($(KARCH),mips32) 312 312 GENERIC_SOURCES += test/debug/mips1.c … … 314 314 GENERIC_SOURCES += test/debug/mips1_skip.c 315 315 endif 316 316 317 317 ifeq ($(KARCH),ia64) 318 318 GENERIC_SOURCES += test/mm/purge1.c … … 320 320 GENERIC_SOURCES += test/mm/purge1_skip.c 321 321 endif 322 322 323 323 endif 324 324 … … 428 428 $(OBJDUMP) -t $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) > $(DUMP) 429 429 $(GENMAP) $(MAP_PREV) $(DUMP) $@ 430 430 431 431 # Do it once again, this time to get correct even the symbols 432 432 # on architectures that have bss after symtab 433 433 434 434 echo "$(AS_PROLOG)""$(SYMTAB_SECTION)"" .incbin \"$@\"" | $(CC) $(CFLAGS) $(AS_CFLAGS) -x assembler -c -o $(SIZEOK_MAP) - 435 435 ifeq ($(CONFIG_LTO),y) -
kernel/arch/abs32le/Makefile.inc
ra35b458 rf1380b7 33 33 ATSIGN = % 34 34 endif 35 35 36 36 ifeq ($(CROSS_TARGET),mips32) 37 37 COMMON_CFLAGS += -mno-abicalls -
kernel/arch/abs32le/_link.ld.in
ra35b458 rf1380b7 16 16 *(.bss); /* uninitialized static variables */ 17 17 *(COMMON); /* global variables */ 18 18 19 19 *(.rodata*); 20 20 *(.sdata); … … 28 28 *(.scommon); 29 29 } 30 30 31 31 kdata_end = .; 32 32 33 33 /DISCARD/ : { 34 34 *(.mdebug*); -
kernel/arch/amd64/_link.ld.in
ra35b458 rf1380b7 17 17 *(K_TEXT_START); 18 18 unmapped_ktext_end = .; 19 19 20 20 unmapped_kdata_start = .; 21 21 *(K_DATA_START); … … 23 23 unmapped_kdata_end = .; 24 24 } 25 25 26 26 .mapped (PA2KA(BOOT_OFFSET)+SIZEOF(.unmapped)) : AT (SIZEOF(.unmapped)) { 27 27 ktext_start = .; 28 28 *(.text .text.*); 29 29 ktext_end = .; 30 30 31 31 kdata_start = .; 32 32 *(.data); /* initialized data */ … … 43 43 QUAD(unmapped_kdata_end - unmapped_kdata_start); 44 44 *(COMMON); /* global variables */ 45 45 46 46 . = ALIGN(8); 47 47 symbol_table = .; 48 48 *(symtab.*); /* Symbol table, must be LAST symbol!*/ 49 49 50 50 *(.bss); /* uninitialized static variables */ 51 51 52 52 kdata_end = .; 53 53 } 54 54 55 55 #ifdef CONFIG_LINE_DEBUG 56 56 .comment 0 : { *(.comment); } … … 65 65 .debug_str 0 : { *(.debug_str); } 66 66 #endif 67 67 68 68 /DISCARD/ : { 69 69 *(*); 70 70 } 71 71 72 72 #ifdef CONFIG_SMP 73 73 _hardcoded_unmapped_size = (unmapped_ktext_end - unmapped_ktext_start) + (unmapped_kdata_end - unmapped_kdata_start); … … 76 76 protected_ap_gdtr = PA2KA(ap_gdtr); 77 77 #endif /* CONFIG_SMP */ 78 78 79 79 } -
kernel/arch/amd64/src/boot/vesa_ret.inc
ra35b458 rf1380b7 3 3 cli 4 4 cld 5 5 6 6 /* Initialize stack pointer */ 7 7 movl $START_STACK, %esp 8 8 9 9 /* Kernel data + stack */ 10 10 movw $GDT_SELECTOR(KDATA_DES), %cx … … 12 12 movw %cx, %ds 13 13 movw %cx, %ss 14 14 15 15 /* 16 16 * Simics seems to remove hidden part of GS on entering user mode 17 17 * when _visible_ part of GS does not point to user-mode segment. 18 18 */ 19 19 20 20 movw $GDT_SELECTOR(UDATA_DES), %cx 21 21 movw %cx, %fs 22 22 movw %cx, %gs 23 23 24 24 jmpl $GDT_SELECTOR(KTEXT32_DES), $vesa_meeting_point -
kernel/arch/arm32/_link.ld.in
ra35b458 rf1380b7 40 40 *(.bss); /* uninitialized static variables */ 41 41 *(COMMON); /* global variables */ 42 42 43 43 *(.rodata*); 44 44 *(.sdata); … … 52 52 *(.scommon); 53 53 } 54 54 55 55 kdata_end = .; 56 56 57 57 /DISCARD/ : { 58 58 *(.mdebug*); -
kernel/arch/ia32/_link.ld.in
ra35b458 rf1380b7 17 17 *(K_TEXT_START); 18 18 unmapped_ktext_end = .; 19 19 20 20 unmapped_kdata_start = .; 21 21 *(K_DATA_START); 22 22 unmapped_kdata_end = .; 23 23 } 24 24 25 25 .mapped (PA2KA(BOOT_OFFSET)+SIZEOF(.unmapped)): AT (SIZEOF(.unmapped)) { 26 26 ktext_start = .; 27 27 *(.text .text.*); 28 28 ktext_end = .; 29 29 30 30 kdata_start = .; 31 31 *(.data); /* initialized data */ … … 48 48 kdata_end = .; 49 49 } 50 50 51 51 #ifdef CONFIG_LINE_DEBUG 52 52 .comment 0 : { *(.comment); } … … 61 61 .debug_str 0 : { *(.debug_str); } 62 62 #endif 63 63 64 64 /DISCARD/ : { 65 65 *(*); 66 66 } 67 67 68 68 #ifdef CONFIG_SMP 69 69 70 70 _hardcoded_unmapped_size = (unmapped_ktext_end - unmapped_ktext_start) + (unmapped_kdata_end - unmapped_kdata_start); 71 71 ap_boot = unmapped_ap_boot - BOOT_OFFSET + AP_BOOT_OFFSET; 72 72 ap_gdtr = unmapped_ap_gdtr - BOOT_OFFSET + AP_BOOT_OFFSET; 73 73 protected_ap_gdtr = PA2KA(ap_gdtr); 74 74 75 75 #endif /* CONFIG_SMP */ 76 76 77 77 } -
kernel/arch/ia32/src/boot/vesa_prot.inc
ra35b458 rf1380b7 5 5 6 6 /* Copy real mode VESA initialization code */ 7 7 8 8 pm_status $status_vesa_copy 9 9 10 10 mov $vesa_init, %esi 11 11 mov $VESA_INIT_SEGMENT << 4, %edi 12 12 mov $e_vesa_init - vesa_init, %ecx 13 13 rep movsb 14 14 15 15 /* Check for multiboot command line */ 16 16 17 17 pm_status $status_multiboot_cmdline 18 18 19 19 mov multiboot_eax, %eax 20 20 cmp $MULTIBOOT_LOADER_MAGIC, %eax 21 21 jne no_cmdline 22 22 23 23 mov multiboot_ebx, %ebx 24 24 mov (%ebx), %eax 25 25 bt $MBINFO_BIT_CMDLINE, %eax 26 26 jnc no_cmdline 27 27 28 28 /* Skip the kernel path in command line */ 29 29 30 30 mov MBINFO_OFFSET_CMDLINE(%ebx), %esi 31 31 32 32 skip_loop: 33 33 lodsb 34 34 35 35 cmp $0, %al 36 36 je no_cmdline 37 37 38 38 cmp $' ', %al 39 39 je skip_loop_done 40 40 41 41 jmp skip_loop 42 42 skip_loop_done: 43 43 44 44 space_loop: 45 45 mov (%esi), %al 46 46 47 47 cmp $0, %al 48 48 je no_cmdline 49 49 50 50 cmp $' ', %al 51 51 jne space_loop_done 52 52 53 53 inc %esi 54 54 jmp space_loop 55 55 space_loop_done: 56 56 57 57 /* Copy at most 23 characters from command line */ 58 58 59 59 mov $VESA_INIT_SEGMENT << 4, %edi 60 60 add $default_mode - vesa_init, %edi 61 61 mov $23, %ecx 62 62 63 63 cmd_loop: 64 64 lodsb 65 65 stosb 66 66 67 67 cmp $0, %al 68 68 je cmd_loop_done 69 69 70 70 loop cmd_loop 71 71 cmd_loop_done: 72 72 73 73 /* Zero termination */ 74 74 75 75 xor %eax, %eax 76 76 stosb 77 77 78 78 no_cmdline: 79 79 80 80 /* Jump to the real mode */ 81 81 82 82 pm_status $status_vesa_real 83 83 84 84 mov $VESA_INIT_SEGMENT << 4, %edi 85 85 jmpl *%edi 86 86 87 87 vesa_meeting_point: 88 88 /* Returned back to protected mode */ 89 89 90 90 /* 91 91 * Initialize Global Descriptor Table and … … 94 94 lgdtl bootstrap_gdtr 95 95 lidtl bootstrap_idtr 96 96 97 97 movzx %ax, %ecx 98 98 mov %ecx, KA2PA(bfb_scanline) 99 99 100 100 shr $16, %eax 101 101 mov %ax, KA2PA(bfb_bpp) 102 102 103 103 movzx %bx, %ecx 104 104 mov %ecx, KA2PA(bfb_height) 105 105 106 106 shr $16, %ebx 107 107 mov %ebx, KA2PA(bfb_width) 108 108 109 109 mov %dl, KA2PA(bfb_green_pos) 110 110 111 111 shr $8, %edx 112 112 mov %dl, KA2PA(bfb_green_size) 113 113 114 114 shr $8, %edx 115 115 mov %dl, KA2PA(bfb_red_pos) 116 116 117 117 shr $8, %edx 118 118 mov %dl, KA2PA(bfb_red_size) 119 119 120 120 mov %esi, %edx 121 121 mov %dl, KA2PA(bfb_blue_pos) 122 122 123 123 shr $8, %edx 124 124 mov %dl, KA2PA(bfb_blue_size) 125 125 126 126 mov %edi, KA2PA(bfb_addr) 127 127 #endif -
kernel/arch/ia32/src/boot/vesa_real.inc
ra35b458 rf1380b7 31 31 vesa_init: 32 32 lidtl vesa_idtr 33 33 34 34 mov $GDT_SELECTOR(VESA_INIT_DATA_DES), %bx 35 35 36 36 mov %bx, %es 37 37 mov %bx, %fs … … 39 39 mov %bx, %ds 40 40 mov %bx, %ss 41 41 42 42 jmp $GDT_SELECTOR(VESA_INIT_CODE_DES), $vesa_init_real - vesa_init 43 43 … … 51 51 and $~CR0_PE, %eax 52 52 mov %eax, %cr0 53 53 54 54 jmp $VESA_INIT_SEGMENT, $vesa_init_real2 - vesa_init 55 55 56 56 vesa_init_real2: 57 57 mov $VESA_INIT_SEGMENT, %bx 58 58 59 59 mov %bx, %es 60 60 mov %bx, %fs … … 62 62 mov %bx, %ds 63 63 mov %bx, %ss 64 64 65 65 movl %esp, %eax 66 66 movl $0x0000fffc, %esp 67 67 movl $0x0000fffc, %ebp 68 68 pushl %eax 69 69 70 70 /* Parse default mode string */ 71 71 72 72 mov $default_mode - vesa_init, %di 73 73 xor %eax, %eax 74 74 xor %ebx, %ebx 75 75 76 76 mov $8, %ecx 77 77 parse_width: 78 78 mov (%di), %al 79 79 80 80 /* Check for digit */ 81 81 82 82 cmp $'0', %al 83 83 jb parse_width_done 84 84 85 85 cmp $'9', %al 86 86 ja parse_width_done 87 87 88 88 sub $'0', %al 89 89 90 90 /* Multiply default_width by 10 and add digit */ 91 91 92 92 mov default_width - vesa_init, %bx 93 93 lea (%ebx, %ebx, 4), %ebx … … 95 95 add %ax, %bx 96 96 mov %bx, default_width - vesa_init 97 97 98 98 inc %di 99 99 loop parse_width 100 100 parse_width_done: 101 101 102 102 mov (%di), %al 103 103 cmp $0, %al 104 104 jz parse_done 105 105 inc %di 106 106 107 107 mov $8, %ecx 108 108 parse_height: 109 109 mov (%di), %al 110 110 111 111 /* Check for digit */ 112 112 113 113 cmp $'0', %al 114 114 jb parse_height_done 115 115 116 116 cmp $'9', %al 117 117 ja parse_height_done 118 118 119 119 sub $'0', %al 120 120 121 121 /* Multiply default_height by 10 and add digit */ 122 122 123 123 mov default_height - vesa_init, %bx 124 124 lea (%ebx, %ebx, 4), %ebx … … 126 126 add %ax, %bx 127 127 mov %bx, default_height - vesa_init 128 128 129 129 inc %di 130 130 loop parse_height 131 131 parse_height_done: 132 132 133 133 mov (%di), %al 134 134 cmp $0, %al 135 135 jz parse_done 136 136 inc %di 137 137 138 138 mov $4, %ecx 139 139 parse_bpp: 140 140 mov (%di), %al 141 141 142 142 /* Check for digit */ 143 143 144 144 cmp $'0', %al 145 145 jb parse_bpp_done 146 146 147 147 cmp $'9', %al 148 148 ja parse_bpp_done 149 149 150 150 sub $'0', %al 151 151 152 152 /* Multiply default_bpp by 10 and add digit */ 153 153 154 154 mov default_bpp - vesa_init, %bx 155 155 lea (%ebx, %ebx, 4), %ebx … … 157 157 add %ax, %bx 158 158 mov %bx, default_bpp - vesa_init 159 159 160 160 inc %di 161 161 loop parse_bpp 162 162 parse_bpp_done: 163 163 164 164 parse_done: 165 165 166 166 mov $VESA_GET_INFO, %ax 167 167 mov $e_vesa_init - vesa_init, %di … … 178 178 movl $0x32454256, (%di) 179 179 int $0x10 180 180 181 181 pop %di 182 182 cmp $VESA_OK, %al 183 183 jnz no_mode 184 184 185 185 mov 2 + VESA_MODE_LIST_PTR_OFFSET(%di), %si 186 186 mov %si, %gs 187 187 mov VESA_MODE_LIST_PTR_OFFSET(%di), %si 188 188 189 189 add $VESA_INFO_SIZE, %di 190 190 191 191 next_mode: 192 192 /* Try next mode */ 193 193 194 194 mov %gs:(%si), %cx 195 195 cmp $VESA_END_OF_MODES, %cx 196 196 je no_mode 197 197 198 198 inc %si 199 199 inc %si … … 203 203 mov $VESA_GET_MODE_INFO, %ax 204 204 int $0x10 205 205 206 206 pop %si 207 207 pop %di … … 209 209 cmp $VESA_OK, %al 210 210 jne no_mode 211 211 212 212 /* 213 213 * Check for proper attributes (supported, 214 214 * color, graphics, linear framebuffer). 215 215 */ 216 216 217 217 mov VESA_MODE_ATTRIBUTES_OFFSET(%di), %ax 218 218 and $0x99, %ax 219 219 cmp $0x99, %ax 220 220 jne next_mode 221 221 222 222 /* Check for proper resolution */ 223 223 224 224 mov default_width - vesa_init, %ax 225 225 cmp VESA_MODE_WIDTH_OFFSET(%di), %ax 226 226 jne next_mode 227 227 228 228 mov default_height - vesa_init, %ax 229 229 cmp VESA_MODE_HEIGHT_OFFSET(%di), %ax 230 230 jne next_mode 231 231 232 232 /* Check for proper bpp */ 233 233 234 234 mov default_bpp - vesa_init, %al 235 235 cmp VESA_MODE_BPP_OFFSET(%di), %al 236 236 je set_mode 237 237 238 238 mov $24, %al 239 239 cmp default_bpp - vesa_init, %al 240 240 jne next_mode 241 241 242 242 /* For 24 bpp modes accept also 32 bit bpp */ 243 243 244 244 mov $32, %al 245 245 cmp VESA_MODE_BPP_OFFSET(%di), %al 246 246 jne next_mode 247 247 248 248 set_mode: 249 249 mov %cx, %bx … … 252 252 mov $VESA_SET_MODE, %ax 253 253 int $0x10 254 254 255 255 pop %di 256 256 cmp $VESA_OK, %al 257 257 jnz no_mode 258 258 259 259 /* Set 3:2:3 VGA palette */ 260 260 261 261 mov VESA_MODE_BPP_OFFSET(%di), %al 262 262 cmp $8, %al 263 263 jnz vga_not_set 264 264 265 265 mov VESA_MODE_ATTRIBUTES_OFFSET(%di), %ax 266 266 push %di 267 267 mov $vga323 - vesa_init, %di 268 268 mov $0x100, %ecx 269 269 270 270 /* Test if VGA compatible registers are present */ 271 271 bt $5, %ax 272 272 jnc vga_compat 273 273 274 274 /* Use VESA routine to set the palette */ 275 275 276 276 mov $VESA_SET_PALETTE, %ax 277 277 xor %bl, %bl 278 278 xor %dx, %dx 279 279 int $0x10 280 280 281 281 cmp $0x00, %ah 282 282 je vga_not_compat 283 283 284 284 vga_compat: 285 285 286 286 /* Use VGA registers to set the palette */ 287 287 288 288 movw $0x3c6, %dx /* set palette mask */ 289 289 movb $0xff, %al 290 290 outb %al, %dx 291 291 292 292 movw $0x3c8, %dx /* first index to set */ 293 293 xor %al, %al 294 294 outb %al, %dx 295 295 296 296 movw $0x3c9, %dx /* data port */ 297 297 298 298 vga_loop: 299 299 movb %es:2(%di), %al 300 300 outb %al, %dx 301 301 302 302 movb %es:1(%di), %al 303 303 outb %al, %dx 304 304 305 305 movb %es:(%di), %al 306 306 outb %al, %dx 307 307 308 308 addw $4, %di 309 309 loop vga_loop 310 310 311 311 vga_not_compat: 312 312 313 313 pop %di 314 314 315 315 vga_not_set: 316 316 317 317 /* 318 318 * Store mode parameters: … … 323 323 * edi = linear frame buffer 324 324 */ 325 325 326 326 mov VESA_MODE_BPP_OFFSET(%di), %al 327 327 xor %ah, %ah 328 328 shl $16, %eax 329 329 mov VESA_MODE_SCANLINE_OFFSET(%di), %ax 330 330 331 331 mov VESA_MODE_WIDTH_OFFSET(%di), %bx 332 332 shl $16, %ebx 333 333 mov VESA_MODE_HEIGHT_OFFSET(%di), %bx 334 334 335 335 mov VESA_MODE_BLUE_MASK_OFFSET(%di), %dl 336 336 shl $8, %edx 337 337 mov VESA_MODE_BLUE_POS_OFFSET(%di), %dl 338 338 mov %edx, %esi 339 339 340 340 mov VESA_MODE_RED_MASK_OFFSET(%di), %dl 341 341 shl $8, %edx 342 342 mov VESA_MODE_RED_POS_OFFSET(%di), %dl 343 343 344 344 shl $8, %edx 345 345 mov VESA_MODE_GREEN_MASK_OFFSET(%di), %dl 346 346 shl $8, %edx 347 347 mov VESA_MODE_GREEN_POS_OFFSET(%di), %dl 348 348 349 349 mov VESA_MODE_PHADDR_OFFSET(%di), %edi 350 350 351 351 vesa_leave_real: 352 352 353 353 mov %cr0, %ecx 354 354 or $CR0_PE, %ecx 355 355 mov %ecx, %cr0 356 356 357 357 jmp vesa_leave_real2 358 358 359 359 vesa_leave_real2: 360 360 361 361 ljmpl $GDT_SELECTOR(KTEXT32_DES), $(vesa_init_protected - vesa_init + VESA_INIT_SEGMENT << 4) 362 362 363 363 no_mode: 364 364 365 365 /* No prefered mode found */ 366 366 367 367 mov $0x111, %cx 368 368 push %di … … 370 370 mov $VESA_GET_MODE_INFO, %ax 371 371 int $0x10 372 372 373 373 pop %cx 374 374 pop %di … … 376 376 jnz text_mode 377 377 jz set_mode /* force relative jump */ 378 378 379 379 text_mode: 380 380 381 381 /* Reset to EGA text mode (because of problems with VESA) */ 382 382 383 383 mov $0x0003, %ax 384 384 int $0x10 385 385 386 386 xor %eax, %eax 387 387 xor %ebx, %ebx 388 388 xor %edx, %edx 389 389 xor %edi, %edi 390 390 391 391 jz vesa_leave_real /* force relative jump */ 392 392 -
kernel/arch/ia32/src/boot/vesa_ret.inc
ra35b458 rf1380b7 3 3 cli 4 4 cld 5 5 6 6 /* Initialize stack pointer */ 7 7 movl $START_STACK, %esp 8 8 9 9 /* Kernel data + stack */ 10 10 movw $GDT_SELECTOR(KDATA_DES), %cx … … 14 14 movw %cx, %ds 15 15 movw %cx, %ss 16 16 17 17 jmpl $GDT_SELECTOR(KTEXT_DES), $vesa_meeting_point -
kernel/arch/ia64/_link.ld.in
ra35b458 rf1380b7 18 18 *(.text .text.*) 19 19 ktext_end = .; 20 20 21 21 kdata_start = .; 22 22 *(K_DATA_START) … … 37 37 *(.bss) 38 38 *(COMMON); 39 39 40 40 . = ALIGN(8); 41 41 symbol_table = .; 42 42 *(symtab.*); /* Symbol table, must be LAST symbol!*/ 43 43 44 44 kdata_end = .; 45 45 } 46 46 47 47 /DISCARD/ : { 48 48 *(*); -
kernel/arch/mips32/_link.ld.in
ra35b458 rf1380b7 51 51 .lit8 : { *(.lit8) } 52 52 .lit4 : { *(.lit4) } 53 53 54 54 kdata_end = .; 55 55 56 56 /DISCARD/ : { 57 57 *(.mdebug*); -
kernel/arch/ppc32/_link.ld.in
ra35b458 rf1380b7 22 22 *(K_UNMAPPED_TEXT_START); 23 23 unmapped_ktext_end = .; 24 24 25 25 unmapped_kdata_start = .; 26 26 *(K_UNMAPPED_DATA_START); 27 27 unmapped_kdata_start = .; 28 28 } 29 29 30 30 .mapped PA2KA(BOOT_OFFSET): AT (BOOT_OFFSET) { 31 31 ktext_start = .; … … 33 33 *(.text); 34 34 ktext_end = .; 35 35 36 36 kdata_start = .; 37 37 *(K_DATA_START); … … 49 49 *(.bss); /* uninitialized static variables */ 50 50 *(COMMON); /* global variables */ 51 51 52 52 . = ALIGN(8); 53 53 symbol_table = .; 54 54 *(symtab.*); /* Symbol table, must be LAST symbol!*/ 55 55 56 56 kdata_end = .; 57 57 } -
kernel/arch/riscv64/_link.ld.in
ra35b458 rf1380b7 19 19 *(.text); 20 20 ktext_end = .; 21 21 22 22 kdata_start = .; 23 23 *(.data); /* initialized data */ … … 40 40 kdata_end = .; 41 41 } 42 42 43 43 /DISCARD/ : { 44 44 *(.mdebug*); -
kernel/arch/sparc64/_link.ld.in
ra35b458 rf1380b7 17 17 *(.text .text.*); 18 18 ktext_end = .; 19 19 20 20 kdata_start = .; 21 21 *(K_DATA_START) … … 34 34 *(.bss); /* uninitialized static variables */ 35 35 *(COMMON); /* global variables */ 36 36 37 37 . = ALIGN(8); 38 38 symbol_table = .; 39 39 *(symtab.*); /* Symbol table, must be LAST symbol!*/ 40 40 41 41 kdata_end = .; 42 42 } 43 43 44 44 /DISCARD/ : { 45 45 *(*); 46 46 } 47 47 48 48 } -
tools/toolchain-binutils-2.23.1.patch
ra35b458 rf1380b7 127 127 ia64-*-hpux*) fmt=elf em=hpux ;; 128 128 ia64-*-netbsd*) fmt=elf em=nbsd ;; 129 129 130 130 @@ -304,7 +305,7 @@ 131 131 mips-*-irix*) fmt=ecoff em=irix ;; -
uspace/app/bdsh/cmds/modules/printf/TODO
ra35b458 rf1380b7 11 11 * Add width/precision options for number printings 12 12 * Add more format flags (%f %b ...) 13 -
uspace/app/vuhid/Makefile
ra35b458 rf1380b7 45 45 stdreq.c \ 46 46 $(SOURCES_INTERFACES) 47 47 48 48 49 49 include $(USPACE_PREFIX)/Makefile.common -
uspace/dist/src/bithenge/gif/gif.bh
ra35b458 rf1380b7 86 86 .width <- word; 87 87 .height <- word; 88 88 89 89 <- struct { 90 90 .use_local_color_map <- bit; … … 93 93 .bits_per_pixel <- (in + 1) <- uint_be(3); 94 94 } <- bits_be <- known_length(1); 95 95 96 96 if (.use_local_color_map) { 97 97 .local_color_map <- gif_color_map_from_bits_per_pixel(.bits_per_pixel); 98 98 } 99 99 100 100 .lzw_initial_size <- uint8; 101 101 .lzw_data <- generic_data_block; -
uspace/lib/c/arch/abs32le/_link.ld.in
ra35b458 rf1380b7 18 18 . = 0x1000 + SIZEOF_HEADERS; 19 19 #endif 20 20 21 21 .text : { 22 22 *(.text .text.*); 23 23 *(.rodata .rodata.*); 24 24 } :text 25 25 26 26 #ifdef LOADER 27 27 .interp : { … … 29 29 } :interp :text 30 30 #endif 31 31 32 32 . = . + 0x1000; 33 33 34 34 .data : { 35 35 *(.data); 36 36 *(.data.rel*); 37 37 } :data 38 38 39 39 .tdata : { 40 40 _tdata_start = .; … … 46 46 _tbss_end = .; 47 47 } :data 48 48 49 49 _tls_alignment = ALIGNOF(.tdata); 50 50 51 51 .sbss : { 52 52 *(.scommon); 53 53 *(.sbss); 54 54 } 55 55 56 56 .bss : { 57 57 *(COMMON); 58 58 *(.bss); 59 59 } :data 60 60 61 61 /DISCARD/ : { 62 62 *(*); -
uspace/lib/c/arch/amd64/_link.ld.in
ra35b458 rf1380b7 19 19 . = 0x1000 + SIZEOF_HEADERS; 20 20 #endif 21 21 22 22 .init : { 23 23 *(.init); 24 24 } :text 25 25 26 26 .text : { 27 27 *(.text .text.*); 28 28 *(.rodata .rodata.*); 29 29 } :text 30 30 31 31 #ifdef LOADER 32 32 .interp : { … … 34 34 } :interp :text 35 35 #endif 36 36 37 37 . = . + 0x1000; 38 38 39 39 .data : { 40 40 *(.data); 41 41 *(.data.rel*); 42 42 } :data 43 43 44 44 .tdata : { 45 45 _tdata_start = .; … … 50 50 _tbss_end = .; 51 51 } :data 52 52 53 53 _tls_alignment = ALIGNOF(.tdata); 54 54 55 55 .bss : { 56 56 *(COMMON); 57 57 *(.bss); 58 58 } :data 59 59 60 60 #ifdef CONFIG_LINE_DEBUG 61 61 .comment 0 : { *(.comment); } :debug … … 70 70 .debug_str 0 : { *(.debug_str); } :debug 71 71 #endif 72 72 73 73 /DISCARD/ : { 74 74 *(*); -
uspace/lib/c/arch/arm32/_link.ld.in
ra35b458 rf1380b7 18 18 . = 0x1000 + SIZEOF_HEADERS; 19 19 #endif 20 20 21 21 .init : { 22 22 *(.init); 23 23 } :text 24 24 25 25 .text : { 26 26 *(.text .text.*); 27 27 *(.rodata .rodata.*); 28 28 } :text 29 29 30 30 #ifdef LOADER 31 31 .interp : { … … 33 33 } :interp :text 34 34 #endif 35 35 36 36 . = . + 0x1000; 37 37 38 38 .data : { 39 39 *(.opd); … … 41 41 *(.sdata); 42 42 } :data 43 43 44 44 .tdata : { 45 45 _tdata_start = .; … … 50 50 _tbss_end = .; 51 51 } :data 52 52 53 53 _tls_alignment = ALIGNOF(.tdata); 54 54 55 55 .bss : { 56 56 *(.sbss); … … 59 59 *(.bss); 60 60 } :data 61 61 62 62 /DISCARD/ : { 63 63 *(*); -
uspace/lib/c/arch/ia32/_link.ld.in
ra35b458 rf1380b7 25 25 . = 0x1000 + SIZEOF_HEADERS; 26 26 #endif 27 27 28 28 .init : { 29 29 *(.init); 30 30 } :text 31 31 32 32 .text : { 33 33 *(.text .text.*); 34 34 *(.rodata .rodata.*); 35 35 } :text 36 36 37 37 #if defined(SHLIB) || defined(DLEXE) 38 38 .rel.plt : { … … 46 46 *(.rel.*); 47 47 } :text 48 48 49 49 .plt : { 50 50 *(.plt); 51 51 } :text 52 52 53 53 .dynsym : { 54 54 *(.dynsym); 55 55 } :text 56 56 57 57 .dynstr : { 58 58 *(.dynstr); 59 59 } :text 60 60 61 61 .hash : { 62 62 *(.hash); 63 63 } :text 64 64 #endif 65 65 66 66 #if defined(LOADER) || defined(DLEXE) 67 67 .interp : { … … 69 69 } :interp :text 70 70 #endif 71 71 72 72 . = . + 0x1000; 73 73 74 74 #if defined(SHLIB) || defined(DLEXE) 75 75 .dynamic : { … … 77 77 } :data :dynamic 78 78 #endif 79 79 80 80 .data : { 81 81 *(.data); 82 82 } :data 83 83 84 84 #if defined(SHLIB) || defined(DLEXE) 85 85 .data.rel : { 86 86 *(.data.rel .data.rel.*); 87 87 } :data 88 88 89 89 .got : { 90 90 *(.got); 91 91 } :data 92 92 93 93 .got.plt : { 94 94 *(.got.plt); 95 95 } :data 96 96 #endif 97 97 98 98 .tdata : { 99 99 _tdata_start = .; … … 107 107 _tbss_end = .; 108 108 } :data :tls 109 109 110 110 _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)); 111 111 112 112 .bss : { 113 113 *(.dynbss); … … 115 115 *(.bss); 116 116 } :data 117 117 118 118 #ifdef CONFIG_LINE_DEBUG 119 119 .comment 0 : { *(.comment); } :debug … … 128 128 .debug_str 0 : { *(.debug_str); } :debug 129 129 #endif 130 130 131 131 /DISCARD/ : { 132 132 *(*); -
uspace/lib/c/arch/ia64/_link.ld.in
ra35b458 rf1380b7 18 18 . = 0x4000 + SIZEOF_HEADERS; 19 19 #endif 20 20 21 21 /* Workaround proper alignment of the .init section */ 22 22 . = ALIGN(., 16); 23 23 24 24 .init : { 25 25 *(.init); 26 26 } :text 27 27 28 28 .text : { 29 29 *(.text .text.*); 30 30 *(.rodata .rodata.*); 31 31 } :text 32 32 33 33 #ifdef LOADER 34 34 .interp : { … … 36 36 } :interp :text 37 37 #endif 38 38 39 39 . = . + 0x4000; 40 40 41 41 .got : { 42 42 /* Tell the linker where we expect GP to point. */ … … 44 44 *(.got .got.*); 45 45 } :data 46 46 47 47 .data : { 48 48 *(.opd); … … 50 50 *(.sdata); 51 51 } :data 52 52 53 53 .tdata : { 54 54 _tdata_start = .; … … 59 59 _tbss_end = .; 60 60 } :data 61 61 62 62 _tls_alignment = ALIGNOF(.tdata); 63 63 64 64 .bss : { 65 65 *(.sbss); … … 68 68 *(.bss); 69 69 } :data 70 70 71 71 /DISCARD/ : { 72 72 *(*); -
uspace/lib/c/arch/mips32/_link.ld.in
ra35b458 rf1380b7 18 18 . = 0x4000 + SIZEOF_HEADERS; 19 19 #endif 20 20 21 21 .init : { 22 22 *(.init); 23 23 } :text 24 24 25 25 .text : { 26 26 *(.text .text.*); 27 27 *(.rodata .rodata.*); 28 28 } :text 29 29 30 30 #ifdef LOADER 31 31 .interp : { … … 33 33 } :interp :text 34 34 #endif 35 35 36 36 . = . + 0x4000; 37 37 38 38 .data : { 39 39 *(.data); 40 40 *(.data.rel*); 41 41 } :data 42 42 43 43 .got : { 44 44 _gp = .; 45 45 *(.got); 46 46 } :data 47 47 48 48 .tdata : { 49 49 _tdata_start = .; … … 51 51 _tdata_end = .; 52 52 } :data 53 53 54 54 .tbss : { 55 55 _tbss_start = .; … … 57 57 _tbss_end = .; 58 58 } :data 59 59 60 60 _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss)); 61 61 62 62 .sbss : { 63 63 *(.scommon); 64 64 *(.sbss); 65 65 } 66 66 67 67 .bss : { 68 68 *(.bss); 69 69 *(COMMON); 70 70 } :data 71 71 72 72 /DISCARD/ : { 73 73 *(*); -
uspace/lib/c/arch/ppc32/_link.ld.in
ra35b458 rf1380b7 19 19 . = 0x1000 + SIZEOF_HEADERS; 20 20 #endif 21 21 22 22 .init : { 23 23 *(.init); 24 24 } :text 25 25 26 26 .text : { 27 27 *(.text .text.*); 28 28 *(.rodata .rodata.*); 29 29 } :text 30 30 31 31 #ifdef LOADER 32 32 .interp : { … … 34 34 } :interp :text 35 35 #endif 36 36 37 37 . = . + 0x1000; 38 38 39 39 .data : { 40 40 *(.data); 41 41 *(.sdata); 42 42 } :data 43 43 44 44 .tdata : { 45 45 _tdata_start = .; … … 50 50 _tbss_end = .; 51 51 } :data 52 52 53 53 _tls_alignment = ALIGNOF(.tdata); 54 54 55 55 .bss : { 56 56 *(.sbss); … … 58 58 *(.bss); 59 59 } :data 60 60 61 61 #ifdef CONFIG_LINE_DEBUG 62 62 .comment 0 : { *(.comment); } :debug … … 71 71 .debug_str 0 : { *(.debug_str); } :debug 72 72 #endif 73 73 74 74 /DISCARD/ : { 75 75 *(*); -
uspace/lib/c/arch/riscv64/_link.ld.in
ra35b458 rf1380b7 19 19 . = 0x1000 + SIZEOF_HEADERS; 20 20 #endif 21 21 22 22 .text : { 23 23 *(.text .text.*); … … 25 25 *(.srodata .srodata.*); 26 26 } :text 27 27 28 28 #ifdef LOADER 29 29 .interp : { … … 31 31 } :interp :text 32 32 #endif 33 33 34 34 . = . + 0x1000; 35 35 36 36 .data : { 37 37 *(.data); … … 39 39 *(.data.rel*); 40 40 } :data 41 41 42 42 .tdata : { 43 43 _tdata_start = .; … … 49 49 _tbss_end = .; 50 50 } :data 51 51 52 52 _tls_alignment = ALIGNOF(.tdata); 53 53 54 54 .sbss : { 55 55 *(.scommon); 56 56 *(.sbss); 57 57 } 58 58 59 59 .bss : { 60 60 *(COMMON); 61 61 *(.bss); 62 62 } :data 63 63 64 64 #ifdef CONFIG_LINE_DEBUG 65 65 .comment 0 : { *(.comment); } :debug … … 74 74 .debug_str 0 : { *(.debug_str); } :debug 75 75 #endif 76 76 77 77 /DISCARD/ : { 78 78 *(*); -
uspace/lib/c/arch/sparc64/_link.ld.in
ra35b458 rf1380b7 19 19 . = 0x4000 + SIZEOF_HEADERS; 20 20 #endif 21 21 22 22 .init : { 23 23 *(.init); 24 24 } :text 25 25 26 26 .text : { 27 27 *(.text .text.*); 28 28 *(.rodata .rodata.*); 29 29 } :text 30 30 31 31 #ifdef LOADER 32 32 .interp : { … … 34 34 } :interp :text 35 35 #endif 36 36 37 37 . = . + 0x4000; 38 38 39 39 .got : { 40 40 _gp = .; 41 41 *(.got*); 42 42 } :data 43 43 44 44 .data : { 45 45 *(.data); 46 46 *(.sdata); 47 47 } :data 48 48 49 49 .tdata : { 50 50 _tdata_start = .; … … 55 55 _tbss_end = .; 56 56 } :data 57 57 58 58 _tls_alignment = ALIGNOF(.tdata); 59 59 60 60 .bss : { 61 61 *(.sbss); … … 63 63 *(.bss); 64 64 } :data 65 65 66 66 #ifdef CONFIG_LINE_DEBUG 67 67 .comment 0 : { *(.comment); } :debug … … 76 76 .debug_str 0 : { *(.debug_str); } :debug 77 77 #endif 78 78 79 79 /DISCARD/ : { 80 80 *(*); -
uspace/lib/pcut/README.rst
ra35b458 rf1380b7 33 33 #include <pcut/pcut.h> 34 34 #include <stdlib.h> 35 35 36 36 PCUT_INIT 37 37 38 38 PCUT_TEST(atoi_zero) { 39 39 PCUT_ASSERT_INT_EQUALS(0, atoi("0")); 40 40 } 41 41 42 42 PCUT_TEST(atoi_positive) { 43 43 PCUT_ASSERT_INT_EQUALS(42, atoi("42")); 44 44 } 45 45 46 46 PCUT_TEST(atoi_negative) { 47 47 PCUT_ASSERT_INT_EQUALS(-273, atoi("-273")); 48 48 } 49 49 50 50 PCUT_MAIN() 51 51 -
uspace/lib/posix/Makefile
ra35b458 rf1380b7 165 165 mkdir -p $(EXPORT_DIR)/include.new/libclui 166 166 cp -L ../clui/tinput.h $(EXPORT_DIR)/include.new/libclui 167 167 168 168 find "$(EXPORT_DIR)/include.new/libc" "$(EXPORT_DIR)/include.new/libclui" -name '*.h' -exec sed \ 169 169 -e 's:#include <:#include <libc/:' \ … … 176 176 -e 's:#include <posix/:#include <:' \ 177 177 -i {} \; 178 178 179 179 rm -rf $(EXPORT_DIR)/include 180 180 mv $(EXPORT_DIR)/include.new $(EXPORT_DIR)/include
Note:
See TracChangeset
for help on using the changeset viewer.