paste02-talk

C750newseg if shp segalloc return enomem id

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: /shm.c:1745:map_zero_setup */ if (IS_ERR(shp = seg_alloc(...))) return PTR_ERR(shp); + static inline long IS_ERR(const void *ptr) { return (unsigned long)ptr > (unsigned long)-1000L; } ) 1 /* ipc/shm.c:750:newseg: */ if (!(shp = seg_alloc(...)) return -ENOMEM; id = shm_addid(shp); O 3F '7 '7 0 * +7 " , ( & * + // Mark paths containing non-returning function as dead. start: { call(args) } ==> { if(mc_is_name(call, “panic”)) mc_kill_path(mc_stmt); } // or conditionals that check “user” for “kernel” | (v != 0) ==> { if(mc_name_contains(v, “kernel”)) mc_kill_true_path(mc_stmt); else if(mc_name_contains(v, “user”)) mc_kill_false_path(mc_stmt); } * + ( ) ) @ ) ! = + " ! ,! Bugs:FP 1:0 2:1 7:5 2:0 3:15 0:1 0:93 Cum Z 1:0 3:1 10:6 12:6 15:21 Cum Rand 0:1 1:3 2:14 2:16 5:31 '9 '1 ' -.4 * / 18:118 12:124 =, ' =: ;( " % % ) =: ; =: ;( ) ) E * & 'L ' #$ $ 'H / JM K /K K + ' 9 '. 'D ) J. JQ !9 K " ) . (Q ( J9 ( 'Q , 7 'Q … " % = S:F 5:1 4:1 2:1 2:2 1:1 " / F & contrived(lock_t l) { spin_lock(l); if(!(p = malloc(…)) return -ENOMEM; spin_unlock(l); ! ! Z 4.9 4.3 2.7 2.1 1.5 ) ! ) ) '> '0 8 +@ F '? '' , 8E / A , ) D / ) ) P ,!,! ! & '8 'L ) D 8E D >M 'W int ipc_addid(…* new…) { ... new->cuid = new->uid =…; new->gid = new->cgid = … ids->entries[id].p = new; 7 & ( * (. ( (I N ? 4 B ! F 'D 'Q / 2%A / J F 7 OH . & 'E '0 7 8 & E E ) 'H. '8 ' .8 H ! 7 7 ) ? 'Q '. '4 7 "? K = / ( + .8 K9 , ) 7 '7 >H 7+ & 'I " !8 ' " " #$$ %# $ $$ " + ) " ' , 'W ! 7 '8 ' / / & % = C...
View Full Document

This note was uploaded on 12/28/2013 for the course CS 190 taught by Professor Engler during the Winter '12 term at Stanford.

Ask a homework question - tutors are online