Example #1
0
static int pkg_proc_update_stats(void *data)
{
	struct mem_info info;
	if(unlikely(_pkg_proc_stats_list==NULL))
		return -1;
	if(unlikely(process_no>=_pkg_proc_stats_no))
		return -1;
	pkg_info(&info);
	_pkg_proc_stats_list[process_no].available = info.free;
	_pkg_proc_stats_list[process_no].used = info.used;
	_pkg_proc_stats_list[process_no].real_used = info.real_used;
	_pkg_proc_stats_list[process_no].total_frags = info.total_frags;
	return 0;
}
Example #2
0
int pkg_proc_stats_myinit(int rank)
{
	struct mem_info info;
	if(_pkg_proc_stats_list==NULL)
		return -1;
	if(process_no>=_pkg_proc_stats_no)
		return -1;
	_pkg_proc_stats_list[process_no].pid = (unsigned int)my_pid();
	_pkg_proc_stats_list[process_no].rank = rank;

	/* init pkg usage values */
	pkg_info(&info);
	_pkg_proc_stats_list[process_no].available = info.free;
	_pkg_proc_stats_list[process_no].used = info.used;
	_pkg_proc_stats_list[process_no].real_used = info.real_used;
	_pkg_proc_stats_list[process_no].total_size = info.total_size;
	_pkg_proc_stats_list[process_no].total_frags = info.total_frags;
	return 0;
}
Example #3
0
int
main(int argc, char **argv)
{
	struct pkg_info info;
	int ret;

	info.match_type = MATCH_GLOB;
	info.flags = 0;
	info.pkgs = NULL;
	info.quiet = 0;
	info.origin = NULL;
	info.check_package = NULL;
	info.seperator = "";
	info.use_blocksize = 0;
	info.search_file = NULL;

	if (argc == 1) {
		info.match_type = MATCH_ALL;
		info.flags = SHOW_INDEX;
	} else {
		int ch;
		int i;
		while ((ch = getopt(argc, argv, options)) != -1) {
			switch (ch) {
			case 'a':
				info.match_type = MATCH_ALL;
				break;
			case 'b':
				info.use_blocksize = 1;
				break;
			case 'c':
				info.flags |= SHOW_COMMENT; 
				break;
			case 'd':
				info.flags |= SHOW_DESC; 
				break;
			case 'D':
				info.flags |= SHOW_DISPLAY;
				break;
			case 'e':
				info.check_package = optarg;
				break;
			case 'E':
				info.flags |= SHOW_PKGNAME;
				break;
			case 'f':
				info.flags |= SHOW_PLIST;
				break;
			case 'g':
				info.flags |= SHOW_CKSUM;
				break;
			case 'G':
				info.match_type = MATCH_EXACT;
				break;
			case 'i':
				info.flags |= SHOW_INSTALL;
				break;
			case 'I':
				info.flags |= SHOW_INDEX;
				break;
			case 'j':
				info.flags |= SHOW_REQUIRE;
				break;
			case 'k':
				info.flags |= SHOW_DEINSTALL;
				break;
			case 'l':
				info.seperator = optarg;
				break;
			case 'L':
				info.flags |= SHOW_FILES;
				break;
			case 'm':
				info.flags |= SHOW_MTREE;
				break;
			case 'o':
				info.flags |= SHOW_ORIGIN;
				break;
			case 'O':
				info.origin = optarg;
				break;
			case 'p':
				info.flags |= SHOW_PREFIX;
				break;
			case 'P':
				info.flags |= SHOW_PTREV;
				break;
			case 'q':
				info.quiet = 1;
				break;
			case 'Q':
				info.quiet = 2;
				break;
			case 'r':
				info.flags |= SHOW_DEPEND;
				break;
			case 'R':
				info.flags |= SHOW_REQBY;
				break;
			case 's':
				info.flags |= SHOW_SIZE;
				break;
			case 't':
				errx(1, "Unsupported argument");
				break;
			case 'v':
				info.flags = SHOW_COMMENT | SHOW_DESC |
					SHOW_PLIST | SHOW_INSTALL |
					SHOW_DEINSTALL | SHOW_REQUIRE |
					SHOW_DISPLAY | SHOW_MTREE;
				break;
			case 'V':
				info.flags |= SHOW_FMTREV;
				break;
			case 'W':
				info.search_file = optarg;
				break;
			case 'x':
				info.match_type = MATCH_REGEX;
				break;
			case 'X':
				info.match_type = MATCH_EREGEX;
				break;
			case 'h':
			default:
				usage();
				break;
			}
		}
		argc -= optind;
		argv += optind;

		info.pkgs = malloc(sizeof(char *) * (argc + 1));
		for (i=0; i < argc; i++) {
			info.pkgs[i] = argv[i];
		}
		info.pkgs[i] = NULL;
	}

	/* Set the default flags */
	if(!info.flags)
		info.flags = SHOW_COMMENT | SHOW_DESC | SHOW_REQBY;
	
	info.db = pkg_db_open_freebsd("/");
	if (!info.db)
		return 1;
	ret = pkg_info(info);
	if (info.pkgs != NULL)
		free(info.pkgs);
	pkg_db_free(info.db);
	return ret;
}