// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <zircon/syscalls.h>

#include "private.h"

zx_status_t _zx_system_get_version(char* version, size_t len) {
  if (len < sizeof(DATA_CONSTANTS.buildid))
    return ZX_ERR_BUFFER_TOO_SMALL;
  for (size_t i = 0; i < sizeof(DATA_CONSTANTS.buildid); ++i)
    version[i] = DATA_CONSTANTS.buildid[i];
  return ZX_OK;
}

VDSO_INTERFACE_FUNCTION(zx_system_get_version);
