package linux;
import gov.nasa.jpf.annotation.Conditional;
/**
* http://vbdb.itu.dk/?#bug/linux/f7ab9b4
*
* @author Jens Meinicke
*
*/
public class Linux1 {
@Conditional
static boolean CONFIG_TMPFS = false;
@Conditional
static boolean CONFIG_SHMEM = true;
@Conditional
static boolean CONFIG_DRM_I915 = true;
static final filler_t someFun = new filler_t() {
public int invoke(int i) {
return i;
}
};
private static filler_t f = CONFIG_TMPFS ? someFun : null;
filler_t shmem_get_inode() {
if (CONFIG_SHMEM) {
return f;
} else {
return someFun;
}
}
filler_t shmem_file_setup() {
return shmem_get_inode(); // (10)
}
int drm_gem_object_init(filler_t[] readpage) {
readpage[0] = shmem_file_setup(); // (9)
return 0;
}
void i915_gem_alloc_object(filler_t[] readpage) {
if (drm_gem_object_init(readpage) != 0)
;
}
void do_read_cache_page(filler_t filler) {
filler.invoke(0); // ERROR (18)
}
void read_cache_page_gfp(filler_t[] readpage) {
filler_t filler = readpage[0];
do_read_cache_page(filler);
}
int i915_gem_object_get_pages_gtt(filler_t[] readpage) {
read_cache_page_gfp(readpage);
return 0;
}
int intel_init_ring_buffer(filler_t[] readpage) {
i915_gem_alloc_object(readpage);
return i915_gem_object_get_pages_gtt(readpage);
}
int i915_load_modeset_init(filler_t[] readpage) {
return intel_init_ring_buffer(readpage);
}
int i915_driver_load() {
filler_t[] readpage = new filler_t[1];
return i915_load_modeset_init(readpage);
}
public static void main(String[] args) {
Linux1 la = new Linux1();
if (CONFIG_DRM_I915) {
la.i915_driver_load();
}
}
}