Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review the USB 3.0 stack #21

Merged
merged 625 commits into from
Feb 28, 2018
Merged

Review the USB 3.0 stack #21

merged 625 commits into from
Feb 28, 2018

Conversation

jermar
Copy link
Member

@jermar jermar commented Feb 16, 2018

Hi, let's do some preliminary review.

@jvesely, it would be interesting to have your high-level review of the overall architecture changes
@vhotspur, ^

Aearsis and others added 30 commits January 11, 2018 05:14
Also, it is just not possible to make generic transfer abortion. So the
current semantics of endpoint unregistering is also aborting the pending
transfer. As it is not yet implemented in XHCI, and the stub in UHCI is
missing the magic, it breaks offlining interrupt devices, such as mouse.

When finishing this commit, I came across the fact we need some more
synchronization above device. Guard can protect internal structures, but
it cannot synchronize multiple calls to offline, or offline & removal
between each other - they both need to allow driver to unregister
endpoints, and as such must release the guard.
Traversing loop looking for finished xhci transfer is now only 1 loop traversal in average case.
Added reset timer which resets the endpoint after there is no action for a given period.
Previousy, we abused the fact new fibrils are spawned for handling
notifications, so we could afford blocking the event handler. We were
told this is a subject to change and we should stop doing it.

This commit removes the abuse, but newly requires event handlers not to
block waiting for another event (e.g. commands do wait for events). To
quickly detect this situation, deadlock detection was added.

This commit breaks current functionality. Our current job is to identify
processes which do block and have them moved to separate fibril / spawn
fibril for the process alone.
There are two new generic mechanisms, which are used in only one
instance.

First one is a simple wrapper for roothub event handlers that should run
in separate fibril. The usage can be seen at line 337, for example. The
mechanism just passes arguments to a newly created fibril.

The second is a bit more complex, and its purpose is to broadcast roothub
events to all fibrils that could wait for it. It's used to wait for port
reset complete at USB 2 ports. See rh_port_reset_sync.

Sorry for naming both mechanisms "rh_event", which could create
a confusion.
Redistributed code between device_remove(), _removed() and _gone() in
order to minimize redundancy and improve efficient design.
Renamed polling synchronization primitives with the same convention as
in `usbhub`. Added some documentation.
dir, buffer, transfer_size, -1, last);
td_init(&ehci_batch->tds[td_current],
last ? 0 : dma_buffer_phys(&ehci_batch->ehci_dma_buffer,
&ehci_batch->tds[td_current + 1]),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: The last tab should be four spaces instead.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, it's a continuation of a line continuation (more refactoring would certainly help!), so IMO it shall be 8 spaces.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A continuation line does not have a continuation line of its own with a different indent. One big line can have multiple continuation lines that are each indented the same - by four spaces.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, my comment is not entirely clear if you don't have visible whitespace or a custom tab width. The line has three tab indents and four spaces indentation. It should be two tabs and eight spaces. IMO the extra level of continuation is correct, because the nested continuation continues a nested syntactic construct. Flat four space continution would harm readability. Or, you could use intermediate variables. That would probably be best.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This not however how it is supposed to be used.

void td_init(td_t *instance, const td_t *next,
usb_direction_t direction, const void *buffer, size_t size, int toggle,
bool ioc)
void td_init(td_t *instance, uintptr_t next_phys, uintptr_t buffer,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why has the type of buffer changed?
If it's a physical address (or other kind of different address space), it would be more readable if this used a typedef describing what kind of pointer it is.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously, it was a virtual pointer to a generic data, now it's a physical one. uintptr_t is used as physical pointer all over the project...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the future, physical addresses will be able to have different width than virtual addresses (for example when we support PAE on 32-bit systems), but IMO it's out of scope for this project and will need a global change later.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. Yes, if you use physical pointers a lot, it wouldn't make sense to change just this instance. And it would also need to be consistent with the rest of the system (a special type in /abi?). So yeah, out of scope.

/* TDs must be 32-byte aligned */
PADD32 [3];

} __attribute__((packed)) td_t;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this need packed? This attribute should only be used if the structure or its members are misaligned in memory.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ad PADD32 macro.. this is an example of quite ugly preprocessor magic that I'd rather be avoided.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It shall not need it. But it won't do any harm either, and for me packed is a kind of hint that this structure is expected to stay exactly as it was written.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jxsvoboda then why it is used everywhere else? :) If you want new code to stop using it, a slight deprecation note would do do the trick. Otherwise i rather like this one, because it shows that the padding must be there and it's not of any interest for reader, because it's not touched by the code. And it's very self-explanatory.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First of all, the older code can be and often is wrong too or could suffer from things we didn't know at the time. So avoiding better practices because the old code does not follow them is IMO itself not a good practice.

Secondly, I think when you have a packed structure, it literally tells the compiler that the alignment of the structure is 1 (besides also packing it). There is a different attribute for alignment, which can specify a minimal alignment (if greater than the alignment inferred from the structure's members). But maybe the comment is wrong and should rather say "TDs must be padded to 32-bytes?"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure, but don't aligned(32) and packed contradict each other? When you use both, what does alignof() say?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, they don't:

typedef struct foo {
	char pad;
	unsigned long long foo;
} __attribute__((packed,aligned(32))) foo_t;

int main() {
	printf("%zu %zu", sizeof(foo_t), &((foo_t *) NULL)->foo); // 32 1
}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it'd be nice to have HW_MEM_STRUCT(size, align) macro, that would hide the exact attributes. It can even add a static assert check suggested by @le-jzr. Both size and alignment are usually stated in the docs, so it's easy to reference the information in a comment.
It can also change per architecture/compiler if need be.

@Aearsis why is sizeof(foo_t) == 32? in the above example. Was it supposed to be alignof() ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't see how to make the macro also add an static assert, without being way too magic :)

@jvesely alignof is C++ specific, but sizeof() here is correct. That was actually the initial motivation - the structure has to be padded to align at the end in order to allow arrays to be created - because array offsets are just syntax sugar for pointer arithmetics, and pointer arithmetics uses size.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Aearsis There is _Alignof since C11.

}

if ((err = ohci_transfer_batch_prepare(ohci_batch)))
return err;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing mutex unlock?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it's few lines below. OHCI is designed so wrong, that it needed to lock the endpoint before the transfer is prepared. In short: it has to reuse the last TD of previous transfer as the first one.

But thank's for the comment, because we overcome this and forgot that now it's not needed :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this comment was re. the error path on line 313.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, of course you're right then. Will be solved by moving out of the critical section.

Copy link
Member Author

@jermar jermar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added some comments, to the individual changes.

Noticed that so far we have completely ignored caches during DMA operations (see #720 in trac).

There are two mechanisms that are not USB specific and should be moved somewhere else or be prefixed by usb_: DMA buffer management and joinable fibrils.

Some of the code does not follow our coding style, for examples lines are sometimes over 80 columns, wrong indentation

@@ -1,6 +1,7 @@
/*
* Copyright (c) 2011 Vojtech Horky
* Copyright (c) 2011 Jan Vesely
* Copyright (c) 2017 Ondra Hlavaty
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ondrej or Ondřej

usb_log_debug("Extended capability %s", xhci_ec_str_id(id));

switch (id) {
case XHCI_EC_SUPPORTED_PROTOCOL:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The case should not be indented.

@@ -0,0 +1,667 @@
/*
* Copyright (c) 2017 HelUSB3 team
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please state the actual authors here.

const xhci_trb_completion_code_t completion_code = TRB_COMPLETION_CODE(*trb);

switch (completion_code) {
case XHCI_TRBC_RING_OVERRUN:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

case should not be indented

@@ -0,0 +1,131 @@
/*
* Copyright (c) 2017 HelUSB3 team
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please state the actual authors here.

@@ -0,0 +1,248 @@
/*
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is not a generic dma_ mechanism, please prefix it with usb_

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, it is a bit wider idea which we think shall be adopted by libdrv. But that's for separate discussion.

@@ -0,0 +1,255 @@
/*
* Copyright (c) 2018 HelenOS xHCI team
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please state the names of the actual authors here.

@@ -0,0 +1,110 @@
/*
* Copyright (c) 2018 HelenOS xHCI team
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please state the name of the actual authors here.

int hc_get_hub_desc(device_t *, usb_hub_descriptor_header_t *);
int hc_device_explore(device_t *);

/** Joinable fibril */
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be imo part of the stock fibril support in libc.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally by making fibril joinable by default.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, we think so. But we like to introduce such changes in our subtree first, they can be moved easily later.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, but there is really no benefit in hiding this in your subtree when you have your own branch. See the note about self-contained code here: http://www.helenos.org/wiki/StudentTips#Implementation

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, let's move it to libc. I don't think we shall change the behavior of fibril (making fid_t a structure with former fid_t, mutex, condvar etc.). This is more an "async task", though the term "task" shall probably not be used to avoid confusion. How do you think it should be called?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't mind if the fibrils themselves were joinable. If this is not feasible for some reason, I'd move support for your joinable fibrils next to the ordinary fibrils in libc and unify the functionality later. As for the possible name, how about jibrils? Just kiddig :-)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only way how to make fibrils joinable is making fibril_t reference-counted. If that is feasible, we can make fibrils joinable on-demand before starting them. The current usage would be preserved, and code that would want to join their fibrils would have to increase the refcount, join and decrease the refcount again. (This has even the neat imaginary benefit of allowing more fibrils to join on one :) ). Counterexamples, opinions, comments, acks?

Copy link
Contributor

@le-jzr le-jzr Feb 26, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the general concensus the last time we discussed fibrils is that we want to move towards a more generic threading API, and deprecate any use of fibrils that doesn't work with the standard APIs. That means we should go with the traditional join()/detach() scheme, to avoid future headaches. We'll probably also need a new creation function, and leave the current one as detached-by-default, to avoid changes to existing code. I think we'll eventually drop the fibril API entirely, in favor of C11's <threads.h>, so there's no point in fussing with it too much.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In other words, essentialy reference counting with default value 2, and fibril_create calling fibril_create_joinable and dropping the reference? That could work. Shall I prepare it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, something like that. Please do, thanks! :)

}
}

typedef struct joinable_fibril {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to move this to libc or make fibrils joinable by default.

Aearsis and others added 7 commits February 24, 2018 20:51
The data was generated by a script, guided manually. If you feel your
name is missing somewhere, please add it!

The semi-automated process was roughly:
  1) Changes per file and author (limited to our team) were counted
  2) Trivial numbers were thrown away
  3) Authors were sorted by lines added to file
  4) All previous copyrights were replaced by the newly generated one
  5) Hunks changing only year were discarded

It seems that a lot of my copyrights were added. It is due to me being
both sticking my nose everywhere and lazy to update the copyright right
away :)
@jermar
Copy link
Member Author

jermar commented Feb 25, 2018

I successfully tested this on my desktop machine, where I was able to use USB keyboard plugged into OHCI and XHCI controllers. The stack detected a USB mass-storage attached vie EHCI. This pretty much fixes the stack on this machine to a large degree (some ports seem not to be powered).

I was not that lucky on my Lenovo x220 laptop, where USB hid devices connected via EHCI would be discovered only when the laptop was docked. Even then the usbhid driver would report stalled polls, so the keyboard / mouse was unusable.

Also tested in QEMU where I could successfully use a USB mouse attached via all USB controllers.

@jermar
Copy link
Member Author

jermar commented Feb 25, 2018

Here is what tools/ccheck.sh found in the files touched by this merge (some of this might have existed before though):

<uspace/app/vuhid/hids/bootkbd.c:97:40:)>: Single space expected before binary operator.
<uspace/app/vuhid/hids/bootkbd.c:97:42-51:id:INPUT_SIZE>: Whitespace expected after binary operator.
<uspace/app/vuhid/hids/bootkbd.c:47:17-30:id:STD_USAGE_PAGE>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:48:17-30:id:USAGE_MINIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:49:17-30:id:USAGE_MAXIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:50:17-32:id:LOGICAL_MINIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:51:17-32:id:LOGICAL_MAXIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:52:17-28:id:REPORT_SIZE1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:53:17-29:id:REPORT_COUNT1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:55:17-21:id:INPUT>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:56:17-29:id:REPORT_COUNT1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:57:17-28:id:REPORT_SIZE1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:59:17-21:id:INPUT>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:60:17-29:id:REPORT_COUNT1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:61:17-28:id:REPORT_SIZE1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:62:17-30:id:STD_USAGE_PAGE>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:63:17-30:id:USAGE_MINIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:64:17-30:id:USAGE_MAXIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:66:17-22:id:OUTPUT>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:67:17-29:id:REPORT_COUNT1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:68:17-28:id:REPORT_SIZE1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:70:17-22:id:OUTPUT>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:71:17-29:id:REPORT_COUNT1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:72:17-28:id:REPORT_SIZE1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:73:17-32:id:LOGICAL_MINIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:74:17-32:id:LOGICAL_MAXIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:75:17-30:id:STD_USAGE_PAGE>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:76:17-30:id:USAGE_MINIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:77:17-30:id:USAGE_MAXIMUM1>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:79:17-21:id:INPUT>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/app/vuhid/hids/bootkbd.c:86:14:<num>:0>: Non-continuation line should not have any spaces for indentation (found 5)
<uspace/app/vuhid/hids/bootkbd.c:87:14:<num>:0>: Non-continuation line should not have any spaces for indentation (found 5)
<uspace/app/vuhid/hids/bootkbd.c:88:14:<num>:0>: Non-continuation line should not have any spaces for indentation (found 5)
<uspace/app/vuhid/hids/bootkbd.c:89:14:<num>:0>: Non-continuation line should not have any spaces for indentation (found 5)
<uspace/app/vuhid/hids/bootkbd.c:93:14:<num>:0>: Non-continuation line should not have any spaces for indentation (found 5)
<uspace/app/vuhid/virthid.h:114:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/app/vuhid/virthid.h:116:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/app/vuhid/virthid.h:120:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:90:9-10:if>: Non-continuation line should not have any spaces for indentation (found 8)
<uspace/drv/block/usbmast/scsi_ms.c:90:9-10:if>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/drv/block/usbmast/scsi_ms.c:92:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:100:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:119:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:120:28-46:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:120:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:126:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:127:28-46:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:127:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:186:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:192:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:252:9-10:if>: Non-continuation line should not have any spaces for indentation (found 8)
<uspace/drv/block/usbmast/scsi_ms.c:252:9-10:if>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/drv/block/usbmast/scsi_ms.c:254:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:295:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:296:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:302:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:326:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:351:9-10:if>: Non-continuation line should not have any spaces for indentation (found 8)
<uspace/drv/block/usbmast/scsi_ms.c:351:9-10:if>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/drv/block/usbmast/scsi_ms.c:353:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:359:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:407:9-10:if>: Non-continuation line should not have any spaces for indentation (found 8)
<uspace/drv/block/usbmast/scsi_ms.c:407:9-10:if>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/drv/block/usbmast/scsi_ms.c:409:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:415:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:453:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:454:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/block/usbmast/scsi_ms.c:459:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/block/usbmast/scsi_ms.c:460:20-38:id:usb_device_get_name>: Continuation is indented by 3 spaces (should be 4)
<uspace/drv/bus/usb/ehci/ehci_batch.h:65:24:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ehci/ehci_batch.h:71:38:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ehci/ehci_batch.h:71:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/drv/bus/usb/ehci/ehci_bus.c:145:31:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ehci/ehci_bus.c:56:100:tab>: Line too long (19 characters above 80 character limit)
<uspace/drv/bus/usb/ehci/ehci_bus.c:74:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/drv/bus/usb/ehci/ehci_bus.h:80:32:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ehci/ehci_bus.h:86:32:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ehci/ehci_rh.h:82:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/bus/usb/ehci/endpoint_list.h:71:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/ehci/hc.h:106:98:tab>: Line too long (17 characters above 80 character limit)
<uspace/drv/bus/usb/ehci/hw_struct/iso_transfer_descriptor.h:74:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/ehci/hw_struct/queue_head.c:73:1:tab>: Unexpected whitespace before ')'.
<uspace/drv/bus/usb/ehci/hw_struct/queue_head.c:73:9:)>: Continuation is indented by 0 spaces (should be 4)
<uspace/drv/bus/usb/ehci/hw_struct/queue_head.c:82:21-39:id:QH_EP_CAP_MULTI_SET>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/ehci/hw_struct/queue_head.h:145:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/ehci/hw_struct/split_iso_transfer_descriptor.h:91:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/ohci/hc.h:86:21:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/hc.h:93:98:tab>: Line too long (17 characters above 80 character limit)
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c:84:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c:85:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c:86:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c:87:16:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.c:87:17-18:<<>: Continuation is indented by 8 spaces (should be 4)
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.h:109:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.h:122:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.h:140:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/endpoint_descriptor.h:206:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/bus/usb/ohci/hw_struct/iso_transfer_descriptor.h:71:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.c:71:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.h:92:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.h:105:23:(>: Whitespace expected after '='.
<uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.h:106:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/hw_struct/transfer_descriptor.h:125:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/ohci/ohci_batch.h:67:24:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/ohci_batch.h:73:38:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/ohci_batch.h:73:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/drv/bus/usb/ohci/ohci_bus.c:84:82:space>: Unexpected whitespace after unary sign operator.
<uspace/drv/bus/usb/ohci/ohci_bus.c:134:21:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/ohci_bus.c:135:15:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/ohci_bus.c:151:31:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/ohci_bus.c:74:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/drv/bus/usb/ohci/ohci_bus.c:84:101:tab>: Line too long (20 characters above 80 character limit)
<uspace/drv/bus/usb/ohci/ohci_bus.h:86:32:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/ohci/ohci_rh.h:68:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/uhci/hw_struct/queue_head.h:52:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/uhci/hw_struct/queue_head.h:50:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/uhci/hw_struct/transfer_descriptor.h:97:25-31:id:aligned>: Expected whitespace after ','.
<uspace/drv/bus/usb/uhci/hw_struct/transfer_descriptor.h:132:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/uhci/uhci_batch.h:72:24:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/uhci/uhci_batch.h:81:21:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/uhci/uhci_batch.h:85:65:tab>: Unexpected whitespace after unary sign operator.
<uspace/drv/bus/usb/uhci/uhci_batch.h:93:21:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/uhci/uhci_batch.h:110:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/drv/bus/usb/usbdiag/device.h:82:30:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/usbdiag/device.h:88:30:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/usbdiag/device.h:94:30:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/usbdiag/device.h:79:99:tab>: Line too long (18 characters above 80 character limit)
<uspace/drv/bus/usb/usbdiag/tests.h:41:99:tab>: Line too long (18 characters above 80 character limit)
<uspace/drv/bus/usb/usbdiag/tests.h:42:100:tab>: Line too long (19 characters above 80 character limit)
<uspace/drv/bus/usb/usbhub/status.h:61:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/usbhub/usbhub.h:86:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/bus/usb/usbhub/usbhub.h:87:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/drv/bus/usb/usbhub/usbhub.h:88:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/drv/bus/usb/usbhub/usbhub.h:92:88:tab>: Line too long (7 characters above 80 character limit)
<uspace/drv/bus/usb/usbmid/dump.c:57:20:space>: Single space expected before '='.
<uspace/drv/bus/usb/usbmid/dump.c:84:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/hub/hub.c:70:53:{>: Function opening brace must start on a new line.
<uspace/drv/bus/usb/vhc/hub/hub.c:339:28:tab>: Unexpected whitespace after '('.
<uspace/drv/bus/usb/vhc/hub/hub.c:346:9:tab>: Single space expected before binary operator.
<uspace/drv/bus/usb/vhc/hub/hub.c:354:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/vhc/hub/hub.c:354:26:tab>: Unexpected whitespace after '('.
<uspace/drv/bus/usb/vhc/hub/hub.c:361:12:space>: Unexpected whitespace before ')'.
<uspace/drv/bus/usb/vhc/hub/hub.c:466:12:space>: Single space expected before '='.
<uspace/drv/bus/usb/vhc/hub/hub.c:503:12:space>: Single space expected before '='.
<uspace/drv/bus/usb/vhc/hub/hub.c:72:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:73:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:74:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:75:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:76:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:77:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:78:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:79:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:80:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:81:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:82:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:83:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:84:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:85:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:86:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:87:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:88:17-23:id:default>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:89:25-30:return>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:149:25-28:id:port>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:150:25-46:id:set_port_status_change>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:150:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/hub/hub.c:236:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:237:25-48:id:clear_port_status_change>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:237:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/hub/hub.c:238:25-48:id:clear_port_status_change>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:238:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/hub/hub.c:239:25-48:id:clear_port_status_change>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:240:25-29:break>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:241:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:242:25-28:id:port>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:243:25-46:id:set_port_state_delayed>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:244:29-30:<num>:10>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:245:25-29:break>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:246:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:247:25-28:id:port>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:248:25-46:id:set_port_state_delayed>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:249:29-30:<num>:10>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:250:25-29:break>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:251:17-20:case>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:252:25-26:if>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:253:33-54:id:set_port_status_change>: Wrong indentation: found 4 tabs, should be 3 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:253:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/hub/hub.c:254:25:}>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:255:25-29:break>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:256:17-23:id:default>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:257:25-29:break>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/drv/bus/usb/vhc/hub/hub.c:346:17-18:||>: Continuation is indented by 0 spaces (should be 4)
<uspace/drv/bus/usb/vhc/hub/hub.c:346:17-18:||>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/transfer.c:53:9:tab>: Single space expected before '='.
<uspace/drv/bus/usb/vhc/transfer.c:141:54:tab>: Unexpected whitespace after '('.
<uspace/drv/bus/usb/vhc/transfer.c:271:38-41:void>: Expected space before declarator.
<uspace/drv/bus/usb/vhc/transfer.c:53:17:=>: Continuation is indented by 0 spaces (should be 4)
<uspace/drv/bus/usb/vhc/transfer.c:53:17:=>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/vhc/transfer.c:127:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/transfer.c:201:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/transfer.c:221:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/transfer.c:260:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/vhc/vhcd.h:95:100:tab>: Line too long (19 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/bus.h:49:99:tab>: Line too long (18 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:161:9:tab>: Single space expected before ':'.
<uspace/drv/bus/usb/xhci/commands.c:170:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/xhci/commands.c:45:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:48:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:49:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:50:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:52:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:54:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:152:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:161:17::>: Continuation is indented by 0 spaces (should be 4)
<uspace/drv/bus/usb/xhci/commands.c:161:17::>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/drv/bus/usb/xhci/commands.c:208:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:337:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:339:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:389:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:570:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:659:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.c:665:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.h:74:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.h:75:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/commands.h:146:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/debug.h:65:88:tab>: Line too long (7 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/device.h:74:30:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/xhci/device.h:64:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:124:32:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/xhci/endpoint.h:130:30:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/xhci/endpoint.h:78:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:85:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:91:120:tab>: Line too long (39 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:94:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:97:98:tab>: Line too long (17 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:100:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/endpoint.h:113:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hc.h:97:88:tab>: Line too long (7 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hc.h:117:96:tab>: Line too long (15 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:91:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:92:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:93:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:94:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:95:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:97:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:98:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:99:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:100:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:101:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:107:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:149:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:150:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:151:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:152:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:153:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:155:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:156:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:157:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:159:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:160:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:161:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:162:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:164:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:165:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:181:113:tab>: Line too long (32 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:187:115:tab>: Line too long (34 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:188:111:tab>: Line too long (30 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:214:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:245:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:246:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:247:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:253:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:254:108:tab>: Line too long (27 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/context.h:255:108:tab>: Line too long (27 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/hw_struct/trb.h:162:57:{>: Function opening brace must start on a new line.
<uspace/drv/bus/usb/xhci/hw_struct/trb.h:168:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/xhci/hw_struct/trb.h:169:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/xhci/hw_struct/trb.h:170:12:space>: Single space expected before binary operator.
<uspace/drv/bus/usb/xhci/hw_struct/trb.h:206:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/isoch.h:86:93:tab>: Line too long (12 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/isoch.h:125:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/main.c:70:114:tab>: Line too long (33 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/rh.h:86:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/streams.h:50:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/streams.h:63:94:tab>: Line too long (13 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/streams.h:66:106:tab>: Line too long (25 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/streams.h:67:88:tab>: Line too long (7 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/streams.h:69:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/transfers.h:55:8-27:id:usb_transfer_batch_t>: Expected space before declarator.
<uspace/drv/bus/usb/xhci/transfers.h:55:29:space>: Unexpected whitespace after '*'.
<uspace/drv/bus/usb/xhci/transfers.h:61:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:70:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:71:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:78:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:79:101:tab>: Line too long (20 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:82:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:88:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:102:100:tab>: Line too long (19 characters above 80 character limit)
<uspace/drv/bus/usb/xhci/trb_ring.h:106:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:274:60:tab>: Unexpected whitespace after unary sign operator.
<uspace/drv/nic/ar9271/ar9271.c:275:57:tab>: Unexpected whitespace after unary sign operator.
<uspace/drv/nic/ar9271/ar9271.c:290:60:tab>: Unexpected whitespace after unary sign operator.
<uspace/drv/nic/ar9271/ar9271.c:410:9-10:if>: There must be single space between 'if' and '('.
<uspace/drv/nic/ar9271/ar9271.c:446:17-19:id:key>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:447:17-19:id:key>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:448:17-19:id:key>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:449:17-19:id:key>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:450:17-19:id:key>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:493:25-27:id:mic>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:494:25-27:id:mic>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:495:25-27:id:mic>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:496:25-27:id:mic>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:497:25-27:id:mic>: Expected space before declarator.
<uspace/drv/nic/ar9271/ar9271.c:535:56:tab>: Unexpected whitespace after unary sign operator.
<uspace/drv/nic/ar9271/ar9271.c:578:62:tab>: Unexpected whitespace after unary sign operator.
<uspace/drv/nic/ar9271/ar9271.c:108:88:tab>: Line too long (7 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:132:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:212:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:274:29-34:sizeof>: Wrong indentation: found 3 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:275:29-34:sizeof>: Wrong indentation: found 3 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:276:29-34:sizeof>: Wrong indentation: found 3 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:290:29-34:sizeof>: Wrong indentation: found 3 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:291:29-34:sizeof>: Wrong indentation: found 3 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:381:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:383:45:tab>: Whitespace at end of line
<uspace/drv/nic/ar9271/ar9271.c:468:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:485:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:491:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:494:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:495:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:496:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:499:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:500:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:501:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:502:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:503:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/drv/nic/ar9271/ar9271.c:536:21-26:sizeof>: Wrong indentation: found 2 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:579:21-26:sizeof>: Wrong indentation: found 2 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ar9271.c:668:117:tab>: Line too long (36 characters above 80 character limit)
<uspace/drv/nic/ar9271/ath_usb.c:62:105:tab>: Line too long (24 characters above 80 character limit)
<uspace/drv/nic/ar9271/ath_usb.c:134:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/drv/nic/ar9271/ath_usb.c:150:13-18:sizeof>: Wrong indentation: found 1 tabs, should be 0 tabs
<uspace/drv/nic/ar9271/ath_usb.c:183:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/drv/nic/ar9271/ath_usb.h:61:100:tab>: Line too long (19 characters above 80 character limit)
<uspace/lib/c/include/byteorder.h:41:9-75:preproc>: Wrong indentation: found 1 tabs, should be 0 tabs
<uspace/lib/drv/generic/dev_iface.c:85:1-17:id:get_remote_method>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/drv/generic/remote_usb.c:54:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usb.c:92:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:60:114:tab>: Line too long (33 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:66:105:tab>: Line too long (24 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:68:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:75:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:90:115:tab>: Line too long (34 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:96:106:tab>: Line too long (25 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:98:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:105:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:120:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:121:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:135:96:tab>: Line too long (15 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:160:106:tab>: Line too long (25 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:187:97:tab>: Line too long (16 characters above 80 character limit)
<uspace/lib/drv/generic/remote_usbdiag.c:212:108:tab>: Line too long (27 characters above 80 character limit)
<uspace/lib/drv/include/usb_iface.h:51:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/lib/drv/include/usb_iface.h:52:99:tab>: Line too long (18 characters above 80 character limit)
<uspace/lib/drv/include/usbdiag_iface.h:65:25-36:id:async_sess_t>: Expected space before declarator.
<uspace/lib/drv/include/usbdiag_iface.h:67:25-36:id:async_exch_t>: Expected space before declarator.
<uspace/lib/drv/include/usbdiag_iface.h:68:26-37:id:async_exch_t>: Expected space before declarator.
<uspace/lib/drv/include/usbdiag_iface.h:72:28-36:id:ddf_fun_t>: Expected space before declarator.
<uspace/lib/drv/include/usbdiag_iface.h:73:29-37:id:ddf_fun_t>: Expected space before declarator.
<uspace/lib/drv/include/usbdiag_iface.h:67:97:tab>: Line too long (16 characters above 80 character limit)
<uspace/lib/drv/include/usbdiag_iface.h:68:98:tab>: Line too long (17 characters above 80 character limit)
<uspace/lib/drv/include/usbdiag_iface.h:72:97:tab>: Line too long (16 characters above 80 character limit)
<uspace/lib/drv/include/usbdiag_iface.h:73:98:tab>: Line too long (17 characters above 80 character limit)
<uspace/lib/usb/include/usb/classes/hub.h:180:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/classes/hub.h:190:5-38:id:USB_HUB_REQ_TYPE_CLEAR_HUB_FEATURE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:190:5-38:id:USB_HUB_REQ_TYPE_CLEAR_HUB_FEATURE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:192:5-39:id:USB_HUB_REQ_TYPE_CLEAR_PORT_FEATURE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:192:5-39:id:USB_HUB_REQ_TYPE_CLEAR_PORT_FEATURE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:197:5-30:id:USB_HUB_REQ_TYPE_GET_STATE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:197:5-30:id:USB_HUB_REQ_TYPE_GET_STATE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:199:5-35:id:USB_HUB_REQ_TYPE_GET_DESCRIPTOR>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:199:5-35:id:USB_HUB_REQ_TYPE_GET_DESCRIPTOR>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:204:5-35:id:USB_HUB_REQ_TYPE_GET_HUB_STATUS>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:204:5-35:id:USB_HUB_REQ_TYPE_GET_HUB_STATUS>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:209:5-36:id:USB_HUB_REQ_TYPE_GET_PORT_STATUS>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:209:5-36:id:USB_HUB_REQ_TYPE_GET_PORT_STATUS>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:211:5-35:id:USB_HUB_REQ_TYPE_SET_DESCRIPTOR>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:211:5-35:id:USB_HUB_REQ_TYPE_SET_DESCRIPTOR>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:213:5-36:id:USB_HUB_REQ_TYPE_SET_HUB_FEATURE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:213:5-36:id:USB_HUB_REQ_TYPE_SET_HUB_FEATURE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:218:5-34:id:USB_HUB_REQ_TYPE_SET_HUB_DEPTH>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:218:5-34:id:USB_HUB_REQ_TYPE_SET_HUB_DEPTH>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:220:5-37:id:USB_HUB_REQ_TYPE_SET_PORT_FEATURE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:220:5-37:id:USB_HUB_REQ_TYPE_SET_PORT_FEATURE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:227:5-30:id:USB_HUB_REQUEST_GET_STATUS>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:227:5-30:id:USB_HUB_REQUEST_GET_STATUS>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:229:5-33:id:USB_HUB_REQUEST_CLEAR_FEATURE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:229:5-33:id:USB_HUB_REQUEST_CLEAR_FEATURE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:231:5-29:id:USB_HUB_REQUEST_GET_STATE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:231:5-29:id:USB_HUB_REQUEST_GET_STATE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:233:5-31:id:USB_HUB_REQUEST_SET_FEATURE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:233:5-31:id:USB_HUB_REQUEST_SET_FEATURE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:235:5-34:id:USB_HUB_REQUEST_GET_DESCRIPTOR>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:235:5-34:id:USB_HUB_REQUEST_GET_DESCRIPTOR>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:237:5-34:id:USB_HUB_REQUEST_SET_DESCRIPTOR>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:237:5-34:id:USB_HUB_REQUEST_SET_DESCRIPTOR>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:239:5-35:id:USB_HUB_REQUEST_CLEAR_TT_BUFFER>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:239:5-35:id:USB_HUB_REQUEST_CLEAR_TT_BUFFER>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:241:5-28:id:USB_HUB_REQUEST_RESET_TT>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:241:5-28:id:USB_HUB_REQUEST_RESET_TT>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:243:5-24:id:USB_HUB_GET_TT_STATE>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:243:5-24:id:USB_HUB_GET_TT_STATE>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:245:5-19:id:USB_HUB_STOP_TT>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:245:5-19:id:USB_HUB_STOP_TT>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/classes/hub.h:247:5-33:id:USB_HUB_REQUEST_SET_HUB_DEPTH>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usb/include/usb/classes/hub.h:247:5-33:id:USB_HUB_REQUEST_SET_HUB_DEPTH>: Wrong indentation: found 0 tabs, should be 1 tabs
<uspace/lib/usb/include/usb/descriptor.h:103:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:131:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:158:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:193:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:225:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:256:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:267:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/descriptor.h:298:16:space>: Unexpected whitespace after '__attribute__'.
<uspace/lib/usb/include/usb/port.h:92:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/lib/usb/include/usb/usb.h:56:13:space>: Unexpected whitespace after '*'.
<uspace/lib/usb/include/usb/usb.h:57:13:space>: Unexpected whitespace after '*'.
<uspace/lib/usb/include/usb/usb.h:152:12:space>: Single space expected before binary operator.
<uspace/lib/usb/include/usb/usb.h:169:36:space>: Unexpected whitespace before ','.
<uspace/lib/usb/include/usb/usb.h:169:38:<num>:3>: Whitespace expected after ','.
<uspace/lib/usb/include/usb/usb.h:170:36:space>: Unexpected whitespace before ','.
<uspace/lib/usb/include/usb/usb.h:170:38:<num>:3>: Whitespace expected after ','.
<uspace/lib/usb/include/usb/usb.h:172:34:space>: Unexpected whitespace before ','.
<uspace/lib/usb/include/usb/usb.h:172:36:<num>:2>: Whitespace expected after ','.
<uspace/lib/usb/include/usb/usb.h:173:34:space>: Unexpected whitespace before ','.
<uspace/lib/usb/include/usb/usb.h:173:36:<num>:2>: Whitespace expected after ','.
<uspace/lib/usb/include/usb/usb.h:174:36:space>: Unexpected whitespace before ','.
<uspace/lib/usb/include/usb/usb.h:174:38:<num>:2>: Whitespace expected after ','.
<uspace/lib/usb/include/usb/usb.h:176:34:space>: Unexpected whitespace before ','.
<uspace/lib/usb/include/usb/usb.h:176:36:<num>:0>: Whitespace expected after ','.
<uspace/lib/usb/src/port.c:68:39:space>: Unexpected whitespace after '*'.
<uspace/lib/usb/src/port.c:87:9:tab>: Single space expected before '?'.
<uspace/lib/usb/src/port.c:88:9:tab>: Single space expected before ':'.
<uspace/lib/usb/src/port.c:145:36:space>: Unexpected whitespace after '*'.
<uspace/lib/usb/src/port.c:87:17:?>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usb/src/port.c:87:17:?>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/lib/usb/src/port.c:88:17::>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usb/src/port.c:88:17::>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/lib/usb/src/port.c:104:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/lib/usb/src/port.c:241:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/lib/usbdev/include/usb/dev/device.h:70:15:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:73:13:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:76:15:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:87:25:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:97:33:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:99:35:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:102:7:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:103:7:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/include/usb/dev/device.h:61:96:tab>: Line too long (15 characters above 80 character limit)
<uspace/lib/usbdev/include/usb/dev/pipes.h:94:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbdev/include/usb/dev/pipes.h:107:141:tab>: Line too long (60 characters above 80 character limit)
<uspace/lib/usbdev/include/usb/dev/poll.h:62:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/lib/usbdev/include/usb/dev/poll.h:88:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/lib/usbdev/src/dp.c:248:12:space>: Single space expected before binary operator.
<uspace/lib/usbdev/src/dp.c:314:12:space>: Single space expected before binary operator.
<uspace/lib/usbdev/src/dp.c:129:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/lib/usbdev/src/dp.c:172:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbdev/src/dp.c:260:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/lib/usbdev/src/driver.c:63:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:340:58-61:void>: Expected space before declarator.
<uspace/lib/usbdev/src/pipes.c:340:63:space>: Unexpected whitespace after '*'.
<uspace/lib/usbdev/src/pipes.c:99:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:158:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:242:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:340:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:385:94:tab>: Line too long (13 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:404:160:tab>: Line too long (79 characters above 80 character limit)
<uspace/lib/usbdev/src/pipes.c:431:86:tab>: Line too long (5 characters above 80 character limit)
<uspace/lib/usbhid/src/hidparser.c:119:58:space>: Unexpected whitespace before ';'.
<uspace/lib/usbhid/src/hidparser.c:166:70:tab>: Unexpected whitespace after '('.
<uspace/lib/usbhid/src/hidparser.c:171:65:tab>: Unexpected whitespace after '('.
<uspace/lib/usbhid/src/hidparser.c:175:62:tab>: Unexpected whitespace after '('.
<uspace/lib/usbhid/src/hidparser.c:180:62:tab>: Unexpected whitespace after '('.
<uspace/lib/usbhid/src/hidparser.c:337:17-22:id:buffer>: Expected space before declarator.
<uspace/lib/usbhid/src/hidparser.c:369:25-30:id:buffer>: Expected space before declarator.
<uspace/lib/usbhid/src/hidparser.c:384:44:space>: Single space expected before binary operator.
<uspace/lib/usbhid/src/hidparser.c:386:41-46:id:buffer>: Expected space before declarator.
<uspace/lib/usbhid/src/hidparser.c:399:41-46:id:buffer>: Expected space before declarator.
<uspace/lib/usbhid/src/hidparser.c:401:41-46:id:buffer>: Expected space before declarator.
<uspace/lib/usbhid/src/hidparser.c:473:32-35:id:item>: Whitespace expected after ','.
<uspace/lib/usbhid/src/hidparser.c:520:63:tab>: Unexpected whitespace after '('.
<uspace/lib/usbhid/src/hidparser.c:522:65:tab>: Unexpected whitespace after '('.
<uspace/lib/usbhid/src/hidparser.c:54:71:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:55:9-15:id:int32_t>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidparser.c:55:9-15:id:int32_t>: Wrong indentation: found 1 tabs, should be 0 tabs
<uspace/lib/usbhid/src/hidparser.c:82:73:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:106:78:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:131:5:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:132:83:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:132:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhid/src/hidparser.c:148:74:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:163:47:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:164:41-62:id:usb_hid_translate_data>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidparser.c:164:41-62:id:usb_hid_translate_data>: Wrong indentation: found 5 tabs, should be 4 tabs
<uspace/lib/usbhid/src/hidparser.c:170:52:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:176:60:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:177:63:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:181:60:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:185:76:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:216:13-22:id:resolution>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usbhid/src/hidparser.c:216:13-22:id:resolution>: Wrong indentation: found 1 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidparser.c:218:13-22:id:resolution>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usbhid/src/hidparser.c:218:13-22:id:resolution>: Wrong indentation: found 1 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidparser.c:219:17:(>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidparser.c:220:17:(>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidparser.c:257:72:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:272:72:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:324:67:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:341:73:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:350:69:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:359:64:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:378:65:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:386:74:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:390:68:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:393:74:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:396:64:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:420:71:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:432:81:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:437:13-22:id:resolution>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usbhid/src/hidparser.c:437:13-22:id:resolution>: Wrong indentation: found 1 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidparser.c:439:13-22:id:resolution>: Non-continuation line should not have any spaces for indentation (found 4)
<uspace/lib/usbhid/src/hidparser.c:439:13-22:id:resolution>: Wrong indentation: found 1 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidparser.c:440:17:(>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidparser.c:441:17:(>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidparser.c:444:65:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:448:69:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:472:49:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:493:78:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:494:76:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:497:52:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:513:77:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:557:81:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:563:25:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidparser.c:569:59:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:79:9:tab>: Single space expected before '='.
<uspace/lib/usbhid/src/hidpath.c:106:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:106:43:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:127:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:127:43:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:150:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:150:43:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:154:17-22:switch>: There must be single space between 'switch' and '('.
<uspace/lib/usbhid/src/hidpath.c:342:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:342:24:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:345:1:tab>: There must be single space between '}' and 'else'.
<uspace/lib/usbhid/src/hidpath.c:365:9-13:while>: There must be single space between 'while' and '('.
<uspace/lib/usbhid/src/hidpath.c:365:40:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:386:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:386:34:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:392:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:392:42:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:400:17-18:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:428:9-10:if>: There must be single space between 'if' and '('.
<uspace/lib/usbhid/src/hidpath.c:428:24:)>: Expected single space before block opening brace.
<uspace/lib/usbhid/src/hidpath.c:75:76:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:76:37-43:id:int32_t>: Continuation is indented by 36 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:77:9:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:79:17:=>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:79:17:=>: Wrong indentation: found 2 tabs, should be 1 tabs
<uspace/lib/usbhid/src/hidpath.c:129:25-51:id:usb_hid_report_usage_path_t>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:129:25-51:id:usb_hid_report_usage_path_t>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidpath.c:145:70:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:146:35-41:id:int32_t>: Continuation is indented by 34 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:152:22-48:id:usb_hid_report_usage_path_t>: Continuation is indented by 5 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:155:25-28:case>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidpath.c:156:33-36:id:item>: Wrong indentation: found 4 tabs, should be 3 tabs
<uspace/lib/usbhid/src/hidpath.c:157:33-37:break>: Wrong indentation: found 4 tabs, should be 3 tabs
<uspace/lib/usbhid/src/hidpath.c:158:25-28:case>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidpath.c:159:33-36:id:item>: Wrong indentation: found 4 tabs, should be 3 tabs
<uspace/lib/usbhid/src/hidpath.c:160:33-37:break>: Wrong indentation: found 4 tabs, should be 3 tabs
<uspace/lib/usbhid/src/hidpath.c:239:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhid/src/hidpath.c:303:23:(>: Continuation is indented by 6 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:345:9-12:else>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:381:9-29:id:usb_hid_report_path_t>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:381:9-29:id:usb_hid_report_path_t>: Wrong indentation: found 1 tabs, should be 0 tabs
<uspace/lib/usbhid/src/hidpath.c:406:73:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:407:73:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:425:72:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidpath.c:426:9-15:id:uint8_t>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidpath.c:426:9-15:id:uint8_t>: Wrong indentation: found 1 tabs, should be 0 tabs
<uspace/lib/usbhid/src/hidreport.c:73:17-38:id:usb_device_descriptors>: Continuation is indented by 8 spaces (should be 4)
<uspace/lib/usbhid/src/hidreport.c:137:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbhid/src/hidreport.c:165:62:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreport.c:177:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhid/src/hidreport.c:191:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbhid/src/hidreq.c:134:49:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:135:70:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:159:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhid/src/hidreq.c:212:68:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:213:67:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:239:49:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:240:70:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:245:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhid/src/hidreq.c:264:70:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:283:25:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:291:49:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:292:70:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:303:25-35:id:actual_size>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidreq.c:303:25-35:id:actual_size>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/lib/usbhid/src/hidreq.c:326:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbhid/src/hidreq.c:353:49:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:354:70:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:355:62:tab>: Whitespace at end of line
<uspace/lib/usbhid/src/hidreq.c:366:25-35:id:actual_size>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhid/src/hidreq.c:366:25-35:id:actual_size>: Wrong indentation: found 3 tabs, should be 2 tabs
<uspace/lib/usbhost/include/usb/host/bus.h:113:88:tab>: Line too long (7 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/bus.h:180:85:tab>: Line too long (4 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/ddf_helpers.h:60:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/endpoint.h:132:19:space>: Unexpected whitespace after '*'.
<uspace/lib/usbhost/include/usb/host/endpoint.h:104:96:tab>: Line too long (15 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/endpoint.h:105:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/endpoint.h:116:89:tab>: Line too long (8 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/hcd.h:102:66:{>: Function opening brace must start on a new line.
<uspace/lib/usbhost/include/usb/host/hcd.h:80:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/usb2_bus.h:63:87:tab>: Line too long (6 characters above 80 character limit)
<uspace/lib/usbhost/include/usb/host/utility.h:50:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhost/src/bandwidth.c:65:12:space>: Single space expected before binary operator.
<uspace/lib/usbhost/src/bandwidth.c:76:1:tab>: Expected single space before block opening brace.
<uspace/lib/usbhost/src/bandwidth.c:131:12:space>: Single space expected before binary operator.
<uspace/lib/usbhost/src/bandwidth.c:76:9:{>: Continuation is indented by 0 spaces (should be 4)
<uspace/lib/usbhost/src/bandwidth.c:145:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/lib/usbhost/src/bandwidth.c:147:92:tab>: Line too long (11 characters above 80 character limit)
<uspace/lib/usbhost/src/hcd.c:160:31:{>: Whitespace expected before initializer.
<uspace/lib/usbhost/src/hcd.c:160:32:<num>:0>: Whitespace expected before '}'.
<uspace/lib/usbhost/src/hcd.c:157:94:tab>: Line too long (13 characters above 80 character limit)
<uspace/lib/usbhost/src/hcd.c:176:95:tab>: Line too long (14 characters above 80 character limit)
<uspace/lib/usbhost/src/hcd.c:214:96:tab>: Line too long (15 characters above 80 character limit)
<uspace/lib/usbhost/src/hcd.c:270:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbhost/src/hcd.c:294:12-20:id:hc_driver>: Continuation is indented by 3 spaces (should be 4)
<uspace/lib/usbhost/src/hcd.c:356:83:tab>: Line too long (2 characters above 80 character limit)
<uspace/lib/usbhost/src/hcd.c:367:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbvirt/src/ipc_hc.c:79:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbvirt/src/ipc_hc.c:87:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbvirt/src/ipc_hc.c:152:84:tab>: Line too long (3 characters above 80 character limit)
<uspace/lib/usbvirt/src/ipc_hc.c:160:82:tab>: Line too long (1 characters above 80 character limit)
<uspace/lib/usbvirt/src/transfer.c:84:20:space>: Single space expected before '?'.
<uspace/lib/usbvirt/src/transfer.c:121:90:tab>: Line too long (9 characters above 80 character limit)
<uspace/lib/usbvirt/src/transfer.c:164:83:tab>: Line too long (2 characters above 80 character limit)

@Aearsis
Copy link
Member

Aearsis commented Feb 26, 2018

@jermar Tried to fix some of the cstyle errors, and it complaints about a space after asterisk on e.g.:

<uspace/drv/bus/usb/ehci/ehci_bus.c:145:31:space>: Unexpected whitespace after '*'.

The line defines a constant pointer. I really don't think we shall remove the space, but I want to make sure. What is the preffered way of writing these declarations?

@jermar
Copy link
Member Author

jermar commented Feb 26, 2018

@Aearsis I think you can leave this one as is.

@jermar
Copy link
Member Author

jermar commented Feb 26, 2018

@Aearsis There were more serious violations of the coding style, such as wrong indentation, lines to long and not making spaces in essential places.

@@ -116,7 +120,7 @@ errno_t usbmid_spawn_interface_child(usb_device_t *parent,
* The interface number shall provide uniqueness while the
* class name something humanly understandable.
*/
int ret = asprintf(&child_name, "%s%hhu",
errno_t ret = asprintf(&child_name, "%s%hhu",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not errno_t.

usb_debug_str_buffer(buffer, buffer_size, 0));

if (hid_dev->max_input_report_size >= buffer_size) {
/*! @todo This should probably be atomic. */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use // TODO:

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not even sure this is our code, but sure we'll change it :)

#define uint8_t_le2host(n) (n)
#define host2uint8_t_be(n) (n)
#define host2uint8_t_le(n) (n)
#define host2uint8_t_le(n) (n)
Copy link
Contributor