Rev 3104 | Rev 3222 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3104 | Rev 3186 | ||
|---|---|---|---|
| Line 124... | Line 124... | ||
| 124 | { |
124 | { |
| 125 | as_t *as = (as_t *) obj; |
125 | as_t *as = (as_t *) obj; |
| 126 | int rc; |
126 | int rc; |
| 127 | 127 | ||
| 128 | link_initialize(&as->inactive_as_with_asid_link); |
128 | link_initialize(&as->inactive_as_with_asid_link); |
| 129 | mutex_initialize(&as->lock); |
129 | mutex_initialize(&as->lock, MUTEX_PASSIVE); |
| 130 | 130 | ||
| 131 | rc = as_constructor_arch(as, flags); |
131 | rc = as_constructor_arch(as, flags); |
| 132 | 132 | ||
| 133 | return rc; |
133 | return rc; |
| 134 | } |
134 | } |
| Line 166... | Line 166... | ||
| 166 | as_t *as; |
166 | as_t *as; |
| 167 | 167 | ||
| 168 | #ifdef __OBJC__ |
168 | #ifdef __OBJC__ |
| 169 | as = [as_t new]; |
169 | as = [as_t new]; |
| 170 | link_initialize(&as->inactive_as_with_asid_link); |
170 | link_initialize(&as->inactive_as_with_asid_link); |
| 171 | mutex_initialize(&as->lock); |
171 | mutex_initialize(&as->lock, MUTEX_PASSIVE); |
| 172 | (void) as_constructor_arch(as, flags); |
172 | (void) as_constructor_arch(as, flags); |
| 173 | #else |
173 | #else |
| 174 | as = (as_t *) slab_alloc(as_slab, 0); |
174 | as = (as_t *) slab_alloc(as_slab, 0); |
| 175 | #endif |
175 | #endif |
| 176 | (void) as_create_arch(as, 0); |
176 | (void) as_create_arch(as, 0); |
| Line 310... | Line 310... | ||
| 310 | return NULL; |
310 | return NULL; |
| 311 | } |
311 | } |
| 312 | 312 | ||
| 313 | a = (as_area_t *) malloc(sizeof(as_area_t), 0); |
313 | a = (as_area_t *) malloc(sizeof(as_area_t), 0); |
| 314 | 314 | ||
| 315 | mutex_initialize(&a->lock); |
315 | mutex_initialize(&a->lock, MUTEX_PASSIVE); |
| 316 | 316 | ||
| 317 | a->as = as; |
317 | a->as = as; |
| 318 | a->flags = flags; |
318 | a->flags = flags; |
| 319 | a->attributes = attrs; |
319 | a->attributes = attrs; |
| 320 | a->pages = SIZE2FRAMES(size); |
320 | a->pages = SIZE2FRAMES(size); |
| Line 692... | Line 692... | ||
| 692 | * Then it will be safe to unlock it. |
692 | * Then it will be safe to unlock it. |
| 693 | */ |
693 | */ |
| 694 | sh_info = src_area->sh_info; |
694 | sh_info = src_area->sh_info; |
| 695 | if (!sh_info) { |
695 | if (!sh_info) { |
| 696 | sh_info = (share_info_t *) malloc(sizeof(share_info_t), 0); |
696 | sh_info = (share_info_t *) malloc(sizeof(share_info_t), 0); |
| 697 | mutex_initialize(&sh_info->lock); |
697 | mutex_initialize(&sh_info->lock, MUTEX_PASSIVE); |
| 698 | sh_info->refcount = 2; |
698 | sh_info->refcount = 2; |
| 699 | btree_create(&sh_info->pagemap); |
699 | btree_create(&sh_info->pagemap); |
| 700 | src_area->sh_info = sh_info; |
700 | src_area->sh_info = sh_info; |
| 701 | /* |
701 | /* |
| 702 | * Call the backend to setup sharing. |
702 | * Call the backend to setup sharing. |