2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
20 * @APPLE_LICENSE_HEADER_END@
27 ** Entry - %esp contains pointer to 64 bit structure.
29 ** Exit - 64 bit structure filled in.
32 ENTRY(ml_get_timebase)
44 /* PCI config cycle probing
46 * boolean_t ml_probe_read(vm_offset_t paddr, unsigned int *val)
48 * Read the memory location at physical address paddr.
49 * This is a part of a device probe, so there is a good chance we will
50 * have a machine check here. So we have to be able to handle that.
51 * We assume that machine checks are enabled both in MSR and HIDs
64 /* PCI config cycle probing - 64-bit
66 * boolean_t ml_probe_read_64(addr64_t paddr, unsigned int *val)
68 * Read the memory location at physical address paddr.
69 * This is a part of a device probe, so there is a good chance we will
70 * have a machine check here. So we have to be able to handle that.
71 * We assume that machine checks are enabled both in MSR and HIDs
73 ENTRY(ml_probe_read_64)
75 /* Only use lower 32 bits of address for now */
85 /* Read physical address byte
87 * unsigned int ml_phys_read_byte(vm_offset_t paddr)
88 * unsigned int ml_phys_read_byte_64(addr64_t paddr)
90 * Read the byte at physical address paddr. Memory should not be cache inhibited.
92 ENTRY(ml_phys_read_byte_64)
94 /* Only use lower 32 bits of address for now */
101 ENTRY(ml_phys_read_byte)
110 /* Read physical address half word
112 * unsigned int ml_phys_read_half(vm_offset_t paddr)
113 * unsigned int ml_phys_read_half_64(addr64_t paddr)
115 * Read the half word at physical address paddr. Memory should not be cache inhibited.
117 ENTRY(ml_phys_read_half_64)
119 /* Only use lower 32 bits of address for now */
126 ENTRY(ml_phys_read_half)
135 /* Read physical address word
137 * unsigned int ml_phys_read(vm_offset_t paddr)
138 * unsigned int ml_phys_read_64(addr64_t paddr)
139 * unsigned int ml_phys_read_word(vm_offset_t paddr)
140 * unsigned int ml_phys_read_word_64(addr64_t paddr)
142 * Read the word at physical address paddr. Memory should not be cache inhibited.
144 ENTRY(ml_phys_read_64)
145 ENTRY(ml_phys_read_word_64)
147 /* Only use lower 32 bits of address for now */
154 ENTRY(ml_phys_read_word)
162 /* Read physical address double
164 * unsigned long long ml_phys_read_double(vm_offset_t paddr)
165 * unsigned long long ml_phys_read_double_64(addr64_t paddr)
167 * Read the double word at physical address paddr. Memory should not be cache inhibited.
169 ENTRY(ml_phys_read_double_64)
171 /* Only use lower 32 bits of address for now */
178 ENTRY(ml_phys_read_double)
187 /* Write physical address byte
189 * void ml_phys_write_byte(vm_offset_t paddr, unsigned int data)
190 * void ml_phys_write_byte_64(addr64_t paddr, unsigned int data)
192 * Write the byte at physical address paddr. Memory should not be cache inhibited.
194 ENTRY(ml_phys_write_byte_64)
196 /* Only use lower 32 bits of address for now */
203 ENTRY(ml_phys_write_byte)
212 /* Write physical address half word
214 * void ml_phys_write_half(vm_offset_t paddr, unsigned int data)
215 * void ml_phys_write_half_64(addr64_t paddr, unsigned int data)
217 * Write the byte at physical address paddr. Memory should not be cache inhibited.
219 ENTRY(ml_phys_write_half_64)
221 /* Only use lower 32 bits of address for now */
228 ENTRY(ml_phys_write_half)
237 /* Write physical address word
239 * void ml_phys_write(vm_offset_t paddr, unsigned int data)
240 * void ml_phys_write_64(addr64_t paddr, unsigned int data)
241 * void ml_phys_write_word(vm_offset_t paddr, unsigned int data)
242 * void ml_phys_write_word_64(addr64_t paddr, unsigned int data)
244 * Write the word at physical address paddr. Memory should not be cache inhibited.
246 ENTRY(ml_phys_write_64)
247 ENTRY(ml_phys_write_word_64)
249 /* Only use lower 32 bits of address for now */
257 ENTRY(ml_phys_write_word)
266 /* Write physical address double word
268 * void ml_phys_write_double(vm_offset_t paddr, unsigned long long data)
269 * void ml_phys_write_double_64(addr64_t paddr, unsigned long long data)
271 * Write the double word at physical address paddr. Memory should not be cache inhibited.
273 ENTRY(ml_phys_write_double_64)
275 /* Only use lower 32 bits of address for now */
284 ENTRY(ml_phys_write_double)