Changeset 897ad60 in mainline for arch/amd64/include/asm.h


Ignore:
Timestamp:
2006-04-13T16:11:27Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
39cea6a
Parents:
963074b3
Message:

Replace assembly from pm.c with new inline functions defined in asm.h.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/include/asm.h

    r963074b3 r897ad60  
    3030#define __amd64_ASM_H__
    3131
     32#include <arch/pm.h>
    3233#include <arch/types.h>
    3334#include <config.h>
     
    198199static inline void invlpg(__address addr)
    199200{
    200         __asm__ volatile ("invlpg %0\n" :: "m" (*((__native *)addr)));
     201        __asm__ volatile ("invlpg %0\n" :: "m" (*((__native *)addr)));
     202}
     203
     204/** Load GDTR register from memory.
     205 *
     206 * @param gdtr_reg Address of memory from where to load GDTR.
     207 */
     208static inline void gdtr_load(struct ptr_16_64 *gdtr_reg)
     209{
     210        __asm__ volatile ("lgdt %0\n" : : "m" (*gdtr_reg));
     211}
     212
     213/** Store GDTR register to memory.
     214 *
     215 * @param gdtr_reg Address of memory to where to load GDTR.
     216 */
     217static inline void gdtr_store(struct ptr_16_64 *gdtr_reg)
     218{
     219        __asm__ volatile ("sgdt %0\n" : : "m" (*gdtr_reg));
     220}
     221
     222/** Load IDTR register from memory.
     223 *
     224 * @param idtr_reg Address of memory from where to load IDTR.
     225 */
     226static inline void idtr_load(struct ptr_16_64 *idtr_reg)
     227{
     228        __asm__ volatile ("lidt %0\n" : : "m" (*idtr_reg));
     229}
     230
     231/** Load TR from descriptor table.
     232 *
     233 * @param sel Selector specifying descriptor of TSS segment.
     234 */
     235static inline void tr_load(__u16 sel)
     236{
     237        __asm__ volatile ("ltr %0" : : "r" (sel));
    201238}
    202239
Note: See TracChangeset for help on using the changeset viewer.