Rev 3790 | Rev 4125 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3790 | Rev 4016 | ||
|---|---|---|---|
| Line 24... | Line 24... | ||
| 24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 | */ |
27 | */ |
| 28 | 28 | ||
| 29 | /** @addtogroup ia32 |
29 | /** @addtogroup ia32 |
| 30 | * @{ |
30 | * @{ |
| 31 | */ |
31 | */ |
| 32 | /** @file |
32 | /** @file |
| 33 | */ |
33 | */ |
| 34 | 34 | ||
| Line 152... | Line 152... | ||
| 152 | "pushfl\n" |
152 | "pushfl\n" |
| 153 | "pop %%eax\n" |
153 | "pop %%eax\n" |
| 154 | "and $0xffff8fff, %%eax\n" |
154 | "and $0xffff8fff, %%eax\n" |
| 155 | "push %%eax\n" |
155 | "push %%eax\n" |
| 156 | "popfl\n" |
156 | "popfl\n" |
| 157 | : : : "eax" |
157 | ::: "eax" |
| 158 | ); |
158 | ); |
| 159 | } |
159 | } |
| 160 | 160 | ||
| 161 | /* Clean AM(18) flag in CR0 register */ |
161 | /* Clean AM(18) flag in CR0 register */ |
| 162 | static void clean_AM_flag(void) |
162 | static void clean_AM_flag(void) |
| 163 | { |
163 | { |
| 164 | asm volatile ( |
164 | asm volatile ( |
| 165 | "mov %%cr0, %%eax\n" |
165 | "mov %%cr0, %%eax\n" |
| 166 | "and $0xfffbffff, %%eax\n" |
166 | "and $0xfffbffff, %%eax\n" |
| 167 | "mov %%eax, %%cr0\n" |
167 | "mov %%eax, %%cr0\n" |
| 168 | : : : "eax" |
168 | ::: "eax" |
| 169 | ); |
169 | ); |
| 170 | } |
170 | } |
| 171 | 171 | ||
| 172 | void pm_init(void) |
172 | void pm_init(void) |
| 173 | { |
173 | { |