sys-block/sedutil: new package for Chromium OS

This commit is contained in:
Mike Frysinger
2016-05-16 21:46:00 -04:00
parent a9aeda08b8
commit 05919779f2
4 changed files with 147 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST sedutil-1.12.tar.gz 214066 SHA256 5509d4279cfb316f33730c5cb06f8162ae212c7f4d31d206642d67cc8be245c1 SHA512 f17fbb5a6d71d5bdd59d0fc85eed11036a8e365545133bc1374a733ce1975d6c8dd2cdc500bd46cffbec1f2bef621a98ca392e0dd314734c1ef12c073d70b0de WHIRLPOOL 299e35256de3c49a717fff727f45a1aaeeb2f65e1e3fb8afc4ba0af1626101e0f95618f182a32d90fee6278d980670df2c444219346fb6783fbe630d11209970

View File

@@ -0,0 +1,90 @@
/* stub to deal with renamed/neutered nvme.h header */
#include <linux/types.h>
#include <linux/nvme_ioctl.h>
struct nvme_id_power_state {
__le16 max_power; /* centiwatts */
__u8 rsvd2;
__u8 flags;
__le32 entry_lat; /* microseconds */
__le32 exit_lat; /* microseconds */
__u8 read_tput;
__u8 read_lat;
__u8 write_tput;
__u8 write_lat;
__le16 idle_power;
__u8 idle_scale;
__u8 rsvd19;
__le16 active_power;
__u8 active_work_scale;
__u8 rsvd23[9];
};
enum {
NVME_PS_FLAGS_MAX_POWER_SCALE = 1 << 0,
NVME_PS_FLAGS_NON_OP_STATE = 1 << 1,
};
struct nvme_id_ctrl {
__le16 vid;
__le16 ssvid;
char sn[20];
char mn[40];
char fr[8];
__u8 rab;
__u8 ieee[3];
__u8 mic;
__u8 mdts;
__le16 cntlid;
__le32 ver;
__u8 rsvd84[172];
__le16 oacs;
__u8 acl;
__u8 aerl;
__u8 frmw;
__u8 lpa;
__u8 elpe;
__u8 npss;
__u8 avscc;
__u8 apsta;
__le16 wctemp;
__le16 cctemp;
__u8 rsvd270[242];
__u8 sqes;
__u8 cqes;
__u8 rsvd514[2];
__le32 nn;
__le16 oncs;
__le16 fuses;
__u8 fna;
__u8 vwc;
__le16 awun;
__le16 awupf;
__u8 nvscc;
__u8 rsvd531;
__le16 acwu;
__u8 rsvd534[2];
__le32 sgls;
__u8 rsvd540[1508];
struct nvme_id_power_state psd[32];
__u8 vs[1024];
};
enum nvme_admin_opcode {
nvme_admin_delete_sq = 0x00,
nvme_admin_create_sq = 0x01,
nvme_admin_get_log_page = 0x02,
nvme_admin_delete_cq = 0x04,
nvme_admin_create_cq = 0x05,
nvme_admin_identify = 0x06,
nvme_admin_abort_cmd = 0x08,
nvme_admin_set_features = 0x09,
nvme_admin_get_features = 0x0a,
nvme_admin_async_event = 0x0c,
nvme_admin_activate_fw = 0x10,
nvme_admin_download_fw = 0x11,
nvme_admin_format_nvm = 0x80,
nvme_admin_security_send = 0x81,
nvme_admin_security_recv = 0x82,
};

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>base-system@gentoo.org</email>
</maintainer>
<upstream>
<remote-id type="github">Drive-Trust-Alliance/sedutil</remote-id>
</upstream>
</pkgmetadata>

View File

@@ -0,0 +1,46 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
inherit toolchain-funcs
DESCRIPTION="The Drive Trust Alliance Self Encrypting Drive Utility"
HOMEPAGE="https://github.com/Drive-Trust-Alliance/sedutil"
SRC_URI="https://github.com/Drive-Trust-Alliance/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
src_prepare() {
# https://github.com/Drive-Trust-Alliance/sedutil/pull/49
find -name '*.mk' -exec sed -E -i 's: -(Werror|g|O[0-9]?) : :g' {} + || die
mkdir linux/linux || die
cp "${FILESDIR}"/nvme.h linux/linux/ || die
}
src_configure() {
case $(tc-arch) in
x86) sedutil_arch="Release_i686" ;;
amd64) sedutil_arch="Release_x86_64" ;;
*) die "unsupported architecture" ;;
esac
}
src_compile() {
emake \
-C "linux/CLI" \
V=1 \
CONF="${sedutil_arch}" \
CC="$(tc-getCC)" \
CXX="$(tc-getCXX)" \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}"
}
src_install() {
dobin "linux/CLI/dist/${sedutil_arch}/GNU-Linux/sedutil-cli"
dodoc README.md
}