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

Add MiniOS as a target #118

Merged
merged 6 commits into from Jun 3, 2014

Conversation

Projects
None yet
3 participants
@jpemartins
Contributor

jpemartins commented Apr 15, 2014

Add support for MiniOS as an additional target to Click. Like we discussed two weeks ago, this pull request already takes into account the changes you suggested i.e. usage of system toolchain, a bit of restyling, docs. I don't exactly know how to deal with the dependencies (newlib, lwip, mini-os) but I don't include them to give more freedom to the developers. I added this information to the INSTALL file with instructions, in a ClickOS section.

Please have a look and let me know what do you think.

Cheers!

click: Add minios build
Patch click to build on top of MiniOS.

Signed-off-by: Filipe Manco <filipe.manco@neclab.eu>
@kohler

This comment has been minimized.

Owner

kohler commented Apr 15, 2014

Hi, I'm psyched for this!

An initial question: It seems possible that CLICK_MINIOS should actually define CLICK_USERLEVEL, because there's a lot of overlap. Is that crazy?

@jpemartins

This comment has been minimized.

Contributor

jpemartins commented Apr 15, 2014

Initially was like that. So when rewriting the Click build integration we switched to just CLICK_MINIOS to be cleaner. Problem is that MiniOS is a bit limited, and not libc complete. So in the end, I am just afraid that a lot of !CLICK_MINIOS would be spread out all over the place. But might not be the case! @fmanco has a better word on this, since he rewrote how everything got assembled.

@fmanco

This comment has been minimized.

Contributor

fmanco commented Apr 15, 2014

Hey, in fact we started by define CLICK_USERLEVEL and then have special cases to compile with minios, but there were a couple of reasons that made me switch to this option. It looked (at least for me) cleaner to define CLICK_MINIOS only on the specific cases where it is necessary, making it also less likely that we need to think about minios when changing the user level. Since there are some functionality minios doesn't support (e.g. minios doesn't have a filesystem) we would probably end up replacing CLICK_USERLEVEL || CLICK_MINIOS by CLICK_USERLEVEL && !CLICK_MINIOS on different places. Also I'm not sure how to handle config-minios.h since I let in the header only the essential macros to build with minios.

It is for sure possible to rewrite this defining CLICK_USERLEVEL, if you think that's the appropriate way to do it, but I'm not sure that it would be cleaner or bring any advantage. What do you think?

@kohler

This comment has been minimized.

Owner

kohler commented Apr 15, 2014

I am convinced. I still wonder about clickos vs. minios (would be nice to
define a consistent name!). More comments later.

On Tue, Apr 15, 2014 at 11:51 AM, Filipe Manco notifications@github.comwrote:

Hey, in fact we started by define CLICK_USERLEVEL and then have special
cases to compile with minios, but there were a couple of reasons that made
me switch to this option. It looked (at least for me) cleaner to define
CLICK_MINIOS only on the specific cases where it is necessary, making it
also less likely that we need to think about minios when changing the user
level. Since there are some functionality minios doesn't support (e.g.
minios doesn't have a filesystem) we would probably end up replacing CLICK_USERLEVEL
|| CLICK_MINIOS by CLICK_USERLEVEL && !CLICK_MINIOS on different places.
Also I'm not sure how to handle config-minios.h since I let in the header
only the essential macros to build with minios.

It is for sure possible to rewrite this defining CLICK_USERLEVEL, if you
think that's the appropriate way to do it, but I'm not sure that it would
be cleaner or bring any advantage. What do you think?


Reply to this email directly or view it on GitHubhttps://github.com//pull/118#issuecomment-40498773
.

@jpemartins

This comment has been minimized.

Contributor

jpemartins commented Apr 15, 2014

Just updated the pull request, regarding this matter. There was still a remnant of CLICK_OS in one of the commits.

@kohler

This comment has been minimized.

Owner

kohler commented Apr 30, 2014

Placeholder comment: I still intend to look at this in more detail.

jpemartins and others added some commits Apr 15, 2014

click/minios: Add mini-os glue
Add the main application.

Signed-off-by: Joao Martins <joao.martins@neclab.eu>
click: Increase default_headroom for CLICK_MINIOS
Improve performance by reduce the number of memory reallocations.

Signed-off-by: Joao Martins <joao.martins@neclab.eu>
minios/elements: Add FromDevice element
Signed-off-by: Joao Martins <joao.martins@neclab.eu>
minios: Compile with HAVE_PORTABLE_LLRPC
This is a workaround for compilation problems in some situations where
_IOC_DIRSHIFT is not defined. We should take a look at this later on.

Signed-off-by: Filipe Manco <filipe.manco@neclab.eu>
minios/elements: Add ToDevice element
Signed-off-by: Joao Martins <joao.martins@neclab.eu>
@jpemartins

This comment has been minimized.

Contributor

jpemartins commented May 27, 2014

Hi Eddie, I just updated the PR because I had a minor bug in the element handlers. Did you get a chance to get back to this in the meantime? Do you have any comments or concerns?

Thanks in advance!

@kohler kohler merged commit 3e4e389 into kohler:master Jun 3, 2014

@kohler

This comment has been minimized.

Owner

kohler commented Jun 3, 2014

MERGED!!! THANK YOU! Very exciting.

@jpemartins

This comment has been minimized.

Contributor

jpemartins commented Jun 3, 2014

AWESOME! :D Thank you Eddie!

@jpemartins jpemartins deleted the sysml:for-kohler branch Jun 4, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment