|
发表于 2022-6-18 19:40:05
|
显示全部楼层
#include <stdio.h>5 Q$ m( B: d4 e; b) t
#include <unistd.h>7 N- u9 ~( i4 M2 k) X$ _) {
#include <fcntl.h> _+ l+ p3 H' i+ O
#include <errno.h>1 y* M5 I! s! U
#include <sys/ioctl.h>: D* t& r: H& H1 N- `
1 T6 G, y Z2 u+ B- t5 d l#define IOCMD_LOCK 0xC0204D01
2 @1 f0 I, Y& a! Z W#define IOCMD_UNLOCK 0xC0204D02
6 t. W9 ~3 o. B. A' `+ O1 ~9 O' v) P$ G0 v& E* j; M
void usage(const char* app)
# n( T( }5 Y" Q3 P# G{* k2 b2 a( @/ u5 P" ]
printf("%s -l <mtd name> ... lock mtd\n", app);+ ?" b2 F( L+ B' D; e( }) A
printf("%s -u <mtd name> ... unlock mtd\n", app);
0 f) f( n% N& J- l, F}% j2 g5 O: l/ O; x2 l
4 D: x6 u2 a4 M* C6 gint main(int argc, char* argv[])
! J' M! l1 ~" V{
) e7 I% r8 l( F4 S! d2 t/ V, e const char* file = "/proc/wap_proc/mtd_protect";
1 H. c, H# u+ A3 a& C( H int fd, r;+ Z0 r, X; G5 j7 X$ T( ~
unsigned long cmd = IOCMD_UNLOCK;/ G: C. I# K1 M3 P2 {8 g; [$ O
" K! F( {0 X4 Y' S0 ^
if(argc < 3)/ H9 ` A2 [6 G5 M8 x
{
# U+ V; ]5 w' q d& s' H usage(argv[0]);
5 @, O2 ^# `, p6 q/ N return 1;
$ H+ B g1 e5 X% B" E/ s( [ }" M7 N& r5 a$ W: b2 b S. U0 Z: R3 z
if('-' == argv[1][0])9 Y" ]8 g' F. k. @3 g
{
: K G' g* D! E; k; D; E% `: p8 w1 N if('l' == argv[1][1])
( }% i5 ?, t0 q+ f$ O cmd = IOCMD_LOCK;/ u7 W) h' Y1 c0 P/ B6 E* P( y
else if('u' != argv[1][1])- E" O7 _8 @! {. l) P" n6 O
{usage(argv[0]); return 1;}
! ^. l+ o2 C+ Z6 y, U q }+ y$ v% G1 C. e o/ R$ L( V) @
else
+ ]; f) k+ q* H: s) V/ z1 v5 ^2 ^ {: k" {* P2 g+ r4 Y
usage(argv[0]);$ ]0 q) ~/ I, G- L
return 1;. n( X; z. e$ G/ T" Q. Z" O& v/ U
}
; [5 x1 y- @, }9 |6 f fd = open(file, O_RDWR);
6 m; k0 B7 S1 Y# Y) c if(fd < 0)3 B" ~0 n0 B. M( ]! z4 ^
{
# S# A: G- F) ^# O4 S printf("Can not open: %s\n", file);
2 D6 A# Z/ p' j& E% _ return 1;) i& f; u9 m: E# G( I* H. v
}! b1 D% J" s2 c
r = ioctl(fd, cmd, argv[2]);; h" `$ s) B+ t7 x: O* O
close(fd);
$ g# f. z& s% P3 A& \! }, S printf("%s '%s' %s. errno:%u\n",
9 z7 U& Y3 I/ G2 ~7 {3 l! y (IOCMD_UNLOCK == cmd ? "Unlock" : "Lock"),. {) n) M0 y& Z. h
argv[2], (r < 0 ? "failed" : "success"), errno);2 m" _! P( ]/ l3 t; D1 P
return 0;: e! r( L: a3 R6 u& ~2 _5 f0 p
}
. c6 W. Z' c* E8 D+ E2 y
. L( u* ~5 D. h c% Y
5 l x6 \# x3 s# j4 a/ E2 ?! F
; M7 U3 a( |) o/ E4 z |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|