Changeset 8df5f20 in mainline for kernel/arch/ia32/include/arch/asm.h
- Timestamp:
- 2019-02-11T14:56:26Z (5 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4805495
- Parents:
- 391996b
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-01 23:26:21)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2019-02-11 14:56:26)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/include/arch/asm.h
r391996b r8df5f20 48 48 * 49 49 */ 50 NO_TRACE static inline __attribute__((noreturn)) void cpu_halt(void)50 _NO_TRACE static inline __attribute__((noreturn)) void cpu_halt(void) 51 51 { 52 52 while (true) { … … 57 57 } 58 58 59 NO_TRACE static inline void cpu_sleep(void)59 _NO_TRACE static inline void cpu_sleep(void) 60 60 { 61 61 asm volatile ( … … 64 64 } 65 65 66 #define GEN_READ_REG(reg) NO_TRACE static inline sysarg_t read_ ##reg (void) \66 #define GEN_READ_REG(reg) _NO_TRACE static inline sysarg_t read_ ##reg (void) \ 67 67 { \ 68 68 sysarg_t res; \ … … 74 74 } 75 75 76 #define GEN_WRITE_REG(reg) NO_TRACE static inline void write_ ##reg (sysarg_t regn) \76 #define GEN_WRITE_REG(reg) _NO_TRACE static inline void write_ ##reg (sysarg_t regn) \ 77 77 { \ 78 78 asm volatile ( \ … … 113 113 * 114 114 */ 115 NO_TRACE static inline void pio_write_8(ioport8_t *port, uint8_t val)115 _NO_TRACE static inline void pio_write_8(ioport8_t *port, uint8_t val) 116 116 { 117 117 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { … … 132 132 * 133 133 */ 134 NO_TRACE static inline void pio_write_16(ioport16_t *port, uint16_t val)134 _NO_TRACE static inline void pio_write_16(ioport16_t *port, uint16_t val) 135 135 { 136 136 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { … … 151 151 * 152 152 */ 153 NO_TRACE static inline void pio_write_32(ioport32_t *port, uint32_t val)153 _NO_TRACE static inline void pio_write_32(ioport32_t *port, uint32_t val) 154 154 { 155 155 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { … … 170 170 * 171 171 */ 172 NO_TRACE static inline uint8_t pio_read_8(ioport8_t *port)172 _NO_TRACE static inline uint8_t pio_read_8(ioport8_t *port) 173 173 { 174 174 if (((void *)port) < IO_SPACE_BOUNDARY) { … … 194 194 * 195 195 */ 196 NO_TRACE static inline uint16_t pio_read_16(ioport16_t *port)196 _NO_TRACE static inline uint16_t pio_read_16(ioport16_t *port) 197 197 { 198 198 if (((void *)port) < IO_SPACE_BOUNDARY) { … … 218 218 * 219 219 */ 220 NO_TRACE static inline uint32_t pio_read_32(ioport32_t *port)220 _NO_TRACE static inline uint32_t pio_read_32(ioport32_t *port) 221 221 { 222 222 if (((void *)port) < IO_SPACE_BOUNDARY) { … … 234 234 } 235 235 236 NO_TRACE static inline uint32_t read_eflags(void)236 _NO_TRACE static inline uint32_t read_eflags(void) 237 237 { 238 238 uint32_t eflags; … … 247 247 } 248 248 249 NO_TRACE static inline void write_eflags(uint32_t eflags)249 _NO_TRACE static inline void write_eflags(uint32_t eflags) 250 250 { 251 251 asm volatile ( … … 261 261 * 262 262 */ 263 NO_TRACE static inline ipl_t interrupts_read(void)263 _NO_TRACE static inline ipl_t interrupts_read(void) 264 264 { 265 265 return (ipl_t) read_eflags(); … … 273 273 * 274 274 */ 275 NO_TRACE static inline ipl_t interrupts_enable(void)275 _NO_TRACE static inline ipl_t interrupts_enable(void) 276 276 { 277 277 ipl_t ipl = interrupts_read(); … … 289 289 * 290 290 */ 291 NO_TRACE static inline ipl_t interrupts_disable(void)291 _NO_TRACE static inline ipl_t interrupts_disable(void) 292 292 { 293 293 ipl_t ipl = interrupts_read(); … … 305 305 * 306 306 */ 307 NO_TRACE static inline void interrupts_restore(ipl_t ipl)307 _NO_TRACE static inline void interrupts_restore(ipl_t ipl) 308 308 { 309 309 write_eflags((uint32_t) ipl); … … 315 315 * 316 316 */ 317 NO_TRACE static inline bool interrupts_disabled(void)317 _NO_TRACE static inline bool interrupts_disabled(void) 318 318 { 319 319 return ((read_eflags() & EFLAGS_IF) == 0); … … 323 323 324 324 /** Write to MSR */ 325 NO_TRACE static inline void write_msr(uint32_t msr, uint64_t value)325 _NO_TRACE static inline void write_msr(uint32_t msr, uint64_t value) 326 326 { 327 327 asm volatile ( … … 333 333 } 334 334 335 NO_TRACE static inline uint64_t read_msr(uint32_t msr)335 _NO_TRACE static inline uint64_t read_msr(uint32_t msr) 336 336 { 337 337 uint32_t ax, dx; … … 356 356 * 357 357 */ 358 NO_TRACE static inline uintptr_t get_stack_base(void)358 _NO_TRACE static inline uintptr_t get_stack_base(void) 359 359 { 360 360 uintptr_t v; … … 374 374 * 375 375 */ 376 NO_TRACE static inline void invlpg(uintptr_t addr)376 _NO_TRACE static inline void invlpg(uintptr_t addr) 377 377 { 378 378 asm volatile ( … … 387 387 * 388 388 */ 389 NO_TRACE static inline void gdtr_load(ptr_16_32_t *gdtr_reg)389 _NO_TRACE static inline void gdtr_load(ptr_16_32_t *gdtr_reg) 390 390 { 391 391 asm volatile ( … … 400 400 * 401 401 */ 402 NO_TRACE static inline void gdtr_store(ptr_16_32_t *gdtr_reg)402 _NO_TRACE static inline void gdtr_store(ptr_16_32_t *gdtr_reg) 403 403 { 404 404 asm volatile ( … … 413 413 * 414 414 */ 415 NO_TRACE static inline void idtr_load(ptr_16_32_t *idtr_reg)415 _NO_TRACE static inline void idtr_load(ptr_16_32_t *idtr_reg) 416 416 { 417 417 asm volatile ( … … 426 426 * 427 427 */ 428 NO_TRACE static inline void tr_load(uint16_t sel)428 _NO_TRACE static inline void tr_load(uint16_t sel) 429 429 { 430 430 asm volatile ( … … 439 439 * 440 440 */ 441 NO_TRACE static inline void gs_load(uint16_t sel)441 _NO_TRACE static inline void gs_load(uint16_t sel) 442 442 { 443 443 asm volatile (
Note:
See TracChangeset
for help on using the changeset viewer.