Subversion Repositories HelenOS-historic

Rev

Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1702 Rev 1780
Line 56... Line 56...
56
 
56
 
57
/** TLB shootdown message. */
57
/** TLB shootdown message. */
58
struct tlb_shootdown_msg {
58
struct tlb_shootdown_msg {
59
    tlb_invalidate_type_t type; /**< Message type. */
59
    tlb_invalidate_type_t type; /**< Message type. */
60
    asid_t asid;            /**< Address space identifier. */
60
    asid_t asid;            /**< Address space identifier. */
61
    __address page;         /**< Page address. */
61
    uintptr_t page;         /**< Page address. */
62
    count_t count;          /**< Number of pages to invalidate. */
62
    count_t count;          /**< Number of pages to invalidate. */
63
};
63
};
64
typedef struct tlb_shootdown_msg tlb_shootdown_msg_t;
64
typedef struct tlb_shootdown_msg tlb_shootdown_msg_t;
65
 
65
 
66
extern void tlb_init(void);
66
extern void tlb_init(void);
67
 
67
 
68
#ifdef CONFIG_SMP
68
#ifdef CONFIG_SMP
69
extern void tlb_shootdown_start(tlb_invalidate_type_t type, asid_t asid, __address page, count_t count);
69
extern void tlb_shootdown_start(tlb_invalidate_type_t type, asid_t asid, uintptr_t page, count_t count);
70
extern void tlb_shootdown_finalize(void);
70
extern void tlb_shootdown_finalize(void);
71
extern void tlb_shootdown_ipi_recv(void);
71
extern void tlb_shootdown_ipi_recv(void);
72
#else
72
#else
73
#  define tlb_shootdown_start(w, x, y, z)
73
#  define tlb_shootdown_start(w, x, y, z)
74
#  define tlb_shootdown_finalize()
74
#  define tlb_shootdown_finalize()
Line 81... Line 81...
81
extern void tlb_print(void);
81
extern void tlb_print(void);
82
extern void tlb_shootdown_ipi_send(void);
82
extern void tlb_shootdown_ipi_send(void);
83
 
83
 
84
extern void tlb_invalidate_all(void);
84
extern void tlb_invalidate_all(void);
85
extern void tlb_invalidate_asid(asid_t asid);
85
extern void tlb_invalidate_asid(asid_t asid);
86
extern void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt);
86
extern void tlb_invalidate_pages(asid_t asid, uintptr_t page, count_t cnt);
87
#endif
87
#endif
88
 
88
 
89
 /** @}
89
 /** @}
90
 */
90
 */
91
 
91