Exemple #1
0
static void object_err(struct kmem_cache *cache, struct page *page,
			void *object, char *unused_reason)
{
	struct kasan_alloc_meta *alloc_info = get_alloc_info(cache, object);
	struct kasan_free_meta *free_info;

	dump_stack();
	pr_err("Object at %p, in cache %s\n", object, cache->name);
	if (!(cache->flags & SLAB_KASAN))
		return;
	switch (alloc_info->state) {
	case KASAN_STATE_INIT:
		pr_err("Object not allocated yet\n");
		break;
	case KASAN_STATE_ALLOC:
		pr_err("Object allocated with size %u bytes.\n",
		       alloc_info->alloc_size);
		pr_err("Allocation:\n");
		print_track(&alloc_info->track);
		break;
	case KASAN_STATE_FREE:
		pr_err("Object freed, allocated with size %u bytes\n",
		       alloc_info->alloc_size);
		free_info = get_free_info(cache, object);
		pr_err("Allocation:\n");
		print_track(&alloc_info->track);
		pr_err("Deallocation:\n");
		print_track(&free_info->track);
		break;
	}
}
Exemple #2
0
static void print_tracking(struct kmem_cache *s, void *object)
{
	if (!(s->flags & SLAB_STORE_USER))
		return;

	print_track("Allocated", get_track(s, object, TRACK_ALLOC));
	print_track("Freed", get_track(s, object, TRACK_FREE));
}
Exemple #3
0
static void describe_object(struct kmem_cache *cache, void *object,
				const void *addr)
{
	struct kasan_alloc_meta *alloc_info = get_alloc_info(cache, object);

	if (cache->flags & SLAB_KASAN) {
		print_track(&alloc_info->alloc_track, "Allocated");
		pr_err("\n");
		print_track(&alloc_info->free_track, "Freed");
		pr_err("\n");
	}

	describe_object_addr(cache, object, addr);
}
Exemple #4
0
static void playlist_browse_try(void)
{
	int i, tracks;

	metadata_updated_fn = playlist_browse_try;
	if(!sp_playlist_is_loaded(playlist_browse))
		return;

	tracks = sp_playlist_num_tracks(playlist_browse);
	for(i = 0; i < tracks; i++) {
		sp_track *t = sp_playlist_track(playlist_browse, i);
		if (!sp_track_is_loaded(t))
			return;
	}

	printf("\tPlaylist and metadata loaded\n");

	for(i = 0; i < tracks; i++) {
		sp_track *t = sp_playlist_track(playlist_browse, i);
		
		printf(" %5d: ", i + 1);
		print_track(t);
	}
	sp_playlist_remove_callbacks(playlist_browse, &pl_callbacks, NULL);

	sp_playlist_release(playlist_browse);
	playlist_browse = NULL;
	metadata_updated_fn = NULL;
	cmd_done();
}
void
set_mapcenter(	float lat,
		float lon,
		int zoom)
{
	int pixel_x, pixel_y;
	
	lat = deg2rad(lat);
	lon = deg2rad(lon);
	
	
	pixel_x = lon2pixel(zoom, lon);
	pixel_y = lat2pixel(zoom, lat);

	printf("fill_tiles_latlon(): lat %f  %i -- lon %f  %i\n",
	lat,pixel_y,lon,pixel_x);
	
	osd_speed();
	global_x = pixel_x - global_drawingarea_width/2; 
	global_y = pixel_y - global_drawingarea_height/2; 
	global_zoom = zoom;
	fill_tiles_pixel (	pixel_x - global_drawingarea_width/2, 
				pixel_y - global_drawingarea_height/2,
				zoom);
	print_track();
	paint_friends();
	paint_photos();
	paint_pois();
	paint_wp();
	osd_speed(); 


}
Exemple #6
0
static void kasan_object_err(struct kmem_cache *cache, void *object)
{
	struct kasan_alloc_meta *alloc_info = get_alloc_info(cache, object);

	dump_stack();
	pr_err("Object at %p, in cache %s size: %d\n", object, cache->name,
		cache->object_size);

	if (!(cache->flags & SLAB_KASAN))
		return;

	pr_err("Allocated:\n");
	print_track(&alloc_info->alloc_track);
	pr_err("Freed:\n");
	print_track(&alloc_info->free_track);
}
Exemple #7
0
void
Pathfinder::dijkstra(int r0, int c0)
{
  if ( r0 >= rows || c0 >= cols ) {
    std::cerr << "[Pathfinder::dijkstra] Error: Start coordinates out of bounds\n";
    return;
  }
  bool found[nodes.size()];
  int parents[nodes.size()];
  int dist[nodes.size()];
  int t = -1;
  
  for ( int i = 0; i < nodes.size() ; ++i) {
    found[i] = false;
    parents[i] = -1;
    dist[i] = INT_MAX;
  }

  int start =  r0 * cols + c0;
  int i = start;
  dist[i] = 0;

  while ( !found[i] ){
    found[i] = true;
    if ( nodes.at(i).type == 'T' ) t = i;  // found target;
    node* n = nodes.at(i).next;
    while ( n != nullptr ) {
      if ( dist[n->index] > dist[i] + 1 ) {
	dist[n->index] = dist[i] + 1;
	parents[n->index] = i;
      }
      n = n->next;
    }
    int cd = INT_MAX;
    for ( int j = 0; j < nodes.size() ; ++j ) {
      if ( !found[j] && dist[j] < cd ) {
	cd = dist[j];
	i = j;
      }
    }
  }

  if ( t == -1 || dist[t] == INT_MAX ) {
    std::cerr << "[Pathfinder::dijkstra] Error: Target impossible to reach from (" << r0 << "," << c0 <<")\n";
    return;
  }
  std::vector<int> track = construct_track(start, t, parents);
  std::cout << "\nDijkstra: \n";
  print_track(track);
  plot_track(track);
  
}
Exemple #8
0
void
Pathfinder::bfs(int r0, int c0)
{
  if ( r0 >= rows || c0 >= cols ) {
    std::cerr << "[Pathfinder::bfs] Error: Start coordinates out of bounds\n";
    return;
  }

  bool found[nodes.size()];
  int parent[nodes.size()];
  for ( int i = 0; i < nodes.size() ; ++i ) {
    found[i] = false;
    parent[i] = -1;
  }
  std::queue<int> q;
  int start = r0 * cols + c0;

  q.push(start);
  found[start] = true;
  int i = start;
  bool stop = false;
  
  while ( !q.empty() && !stop ) {
    i = q.front();
    q.pop();
    node* nn = nodes.at(i).next;
    while (nn != nullptr ) {
      if ( !found[nn->index] ) {
	found[nn->index] = true;
	parent[nn->index] = i;
	if ( nn->type == 'T' ) {
	  i = nn->index;
	  stop = true;
	  break;
	}
	q.push(nn->index);
      }
      nn = nn->next;
    }
  }

  if ( !stop ) {
    std::cerr << "[Pathfinder::bfs] Error: Unable to reach target from (" << r0 << "," << c0 << ")\n";
    return;
  }
  
  std::vector<int> track = construct_track( start, i, parent );
  std::cout << "\nbfs: \n";
  print_track(track);
  plot_track(track);
}
Exemple #9
0
void test_cases_for_students(struct station *kipling, struct train *first)
{
	// test cases for students
	
	// Test 1. enter passengers
	enter_passengers(kipling);
	print_track(kipling, &first, 0, 1); // if enter_passengers is working you should see something including:
	/*
		38:      ||  = (n = 227, avg = 0.0) StGeorge
		39:      ||  
		40:      ||  = (n = 241, avg = 0.0) Bay
		41:      ||  
		42:      ||  = (n = 127, avg = 0.0) Yonge
		43:      ||  
		44:      ||  = (n = 72, avg = 0.0) Sherbourne
		45:      ||  
		46:      ||  = (n = 36, avg = 0.0) CastleFrank
		47:      ||  
	*/

	// Test 2. passengers wait
	passengers_wait(kipling);	
	print_track(kipling, &first, 0, 1); // you should see all passengers have waited one minute
	enter_passengers(kipling);
	print_track(kipling, &first, 0, 1); // now you should see something like:
	/*
		38:      ||  = (n = 326, avg = 0.7) StGeorge
		39:      ||  
		40:      ||  = (n = 466, avg = 0.5) Bay
		41:      ||  
		42:      ||  = (n = 343, avg = 0.4) Yonge
		43:      ||  
		44:      ||  = (n = 142, avg = 0.5) Sherbourne
		45:      ||  
		46:      ||  = (n = 49, avg = 0.7) CastleFrank
		47:      ||  
	*/
}
Exemple #10
0
string
Track::print_branch_recursive (const unsigned int indentation)
{
  string str;
  
  for(unsigned int i = 0; i < indentation; i++)
    str += "  ";
  str += print_track();
  str += "\n";
  
  BOOST_FOREACH(shared_ptr<Track> track, get_child_tracks())
    {
      REQUIRE(track);
      str += track->print_branch_recursive(indentation + 1);
    }
Exemple #11
0
int main()
{
	// Simulate the TTC!
	// To keep things consitent, we'll use a predefined seed of 1
	srand(1);

	// we'll be outputting data to a file called data.csv
	FILE *file;
	file = fopen("data.csv","w+");

	// set up our first station and first two trains 
	struct station *kipling = read_stations();
	struct train *first = make_train(5, 0);
	struct train *second = make_train(0, 5);
	first->next = second;

	if(DEBUGGING == 1)
	{
		printf("BEGINNING TEST\n");
		test_cases_for_students(kipling, first);
	}
	else
	{
		// if we're not debugging, then simulate!
		fprintf(file, "time, avg_wait, num_trains, avg_dist\n");
		int i = 0;
		for(i = 0; i < SIM_TIME; i++)
		{
			advance_time(kipling, &first);
			// print data every half hour
			if(i % 30 == 0)
			{
				fprintf(file, "%d, %lf, %d, %lf\n", i, average_wait_time(kipling), num_trains(first), avg_train_dist(first));
			}
		}

		print_track(kipling, &first, i, 1);
	}

	// cleanup
	clear_all_trains(&first);
	remove_all_stations(&kipling);
	fclose(file);
	return 0;
}
Exemple #12
0
void
Pathfinder::dfs(int r0, int c0)
{
  bool found[nodes.size()];
  int parent[nodes.size()];
  for (int i = 0; i < nodes.size() ; ++i ) {
    found[i] = false;
    parent[i] = -1;
  }

  std::stack<int> s;
  int start = r0 * cols + c0;
  found[start] = true;
  int i = start;
  bool stop = false;
  s.push(i);

  while( !s.empty() && !stop ) {
    i = s.top();
    s.pop();
    node * nn = nodes.at(i).next;
    while ( nn != nullptr ) {
      if ( !found[nn->index] ) {
	found[nn->index] = true;
	parent[nn->index] = i;
	if ( nn->type == 'T' ) {
	  i = nn->index;
	  stop = true;
	  break;
	}
	s.push(nn->index);
      }
      nn = nn->next;
    }
  }
  
  if ( !stop ) {
    std::cerr << "[Pathfinder::dfs] Error: unable to reach target from (" << r0 << "," << c0 << ")\n";
    return;
  }
  std::vector<int> track = construct_track(start, i, parent);
  std::cout << "\ndfs: \n";
  print_track(track);
  plot_track(track);
}
Exemple #13
0
/**
 * Print the given artist browse result and as much information as possible
 *
 * @param  browse  The browse result
 */
static void print_artistbrowse(sp_artistbrowse *browse)
{
	int i;

	printf("Artist browse of \"%s\"\n", sp_artist_name(sp_artistbrowse_artist(browse)));

	for (i = 0; i < sp_artistbrowse_num_similar_artists(browse); ++i)
		printf("  Similar artist: %s\n", sp_artist_name(sp_artistbrowse_similar_artist(browse, i)));

	printf("  Portraits: %d\n", sp_artistbrowse_num_portraits(browse));
	printf("  Tracks   : %d\n", sp_artistbrowse_num_tracks(browse));
	printf("  Biography: %.60s...\n", sp_artistbrowse_biography(browse));
	puts("");

	for (i = 0; i < sp_artistbrowse_num_tracks(browse); ++i)
		print_track(sp_artistbrowse_track(browse, i));

	puts("");
}
Exemple #14
0
static void track_browse_try(void)
{
	switch (sp_track_error(track_browse)) {
	case SP_ERROR_OK:
		print_track(track_browse);
		break;

	case SP_ERROR_IS_LOADING:
		return; // Still pending

	default:
		fprintf(stderr, "Unable to resolve track: %s\n", sp_error_message(sp_track_error(track_browse)));
		break;
	}
	
	metadata_updated_fn = NULL;
	cmd_done();
	sp_track_release(track_browse);
}
Exemple #15
0
/**
 * Print the given album browse result and as much information as possible
 *
 * @param  browse  The browse result
 */
static void print_albumbrowse(sp_albumbrowse *browse)
{
	int i;

	printf("Album browse of \"%s\" (%d)\n", 
	       sp_album_name(sp_albumbrowse_album(browse)), 
	       sp_album_year(sp_albumbrowse_album(browse)));

	for (i = 0; i < sp_albumbrowse_num_copyrights(browse); ++i)
		printf("  Copyright: %s\n", sp_albumbrowse_copyright(browse, i));

	printf("  Tracks: %d\n", sp_albumbrowse_num_tracks(browse));
	printf("  Review: %.60s...\n", sp_albumbrowse_review(browse));
	puts("");

	for (i = 0; i < sp_albumbrowse_num_tracks(browse); ++i)
		print_track(sp_albumbrowse_track(browse, i));

	puts("");
}
Exemple #16
0
/**
 * Callback for libspotify
 *
 * @param result    The toplist result object that is now done
 * @param userdata  The opaque pointer given to sp_toplistbrowse_create()
 */
static void got_toplist(sp_toplistbrowse *result, void *userdata)
{
	int i;

	// We print from all types. Only one of the loops will acually yield anything.

	for(i = 0; i < sp_toplistbrowse_num_artists(result); i++)
		print_artist(i + 1, sp_toplistbrowse_artist(result, i));

	for(i = 0; i < sp_toplistbrowse_num_albums(result); i++)
		print_album(i + 1, sp_toplistbrowse_album(result, i));

	for(i = 0; i < sp_toplistbrowse_num_tracks(result); i++) {
		printf("%3d: ", i + 1);
		print_track(sp_toplistbrowse_track(result, i));
	}

	sp_toplistbrowse_release(result);
	cmd_done();
}
Exemple #17
0
/**
 * Print the given search result with as much information as possible
 *
 * @param  search   The search result
 */
static void print_search(sp_search *search)
{
  int i;

  printf("Query          : %s\n", sp_search_query(search));
  printf("Did you mean   : %s\n", sp_search_did_you_mean(search));
  printf("Tracks in total: %d\n", sp_search_total_tracks(search));
  puts("");

  for (i = 0; i < sp_search_num_tracks(search); ++i)
    print_track(sp_search_track(search, i));

  puts("");

  for (i = 0; i < sp_search_num_albums(search); ++i)
    print_album(sp_search_album(search, i));

  puts("");

  for (i = 0; i < sp_search_num_artists(search); ++i)
    print_artist(sp_search_artist(search, i));

  puts("");
}