]> www.infradead.org Git - users/sagi/libnvme.git/log
users/sagi/libnvme.git
4 years agotree,fabrics: add 'host_iface' controller option
Hannes Reinecke [Wed, 16 Jun 2021 08:06:42 +0000 (10:06 +0200)]
tree,fabrics: add 'host_iface' controller option

Add a 'host_iface' controller option.

Ported from nvme-cli.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: add fast_io_fail_tmo option
Hannes Reinecke [Wed, 16 Jun 2021 07:56:07 +0000 (09:56 +0200)]
fabrics: add fast_io_fail_tmo option

Option to fail fast I/O when connecting to a controller. It is useful
to set a fast-fail timeout for nvme in case upper layer SW wants to
detect unresponsive controllers early (e.g. mdraid).

Ported from nvme-cli.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: blank out invalid arguments in build_options()
Hannes Reinecke [Wed, 16 Jun 2021 07:44:59 +0000 (09:44 +0200)]
fabrics: blank out invalid arguments in build_options()

Not all options are valid under all circumstances; eg for
discovery some options like 'nr_io_queues' are invalid.
So mask out invalid options to avoid a failure when creating
a controller.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree: argument checking for nvme_create_ctrl()
Hannes Reinecke [Wed, 16 Jun 2021 07:25:50 +0000 (09:25 +0200)]
tree: argument checking for nvme_create_ctrl()

Add argument checking for nvme_create_ctrl() to ensure the controller
values are correct and avoid failures later on in nvme_add_ctrl().

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoAdd logging functionality to libnvme
Hannes Reinecke [Mon, 14 Jun 2021 13:44:28 +0000 (15:44 +0200)]
Add logging functionality to libnvme

Port the logging functionality from nvme-cli to libnvme and
replace the 'verbose' option.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoioctl: add 'nsid' parameter to nvme_identify_secondary_ctrl_list()
Hannes Reinecke [Mon, 14 Jun 2021 11:39:13 +0000 (13:39 +0200)]
ioctl: add 'nsid' parameter to nvme_identify_secondary_ctrl_list()

nvme_identify_secondary_ctrl_list() can relate to specific nsids,
so allow the nsid parameter to be settable.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoioctl: add definitions for Namespace Write Protect Feature
Hannes Reinecke [Mon, 14 Jun 2021 10:24:42 +0000 (12:24 +0200)]
ioctl: add definitions for Namespace Write Protect Feature

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: Read system UUID from DMI and merge hostnqn generation functions
Hannes Reinecke [Mon, 14 Jun 2021 07:20:06 +0000 (09:20 +0200)]
fabrics: Read system UUID from DMI and merge hostnqn generation functions

Ported from nvme-cli.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotypes: add NVME_LOG_LPO_NONE
Hannes Reinecke [Sun, 13 Jun 2021 10:40:54 +0000 (12:40 +0200)]
types: add NVME_LOG_LPO_NONE

Add additional log page definition.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoMerge pull request #9 from birkelund/fixes
Keith Busch [Tue, 15 Jun 2021 19:56:10 +0000 (13:56 -0600)]
Merge pull request #9 from birkelund/fixes

Typo fix

4 years agoTypo fix
Klaus Jensen [Tue, 15 Jun 2021 19:22:20 +0000 (21:22 +0200)]
Typo fix

Fix a small typo.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
4 years agoMerge pull request #7 from hreinecke/topology.v2
Keith Busch [Tue, 15 Jun 2021 19:10:24 +0000 (13:10 -0600)]
Merge pull request #7 from hreinecke/topology.v2

Per-controller configuration support

4 years agotree: move config_file argument into nvme_root
Hannes Reinecke [Fri, 7 May 2021 08:12:41 +0000 (10:12 +0200)]
tree: move config_file argument into nvme_root

Store the config file in the nvme_root structure; that allows us
to call nvme_update_config() without having to specify the
configuration file.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree: add 'nvme_update_config()' as API function
Hannes Reinecke [Wed, 5 May 2021 12:15:55 +0000 (14:15 +0200)]
tree: add 'nvme_update_config()' as API function

Add a function nvme_update_config() to write out the configuration
as an JSON file.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoJSON configuration file handling
Hannes Reinecke [Wed, 5 May 2021 11:55:39 +0000 (13:55 +0200)]
JSON configuration file handling

Add functions 'json_read_config()' and 'json_update_config()' to
read and write configuration informations from or to a JSON file.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: 'tos' is invalid for loop
Hannes Reinecke [Tue, 11 May 2021 11:26:36 +0000 (13:26 +0200)]
fabrics: 'tos' is invalid for loop

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree: implement nvme_ctrl_is_persistent()
Hannes Reinecke [Tue, 13 Apr 2021 07:55:19 +0000 (09:55 +0200)]
tree: implement nvme_ctrl_is_persistent()

Move the 'persistent' argument into the controller configuration.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: add 'verbose' option
Hannes Reinecke [Wed, 14 Apr 2021 06:10:26 +0000 (08:10 +0200)]
fabrics: add 'verbose' option

Add a 'verbose' option to print out logging messages during
discovery.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree,fabrics: detect discovery loops
Hannes Reinecke [Wed, 14 Apr 2021 10:06:36 +0000 (12:06 +0200)]
tree,fabrics: detect discovery loops

Add an attribute 'discovered' to the controller configuration to
identify discovery referral loops; if the controller is already
discovered we'll skip it for subsequent discovery commands.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree,fabrics: per-controller configuration
Hannes Reinecke [Tue, 13 Apr 2021 07:28:30 +0000 (09:28 +0200)]
tree,fabrics: per-controller configuration

Make the fabrics configuration settings per-controller and implement
nvme_ctrl_disable_sqflow().

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree,fabrics: use topology information for discovery
Hannes Reinecke [Fri, 30 Apr 2021 08:23:54 +0000 (10:23 +0200)]
tree,fabrics: use topology information for discovery

Implement a topology tree containing all hosts, subsystems, and
controllers in the system, and use that information during
discovery.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotest: allow passing in controller name
Hannes Reinecke [Mon, 12 Apr 2021 05:46:37 +0000 (07:46 +0200)]
test: allow passing in controller name

Allow to specify the controller name as first command argument.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoutil: export nvme_get_attr()
Hannes Reinecke [Fri, 9 Apr 2021 07:26:54 +0000 (09:26 +0200)]
util: export nvme_get_attr()

Add raw nvme_get_attr() function for use within the library.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree: add 'nvme_host' structure
Hannes Reinecke [Thu, 8 Apr 2021 12:13:48 +0000 (14:13 +0200)]
tree: add 'nvme_host' structure

Add a 'nvme_host' structure to hold the host NQN and host ID and
place it between 'nvme_root' and 'nvme_subsystem'.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoMatch systemd version with nvme-cli
Hannes Reinecke [Fri, 30 Apr 2021 11:40:09 +0000 (13:40 +0200)]
Match systemd version with nvme-cli

nvme-cli refers to systemd version 242, so we should be checking
for the same version here to avoid linking failures.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agotree: Make functions static
Hannes Reinecke [Fri, 30 Apr 2021 08:03:20 +0000 (10:03 +0200)]
tree: Make functions static

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: add mapping functions for discovery log entries
Hannes Reinecke [Wed, 14 Apr 2021 10:57:55 +0000 (12:57 +0200)]
fabrics: add mapping functions for discovery log entries

The discovery log entries contain numerical values for attributes,
so we should be providing mapping functions to translate them back
to strings.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofabrics: fixup hostid size
Hannes Reinecke [Tue, 13 Apr 2021 12:29:39 +0000 (14:29 +0200)]
fabrics: fixup hostid size

The NVMe host id is a UUID with the string length 36. As the
read() call uses the passed-in length minus one we need to
increase the host ID length by one to avoid nvmf_read_file(f,
NVMF_HOSTID_LEN) skipping the last character.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoFixup libuuid compilation
Hannes Reinecke [Mon, 12 Apr 2021 06:11:44 +0000 (08:11 +0200)]
Fixup libuuid compilation

Use correct configure symbol 'CONFIG_LIBUUID' and allow the test
program to compile without libuud.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agofix integration breakage
Keith Busch [Wed, 7 Apr 2021 21:24:33 +0000 (14:24 -0700)]
fix integration breakage

Signed-off-by: Keith Busch <kbusch@kernel.org>
4 years agoupdates from integration
Keith Busch [Wed, 7 Apr 2021 18:49:11 +0000 (11:49 -0700)]
updates from integration

Various fixes and support for newer nvme operations.

Signed-off-by: Keith Busch <kbusch@kernel.org>
4 years agoMerge pull request #5 from hreinecke/master
Keith Busch [Fri, 19 Mar 2021 15:16:23 +0000 (09:16 -0600)]
Merge pull request #5 from hreinecke/master

Make systemd and uuid optional

4 years agoMerge pull request #6 from hreinecke/address-parse
Keith Busch [Fri, 19 Mar 2021 15:15:50 +0000 (09:15 -0600)]
Merge pull request #6 from hreinecke/address-parse

Parse 'address' string into components

4 years agoParse 'address' string into components
Hannes Reinecke [Fri, 19 Mar 2021 09:50:37 +0000 (10:50 +0100)]
Parse 'address' string into components

The 'address' string really are several parts (traddr, trsvcid, and
host_addr) which are separated by commas. So avoid every user having
to parse that string on its own this patch exposes the individual parts
via nvme_ctrl_get_{traddr,trsvcid,host_traddr}.
Each call might return NULL if the respective value isn't set.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoMake systemd and uuid optional
Hannes Reinecke [Fri, 19 Mar 2021 08:51:25 +0000 (09:51 +0100)]
Make systemd and uuid optional

Add configuration flags '--disable-systemd' and '--disable-uuid'
to forcibly exclude systemd and uuid during build.

Signed-off-by: Hannes Reinecke <hare@suse.de>
4 years agoMerge pull request #4 from tbzatek/build-pkg-config
Keith Busch [Thu, 4 Mar 2021 16:51:24 +0000 (09:51 -0700)]
Merge pull request #4 from tbzatek/build-pkg-config

build: Include libnvme.pc in the default make target

4 years agobuild: Include libnvme.pc in the default make target
Tomas Bzatek [Thu, 4 Mar 2021 16:43:30 +0000 (17:43 +0100)]
build: Include libnvme.pc in the default make target

4 years agoMerge pull request #3 from tbzatek/docs-updates-1
Keith Busch [Thu, 4 Mar 2021 16:02:51 +0000 (09:02 -0700)]
Merge pull request #3 from tbzatek/docs-updates-1

Docs strings updates

4 years agoDocs strings updates
Tomas Bzatek [Thu, 4 Mar 2021 15:58:13 +0000 (16:58 +0100)]
Docs strings updates

4 years agofix log numdu mask
Keith Busch [Wed, 3 Mar 2021 22:02:56 +0000 (14:02 -0800)]
fix log numdu mask

This is a 16-bit value, not 8.

Signed-off-by: Keith Busch <kbusch@kernel.org>
4 years agoMerge pull request #2 from tbzatek/get_log_cdw10_mask
Keith Busch [Wed, 3 Mar 2021 17:29:51 +0000 (10:29 -0700)]
Merge pull request #2 from tbzatek/get_log_cdw10_mask

ioctl: Fix NVME_LOG_CDW10_NUMDL_MASK

4 years agoioctl: Fix NVME_LOG_CDW10_NUMDL_MASK
Tomas Bzatek [Wed, 3 Mar 2021 17:21:47 +0000 (18:21 +0100)]
ioctl: Fix NVME_LOG_CDW10_NUMDL_MASK

Used in nvme_get_log(), caused nvme_get_log_error() failures.

4 years agoadd lba status log helper
Keith Busch [Tue, 23 Feb 2021 22:54:12 +0000 (07:54 +0900)]
add lba status log helper

This log requires a more complex multi-sequence to successfully get, so
add a helper.

Signed-off-by: Keith Busch <kbusch@kernel.org>
4 years agoexamples: Add src/ into the include and library path
Han Han [Tue, 20 Oct 2020 12:45:31 +0000 (20:45 +0800)]
examples: Add src/ into the include and library path

That will fix the compiling errors like:
     CC telemetry-listen
telemetry-listen.c:21:10: fatal error: libnvme.h: No such file or directory
   21 | #include <libnvme.h>
      |          ^~~~~~~~~~~

Signed-off-by: Han Han <hhan@redhat.com>
4 years agospec: Fix the sub-include dir name to nvme
Han Han [Tue, 20 Oct 2020 13:49:21 +0000 (21:49 +0800)]
spec: Fix the sub-include dir name to nvme

It will fix the error of "libnvme/ dir is not found":
$ rpmbuild -ba ~/rpmbuild/SPECS/libnvme.spec
...
error: Directory not found:
/home/hhan/rpmbuild/BUILDROOT/libnvme-0.1-0.x86_64/usr/include/libnvme

Signed-off-by: Han Han <hhan@redhat.com>
4 years agospec: Use the correct url of libnvme
Han Han [Tue, 20 Oct 2020 13:49:20 +0000 (21:49 +0800)]
spec: Use the correct url of libnvme

Signed-off-by: Han Han <hhan@redhat.com>
4 years agoupdate doc cross links
Keith Busch [Thu, 8 Oct 2020 15:13:08 +0000 (08:13 -0700)]
update doc cross links

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agodocument corner case for large nsids
Keith Busch [Wed, 10 Jun 2020 18:06:35 +0000 (11:06 -0700)]
document corner case for large nsids

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agofix mmio accesses
Keith Busch [Tue, 9 Jun 2020 20:45:44 +0000 (13:45 -0700)]
fix mmio accesses

64-bit access needs to ensure no reorder or combining.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agocommon code all the complex value accessors
Keith Busch [Tue, 9 Jun 2020 16:49:58 +0000 (09:49 -0700)]
common code all the complex value accessors

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoupdate and inline feature decoding
Keith Busch [Tue, 9 Jun 2020 14:27:24 +0000 (07:27 -0700)]
update and inline feature decoding

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agofix up get_nsid api
Keith Busch [Fri, 5 Jun 2020 15:01:27 +0000 (08:01 -0700)]
fix up get_nsid api

namespaces can be anything from 1 to 0xfffffffe, which means they must
be unsigned. Change the api to take a parameter for the nsid value
rather than try to return an 'int', which would have confusing
signedness.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoreport zones helpers
Keith Busch [Fri, 5 Jun 2020 03:36:52 +0000 (20:36 -0700)]
report zones helpers

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agozns and ns-types
Keith Busch [Tue, 2 Jun 2020 03:11:41 +0000 (20:11 -0700)]
zns and ns-types

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoexport metadata size
Keith Busch [Mon, 1 Jun 2020 16:59:14 +0000 (09:59 -0700)]
export metadata size

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agogeneric whitespace strip routine
Keith Busch [Mon, 1 Jun 2020 14:08:49 +0000 (07:08 -0700)]
generic whitespace strip routine

Printing routines have a need to strip white spaces too, so make this a
common nvme lib routine.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agohave tree export directly opening namespaces
Keith Busch [Fri, 29 May 2020 20:43:52 +0000 (13:43 -0700)]
have tree export directly opening namespaces

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agominor updates
Keith Busch [Fri, 29 May 2020 16:33:42 +0000 (09:33 -0700)]
minor updates

A collection of updates including:

  Naming consistency improvements

  Namespace descriptor attributes added to namespace elements

  Doc updates to use more consise descriptions

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoExplicit casting from void *
Keith Busch [Thu, 28 May 2020 20:41:32 +0000 (13:41 -0700)]
Explicit casting from void *

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agofix comment typo
Keith Busch [Thu, 28 May 2020 17:26:06 +0000 (10:26 -0700)]
fix comment typo

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoDefine all nvme registers
Keith Busch [Mon, 18 May 2020 19:39:53 +0000 (12:39 -0700)]
Define all nvme registers

Provide enum and accessor methods for all nvme regsiter values and
sub-values.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoExport single namespace open
Keith Busch [Fri, 27 Mar 2020 23:43:22 +0000 (16:43 -0700)]
Export single namespace open

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agonvme/types.h: avoid using anon enums
Chaitanya Kulkarni [Thu, 12 Mar 2020 18:06:23 +0000 (11:06 -0700)]
nvme/types.h: avoid using anon enums

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMerge branch 'master' of https://github.com/linux-nvme/libnvme
Keith Busch [Thu, 27 Feb 2020 18:21:45 +0000 (10:21 -0800)]
Merge branch 'master' of https://github.com/linux-nvme/libnvme

5 years agoFill out additional documentation fields
Keith Busch [Thu, 27 Feb 2020 18:21:30 +0000 (10:21 -0800)]
Fill out additional documentation fields

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMerge pull request #1 from safl/master
Keith Busch [Wed, 26 Feb 2020 20:24:01 +0000 (12:24 -0800)]
Merge pull request #1 from safl/master

Fix dependency on systemd

5 years agoFix dependency on systemd
Simon A. F. Lund [Wed, 26 Feb 2020 20:04:24 +0000 (21:04 +0100)]
Fix dependency on systemd

When libsystemd is not installed on the system, then the pkg-config
check would still be true when systemd itself is on the system. Also,
when the library is unavailable then the hard-coded "-lsystemd" would
cause the build to fail. The following changes fix that.

* configure: changed check from "systemd" to the library "libsystemd"

* examples/Makefile: Replaced hard-coded "-lsystemd" with "${LDFLAGS}"
  as defined by "config-host.mak" in examples/Makefile

* src/Makefile: added include of "config-host.mak", removed hard-coded
  "-lsystemd", "-lsystemd" will trickle in from LDFLAGS

Signed-off-by: Simon A. F. Lund <simon.lund@samsung.com>
5 years agoFix double free discover log
Keith Busch [Sat, 22 Feb 2020 22:09:38 +0000 (14:09 -0800)]
Fix double free discover log

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMove feature field decoding to utilitiies
Keith Busch [Sat, 22 Feb 2020 22:08:21 +0000 (14:08 -0800)]
Move feature field decoding to utilitiies

Export a more coder friendly way to decode complex status fields than
the mask+shift macros.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoTypo fixes
Keith Busch [Tue, 18 Feb 2020 22:33:01 +0000 (14:33 -0800)]
Typo fixes

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoFix status code mask
Keith Busch [Mon, 17 Feb 2020 21:01:07 +0000 (13:01 -0800)]
Fix status code mask

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMerge branch 'master' of https://github.com/linux-nvme/libnvme
Keith Busch [Mon, 17 Feb 2020 20:36:48 +0000 (12:36 -0800)]
Merge branch 'master' of https://github.com/linux-nvme/libnvme

5 years agoFix install make targets
Keith Busch [Sat, 15 Feb 2020 19:53:38 +0000 (11:53 -0800)]
Fix install make targets

The makefile needs to be updated to reflect the current layout after
shuffling some things around,

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoFix split line documentation
Keith Busch [Mon, 17 Feb 2020 20:32:58 +0000 (12:32 -0800)]
Fix split line documentation

The documentation parser won't recognize the desired link nmae if enum
and the name are on separate lines.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMerge branch 'master' of https://github.com/linux-nvme/libnvme
Keith Busch [Mon, 17 Feb 2020 20:32:48 +0000 (12:32 -0800)]
Merge branch 'master' of https://github.com/linux-nvme/libnvme

5 years agoTesting rst html options
Keith Busch [Mon, 17 Feb 2020 03:03:32 +0000 (19:03 -0800)]
Testing rst html options

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoFix typo in comments
Keith Busch [Sat, 15 Feb 2020 18:31:51 +0000 (10:31 -0800)]
Fix typo in comments

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoIntegration fixes
Keith Busch [Sat, 15 Feb 2020 18:25:47 +0000 (10:25 -0800)]
Integration fixes

Fix up inconsistencies and missing features discovered while integrating
with nvme-cli.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoUpdate .gitignore
Keith Busch [Fri, 14 Feb 2020 23:57:31 +0000 (15:57 -0800)]
Update .gitignore

Update ccan artifacts to their correct directory.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoFill in more documentation details
Keith Busch [Fri, 14 Feb 2020 23:20:13 +0000 (15:20 -0800)]
Fill in more documentation details

And start adding more cross references.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoAdd man pages for exports
Keith Busch [Thu, 13 Feb 2020 21:00:03 +0000 (13:00 -0800)]
Add man pages for exports

Generate man-pages from existing source. This will likely change soon
as the types (struct and enum) should probably be grouped in the same
manual as the primary function that uses it rather than have their own,
and similiar functions can in turn be grouped in the same manual as
well.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoSet up ccan make dependency correctly
Keith Busch [Thu, 13 Feb 2020 19:48:08 +0000 (11:48 -0800)]
Set up ccan make dependency correctly

Fixes parallel -j make.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoFix copyright comments
Keith Busch [Thu, 13 Feb 2020 18:01:09 +0000 (10:01 -0800)]
Fix copyright comments

Don't use the kernel-doc style as that will try to get interpreted by
the scripts.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMove ccan up a directory
Keith Busch [Thu, 13 Feb 2020 17:59:08 +0000 (09:59 -0800)]
Move ccan up a directory

This will make it easier to generate library documentation when the
source is not mixed with external libraries.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoApply kernel-doc comments to more structs and enums
Keith Busch [Thu, 13 Feb 2020 17:50:49 +0000 (09:50 -0800)]
Apply kernel-doc comments to more structs and enums

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoAdd licence tags, copyright, and author comments
Keith Busch [Wed, 12 Feb 2020 15:19:13 +0000 (00:19 +0900)]
Add licence tags, copyright, and author comments

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoAdd c++ inclusion support
Keith Busch [Tue, 11 Feb 2020 01:38:36 +0000 (17:38 -0800)]
Add c++ inclusion support

extern "C" the top level header file, and add a simple c++ compile test.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoMake systemd-devel optional
Keith Busch [Mon, 10 Feb 2020 23:29:10 +0000 (15:29 -0800)]
Make systemd-devel optional

There's only one libnvme feature that uses this package. Let's make this
feature optional and return error ENOTSUP if the package is not available.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoUpdate .gitignore
Keith Busch [Mon, 10 Feb 2020 21:09:13 +0000 (13:09 -0800)]
Update .gitignore

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoConsolodate features into common header
Keith Busch [Mon, 10 Feb 2020 21:03:38 +0000 (13:03 -0800)]
Consolodate features into common header

Locate all command submission helper declarations into common ioctl.h
header rather than split these.

Remove the private.h file as only one .c was using it.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agolibnvme: code cleanup src/nvme/util.c
Chaitanya Kulkarni [Mon, 10 Feb 2020 19:37:49 +0000 (11:37 -0800)]
libnvme: code cleanup src/nvme/util.c

Various coding style fixes.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agolibnvme: code cleanup src/nvme/tree.c
Chaitanya Kulkarni [Mon, 10 Feb 2020 19:37:48 +0000 (11:37 -0800)]
libnvme: code cleanup src/nvme/tree.c

Various coding style fixes.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agolibnvme: code cleanup src/nvme/ioctl.c
Chaitanya Kulkarni [Mon, 10 Feb 2020 19:37:47 +0000 (11:37 -0800)]
libnvme: code cleanup src/nvme/ioctl.c

Various coding style fixes.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agolibnvme: code cleanup src/nvme/filters.c
Chaitanya Kulkarni [Mon, 10 Feb 2020 19:37:46 +0000 (11:37 -0800)]
libnvme: code cleanup src/nvme/filters.c

Make sure lines length stays <= 80 character.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agolibnvme: code cleanup src/nvme/fabrics.c
Chaitanya Kulkarni [Mon, 10 Feb 2020 19:37:45 +0000 (11:37 -0800)]
libnvme: code cleanup src/nvme/fabrics.c

This patch has following style fixes :-
Add a new line after function.
Adjust function arguments.
Init array remove memset.
Return early in the function.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoSplit host and controller telemetry log API
Keith Busch [Mon, 10 Feb 2020 19:04:51 +0000 (11:04 -0800)]
Split host and controller telemetry log API

While similar, these are logs are not obtained the same way.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoImport ccan modules
Keith Busch [Sat, 8 Feb 2020 00:32:35 +0000 (16:32 -0800)]
Import ccan modules

Replace <sys/queue.h> list implementation with the superior ccan list.
This is a more pleasant C implementation to work with, and since we the
structures using this are not exported through the API, we can freely
change these kinds of implementation details.

And while we're at it, include a few other useful modules to provide
useful macros and compile time checks on spec defined structs.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agotests: Fix fw log check
Keith Busch [Fri, 7 Feb 2020 04:30:03 +0000 (20:30 -0800)]
tests: Fix fw log check

Had the return check inverted (0 is success).

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoutil: Fix default log transfer length typo
Keith Busch [Fri, 7 Feb 2020 04:26:06 +0000 (20:26 -0800)]
util: Fix default log transfer length typo

Transfer lengths are 4k, not 4086 bytes.

Signed-off-by: Keith Busch <kbusch@kernel.org>
5 years agoAdd README
Keith Busch [Fri, 7 Feb 2020 04:08:39 +0000 (20:08 -0800)]
Add README

Signed-off-by: Keith Busch <kbusch@kernel.org>