Skip to main content

Posts

Showing posts with the label linux-kernel

What is ":-!!' in C code?

I bumped into this strange macro code in /usr/include/linux/kernel.h : /* Force a compilation error if condition is true, but also produce a result (of value 0 and type size_t), so the expression can be used e.g. in a structure initializer (or where-ever else comma expressions aren't permitted). */ #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))

Resources for studying the Android kernel

Ive been trying to study the Android kernel but I cant find any resource that dwells into the depths of the topic. I wanted to look into how Android specifically handles scheduling, garbage-collection, synchronization and how it implements its file-system. I understand that Android is based on the Linux kernel, but there are many dis-similarities between the two. Any idea where can I get a detailed explanation of the above topics with respect to the Android kernel? PS:I have already looked into Processes and Threads at the dev site and This post on scheduling Thx.