/* * patch-cmdline.c - patch the kernel command line on rb532 * * Copyright (C) 2006 Felix Fietkau * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #include #include #include #include #include #include #include #include #define SEARCH_SPACE (16 * 1024) #define CMDLINE_MAX 512 int main(int argc, char **argv) { int fd, found = 0, len, ret = -1; char *ptr, *p; if (argc != 3) { fprintf(stderr, "Usage: %s \n", argv[0]); goto err1; } len = strlen(argv[2]); if (len + 9 > CMDLINE_MAX) { fprintf(stderr, "Command line string too long\n"); goto err1; } if (((fd = open(argv[1], O_RDWR)) < 0) || (ptr = (char *) mmap(0, SEARCH_SPACE + CMDLINE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1)) { fprintf(stderr, "Could not open kernel image"); goto err2; } for (p = ptr; p < (ptr + SEARCH_SPACE); p += 4) { if (memcmp(p, "CMDLINE:", 8) == 0) { found = 1; p += 8; break; } } if (!found) { fprintf(stderr, "Command line marker not found!\n"); goto err3; } memset(p, 0, CMDLINE_MAX - 8); strcpy(p, argv[2]); msync(p, CMDLINE_MAX, MS_SYNC|MS_INVALIDATE); ret = 0; err3: munmap((void *) ptr, len); err2: if (fd > 0) close(fd); err1: return ret; } wrt/upstream/commit/target/Config.in?id=266c70cdf4011503ad2a3cbad088526a6df67107'>commitdiffstats
blob: cc42ad1266139d5aa9050a59a95b6a085291fed2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
source "tmp/.config-target.in"

# Kernel/Hardware features

config HAS_SPE_FPU
	depends powerpc
	select HAS_FPU
	bool

config HAS_FPU
	bool

config AUDIO_SUPPORT
	bool

config GPIO_SUPPORT
	bool

config PCI_SUPPORT
	select AUDIO_SUPPORT
	bool

config PCIE_SUPPORT
	bool

config PCMCIA_SUPPORT
	bool

config USB_SUPPORT
	select AUDIO_SUPPORT
	bool

config USB_GADGET_SUPPORT
	bool

config RTC_SUPPORT
	bool

config BIG_ENDIAN
	bool

config USES_INITRAMFS
	bool

config USES_SQUASHFS
	bool

config USES_JFFS2
	bool

config USES_EXT4
	bool

config USES_TARGZ
	bool

config USES_CPIOGZ
	bool

config USES_UBIFS
	bool

config PROFILE_KCONFIG
	bool

config NOMMU
	bool

# Architecture selection

config arm
	bool

config armeb
	select BIG_ENDIAN
	bool

config avr32
	select BIG_ENDIAN
	bool

config cris
	bool

config i386
	bool

config i686
	bool 

config m68k
	bool

config mips
	select BIG_ENDIAN
	bool

config mipsel
	bool

config mips64
	select BIG_ENDIAN
	bool

config mips64el
	bool

config powerpc
	select BIG_ENDIAN
	bool

config powerpc64
	select BIG_ENDIAN
	bool

config sh3
	bool

config sh3eb
	select BIG_ENDIAN
	bool

config sh4
	bool

config sh4eb
	select BIG_ENDIAN
	bool

config sparc
	select BIG_ENDIAN
	bool

config ubicom32
	select BIG_ENDIAN
	bool

config x86_64
	bool

config ARCH
	string
	default "arm"       if arm
	default "armeb"     if armeb
	default "avr32"     if avr32
	default "cris"      if cris
	default "i386"      if i386
	default "i686"      if i686
	default "m68k"      if m68k
	default "mips"      if mips
	default "mipsel"    if mipsel
	default "mips64"    if mips64
	default "mips64el"  if mips64el
	default "powerpc"   if powerpc
	default "sh3"       if sh3
	default "sh3eb"     if sh3eb
	default "sh4"       if sh4
	default "sh4eb"     if sh4eb
	default "sparc"     if sparc
	default "ubicom32"  if ubicom32
	default "x86_64"    if x86_64