add: meminfo();
context: int main(int argc, char **argv) {    char *p;    int width = 0,	do_header = 1,	user_ord = 0,	next_arg = 0,	toppid = 0,	pflags, N = 1;    void* args = NULL;    dev_t tty[2] = { 0 };    uid_t uid[1];        do {        --argc;		/* shift to next arg. */        ++argv;        for (p = *argv; p && *p; ++p) {            switch (*p) {	      case '-':               /* "--" ==> long name options */		if (*(p+1) == '-') {                    if (strncmp(p+2,"sort",4)==0) {			if (parse_long_sort(p+7))			    usage("unrecognized long sort option\n");			user_ord = 1;			next_arg = 1;			break;                    } else if (strncmp(p+2, "help", 4) == 0) {			usage(NULL);			return 0;                    } else if (strncmp(p+2, "version", 6) == 0) {			display_version();			return 0;                    } else if (*(p+2) != '\0')	/* just '-- '; not an error */			usage("ps: unknown long option\n");		}		if (!getenv("I_WANT_A_BROKEN_PS")) {		    fprintf(stderr,			    "warning: `-' deprecated; use `ps %s', not `ps %s'\n",			    (p+1), p);		}		break;	      case 'l': CL_fmt = PS_L;   /* replaceable by a */	break;	      case 'u': CL_fmt = PS_U;   /* loop over mode[] */	break;	      case 'j': CL_fmt = PS_J;				break;	      case 's': CL_fmt = PS_S;				break;	      case 'v': CL_fmt = PS_V;				break;	      case 'm': CL_fmt = PS_M;				break;	      case 'X': CL_fmt = PS_X;   /* regs */		break;	      case 'r': CL_run_only = 1; /* list filters */	break;	      case 'a': CL_all = 1;				break;	      case 'x': CL_no_ctty = 1;				break;	      case 't': CL_ctty = p + 1;		next_arg = 1;				break;	      case 'e': CL_show_env = 1; /* output modifiers */	break;	      case 'f': CL_forest = 1;		CL_kern_comm = 0;			break;	      case 'c': CL_kern_comm = 1;			break;	      case 'w': ++width;				break;	      case 'h': do_header = 0;				break;	      case 'n': CL_num_outp = 1;		GL_wchan_nout = 1;			break;	      case 'S': CL_Sum = 1;				break;	      case 'p': CL_pg_shift = 0;			break;	      case 'o': CL_sort = !CL_sort;			break;	      case 'O':		if (parse_sort_opt(p+1))		    usage("short form sort flag parse error\n");		user_ord = 1;		next_arg = 1;		break;	      case 'V': display_version(); exit(0);	      default:                /* Step through, reading+alloc space for comma-delim pids */		if (isdigit(*p)) {		    while (isdigit(*p)) {			CL_pids = xrealloc(CL_pids, (toppid + 2)*sizeof(pid_t));			CL_pids[toppid++] = atoi(p);			while (isdigit(*p))			    p++;			if (*p == ',')			    p++;		    }		    CL_pids[toppid] = 0;		    next_arg = 1;		}		if (*p)		    usage("unrecognized option or trailing garbage\n");            }            if (next_arg) {                next_arg = 0;                break;       /* end loop over chars in this argument */            }        }    } while (argc > 1);    if (!CL_sort)	/* since the unsorted mode is intended to be speedy */	CL_forest = 0;	/* turn off the expensive forest option as well. */    if (CL_fmt == PS_L) {	if (open_psdb(NULL)) GL_wchan_nout = 1;    }    set_cmdspc(width);    if (!(GL_current_time = uptime(0,0)))	return 1;    GL_time_now = time(0L);    if (CL_sort && !user_ord)        parse_sort_opt(mode[CL_fmt].default_sort);    /* NOTE:  all but option parsing has really been done to enable     * multiple uid/tty/state filtering as well as multiple pid filtering     */    pflags = PROC_ANYTTY;	/* defaults */    if (!CL_kern_comm)	pflags |= PROC_FILLCMD;  	 /* verbosity flags */    if (CL_fmt == PS_M) pflags |= PROC_FILLMEM;    if (CL_show_env)	pflags |= PROC_FILLENV;    if (!CL_num_outp)	pflags |= PROC_FILLUSR;    if (CL_no_ctty)	pflags &= ~PROC_ANYTTY;		/* filter flags */    if (CL_run_only)  { pflags |= PROC_STAT; args = "RD"; }    else if (!CL_all)      { pflags |= PROC_UID;  args = uid; uid[0] = getuid(); pflags &= ~PROC_STAT; }    if (CL_pids)      { pflags |= PROC_PID;  args = CL_pids; pflags &= ~PROC_UID; pflags &= ~PROC_STAT; }    if (CL_ctty) {	if ((tty[0] = tty_to_dev(CL_ctty)) == (dev_t)-1) {	    fprintf(stderr, "the name `%s' is not a tty\n", CL_ctty);	    exit(1);	}	pflags = (pflags | PROC_TTY) & ~(PROC_ANYTTY|PROC_STAT|PROC_UID|PROC_PID);	args = tty;    }    show_procs(cmdspc, do_header, pflags, args, N);    return 0;}