Rev 735 | Rev 762 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 735 | Rev 759 | ||
|---|---|---|---|
| Line 121... | Line 121... | ||
| 121 | * TODO: Sleep until frames are available again. |
121 | * TODO: Sleep until frames are available again. |
| 122 | */ |
122 | */ |
| 123 | spinlock_unlock(&zone_head_lock); |
123 | spinlock_unlock(&zone_head_lock); |
| 124 | interrupts_restore(ipl); |
124 | interrupts_restore(ipl); |
| 125 | 125 | ||
| 126 | if (flags & FRAME_NON_BLOCKING) { |
126 | if (flags & FRAME_ATOMIC) { |
| 127 | ASSERT(status != NULL); |
127 | ASSERT(status != NULL); |
| 128 | *status = FRAME_NO_MEMORY; |
128 | *status = FRAME_NO_MEMORY; |
| 129 | return NULL; |
129 | return NULL; |
| 130 | } |
130 | } |
| 131 | 131 | ||
| Line 155... | Line 155... | ||
| 155 | ASSERT(v == ALIGN_UP(v, FRAME_SIZE << order)); |
155 | ASSERT(v == ALIGN_UP(v, FRAME_SIZE << order)); |
| 156 | 156 | ||
| 157 | if (flags & FRAME_KA) |
157 | if (flags & FRAME_KA) |
| 158 | v = PA2KA(v); |
158 | v = PA2KA(v); |
| 159 | 159 | ||
| 160 | if (flags & FRAME_NON_BLOCKING) { |
160 | if (flags & FRAME_ATOMIC) { |
| 161 | ASSERT(status != NULL); |
161 | ASSERT(status != NULL); |
| 162 | *status = FRAME_OK; |
162 | *status = FRAME_OK; |
| 163 | } |
163 | } |
| 164 | return v; |
164 | return v; |
| 165 | } |
165 | } |