Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/runtime/c-libs/posix-procenv/uname.c
ViewVC logotype

View of /sml/trunk/src/runtime/c-libs/posix-procenv/uname.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 651 - (download) (as text) (annotate)
Thu Jun 1 18:34:03 2000 UTC (20 years ago) by monnier
File size: 1424 byte(s)
bring revisions from the vendor branch to the trunk
/* uname.c
 *
 * COPYRIGHT (c) 1995 by AT&T Bell Laboratories.
 */

#include "ml-unixdep.h"
#include <sys/utsname.h>
#include "ml-base.h"
#include "ml-values.h"
#include "ml-objects.h"
#include "ml-c.h"
#include "cfun-proto-list.h"

/* _ml_P_ProcEnv_uname: unit -> (string * string) list
 *
 * Return names of current system.
 */
ml_val_t _ml_P_ProcEnv_uname (ml_state_t *msp, ml_val_t arg)
{
    struct utsname      name;
    int                 sts;
    ml_val_t            l, p, s;
    ml_val_t		field;

    sts = uname (&name);

    if (sts == -1)
	RAISE_SYSERR(msp, sts);

/** NOTE: we should do something about possible GC!!! **/

    l = LIST_nil;

    field = ML_CString(msp, "machine");
    s = ML_CString(msp, name.machine);
    REC_ALLOC2(msp, p, field, s);
    LIST_cons(msp, l, p, l);

    field = ML_CString(msp, "version");
    s = ML_CString(msp, name.version);
    REC_ALLOC2(msp, p, field, s);
    LIST_cons(msp, l, p, l);

    field = ML_CString(msp, "release");
    s = ML_CString(msp, name.release);
    REC_ALLOC2(msp, p, field, s);
    LIST_cons(msp, l, p, l);

    field = ML_CString(msp, "nodename");
    s = ML_CString(msp, name.nodename);
    REC_ALLOC2(msp, p, field, s);
    LIST_cons(msp, l, p, l);

    field = ML_CString(msp, "sysname");
    s = ML_CString(msp, name.sysname);
    REC_ALLOC2(msp, p, field, s);
    LIST_cons(msp, l, p, l);

    return l;

} /* end of _ml_P_ProcEnv_uname */


root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0