I would like to use some constants defined in this Linux userspace API header file in my permissive (MIT) licensed project.
I could simply #include
this header in my project, which will use the version on the local filesystem. This is what I do now and shouldn't present any licensing difficulties.
However, I have run into the issue where some older systems may not have this file, or may have it but with some entries missing, which may cause compile errors. So I would like to include the data from a portion of this file, basically the mapping of names to numbers you see there, with my project.
Can I simply copy/paste the 20-odd values into my source? If not, could I type out a new version of the file myself, perhaps with new constant names? Any other options I can use to avoid running afoul of the GPL?
The portion I'm interested in looks roughly like this (essentially the entire current contents of the file):
#define KPF_LOCKED 0
#define KPF_ERROR 1
#define KPF_REFERENCED 2
#define KPF_UPTODATE 3
#define KPF_DIRTY 4
#define KPF_LRU 5
#define KPF_ACTIVE 6
#define KPF_SLAB 7
#define KPF_WRITEBACK 8
#define KPF_RECLAIM 9
#define KPF_BUDDY 10
/* 11-20: new additions in 2.6.31 */
#define KPF_MMAP 11
#define KPF_ANON 12
#define KPF_SWAPCACHE 13
#define KPF_SWAPBACKED 14
#define KPF_COMPOUND_HEAD 15
#define KPF_COMPOUND_TAIL 16
#define KPF_HUGE 17
#define KPF_UNEVICTABLE 18
#define KPF_HWPOISON 19
#define KPF_NOPAGE 20
#define KPF_KSM 21
#define KPF_THP 22
#define KPF_BALLOON 23
#define KPF_ZERO_PAGE 24
#define KPF_IDLE 25
#define KPF_PGTABLE 26