Commit c52bb3e1 authored by Alessandro Rubini's avatar Alessandro Rubini

trivial: arch-bare-i386/: checkpatch fixes

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 7255f628
...@@ -34,7 +34,7 @@ extern int sys_send(int fd, void *pkt, int plen, int flags); ...@@ -34,7 +34,7 @@ extern int sys_send(int fd, void *pkt, int plen, int flags);
extern int sys_shutdown(int fd, int flags); extern int sys_shutdown(int fd, int flags);
extern int sys_close(int fd); extern int sys_close(int fd);
extern int sys_setsockopt(int fd, int level, int optname, const void *optval, extern int sys_setsockopt(int fd, int level, int optname, const void *optval,
int optlen); int optlen);
extern int sys_gettimeofday(void *tv, void *z); extern int sys_gettimeofday(void *tv, void *z);
extern int sys_settimeofday(void *tv, void *z); extern int sys_settimeofday(void *tv, void *z);
extern int sys_adjtimex(void *tv); extern int sys_adjtimex(void *tv);
...@@ -84,8 +84,7 @@ struct bare_sockaddr_ll { ...@@ -84,8 +84,7 @@ struct bare_sockaddr_ll {
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */ /* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
#define SOL_IP 0 #define SOL_IP 0
/* #define SOL_ICMP 1 No-no-no! Due to Linux :-) we cannot use /* #define SOL_ICMP 1 No-no-no! We cannot use SOL_ICMP=1 */
SOL_ICMP=1 */
#define SOL_TCP 6 #define SOL_TCP 6
#define SOL_UDP 17 #define SOL_UDP 17
#define SOL_IPV6 41 #define SOL_IPV6 41
...@@ -123,10 +122,10 @@ struct bare_sockaddr_ll { ...@@ -123,10 +122,10 @@ struct bare_sockaddr_ll {
/* start copy from uapi/linux/if_packet.h */ /* start copy from uapi/linux/if_packet.h */
struct bare_packet_mreq { struct bare_packet_mreq {
int mr_ifindex; int mr_ifindex;
unsigned short mr_type; unsigned short mr_type;
unsigned short mr_alen; unsigned short mr_alen;
unsigned char mr_address[8]; unsigned char mr_address[8];
}; };
#define PACKET_MR_MULTICAST 0 #define PACKET_MR_MULTICAST 0
...@@ -176,7 +175,7 @@ struct bare_ethhdr { ...@@ -176,7 +175,7 @@ struct bare_ethhdr {
struct bare_timeval { struct bare_timeval {
unsigned long tv_sec; unsigned long tv_sec;
unsigned long tv_usec; unsigned long tv_usec;
unsigned long tv_nsec; unsigned long tv_nsec;
}; };
#ifndef NULL #ifndef NULL
...@@ -188,69 +187,73 @@ struct bare_timeval { ...@@ -188,69 +187,73 @@ struct bare_timeval {
/* /*
* Mode codes (timex.mode) * Mode codes (timex.mode)
*/ */
#define ADJ_OFFSET 0x0001 /* time offset */ #define ADJ_OFFSET 0x0001 /* time offset */
#define ADJ_FREQUENCY 0x0002 /* frequency offset */ #define ADJ_FREQUENCY 0x0002 /* frequency offset */
#define ADJ_MAXERROR 0x0004 /* maximum time error */ #define ADJ_MAXERROR 0x0004 /* maximum time error */
#define ADJ_ESTERROR 0x0008 /* estimated time error */ #define ADJ_ESTERROR 0x0008 /* estimated time error */
#define ADJ_STATUS 0x0010 /* clock status */ #define ADJ_STATUS 0x0010 /* clock status */
#define ADJ_TIMECONST 0x0020 /* pll time constant */ #define ADJ_TIMECONST 0x0020 /* pll time constant */
#define ADJ_TAI 0x0080 /* set TAI offset */ #define ADJ_TAI 0x0080 /* set TAI offset */
#define ADJ_MICRO 0x1000 /* select microsecond resolution */ #define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */
#define ADJ_NANO 0x2000 /* select nanosecond resolution */ #define ADJ_MICRO 0x1000 /* select microsecond resolution */
#define ADJ_TICK 0x4000 /* tick value */ #define ADJ_NANO 0x2000 /* select nanosecond resolution */
#define ADJ_TICK 0x4000 /* tick value */
#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */
/* xntp 3.4 compatibility names */ /* xntp 3.4 compatibility names */
#define MOD_OFFSET ADJ_OFFSET #define MOD_OFFSET ADJ_OFFSET
#define MOD_FREQUENCY ADJ_FREQUENCY #define MOD_FREQUENCY ADJ_FREQUENCY
#define MOD_MAXERROR ADJ_MAXERROR #define MOD_MAXERROR ADJ_MAXERROR
#define MOD_ESTERROR ADJ_ESTERROR #define MOD_ESTERROR ADJ_ESTERROR
#define MOD_STATUS ADJ_STATUS #define MOD_STATUS ADJ_STATUS
#define MOD_TIMECONST ADJ_TIMECONST #define MOD_TIMECONST ADJ_TIMECONST
#define MOD_TAI ADJ_TAI
#define MOD_MICRO ADJ_MICRO
#define MOD_NANO ADJ_NANO
struct bare_timex { struct bare_timex {
unsigned int modes; /* mode selector */ unsigned int modes; /* mode selector */
long offset; /* time offset (usec) */ long offset; /* time offset (usec) */
long freq; /* frequency offset (scaled ppm) */ long freq; /* frequency offset (scaled ppm) */
long maxerror; /* maximum error (usec) */ long maxerror; /* maximum error (usec) */
long esterror; /* estimated error (usec) */ long esterror; /* estimated error (usec) */
int status; /* clock command/status */ int status; /* clock command/status */
long constant; /* pll time constant */ long constant; /* pll time constant */
long precision; /* clock precision (usec) (read only) */ long precision; /* clock precision (usec) (read only) */
long tolerance; /* clock frequency tolerance (ppm) long tolerance; /* clock frequency tolerance (ppm)
* (read only) * (read only)
*/ */
struct bare_timeval time; /* (read only) */ struct bare_timeval time; /* (RO, except for ADJ_SETOFFSET) */
long tick; /* (modified) usecs between clock ticks */ long tick; /* (modified) usecs between clock ticks */
long ppsfreq; /* pps frequency (scaled ppm) (ro) */ long ppsfreq; /* pps frequency (scaled ppm) (ro) */
long jitter; /* pps jitter (us) (ro) */ long jitter; /* pps jitter (us) (ro) */
int shift; /* interval duration (s) (shift) (ro) */ int shift; /* interval duration (s) (shift) (ro) */
long stabil; /* pps stability (scaled ppm) (ro) */ long stabil; /* pps stability (scaled ppm) (ro) */
long jitcnt; /* jitter limit exceeded (ro) */ long jitcnt; /* jitter limit exceeded (ro) */
long calcnt; /* calibration intervals (ro) */ long calcnt; /* calibration intervals (ro) */
long errcnt; /* calibration errors (ro) */ long errcnt; /* calibration errors (ro) */
long stbcnt; /* stability limit exceeded (ro) */ long stbcnt; /* stability limit exceeded (ro) */
int tai; /* TAI offset (ro) */ int tai; /* TAI offset (ro) */
int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32;
int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32;
int :32; int :32; int :32; int :32; int :32; int :32;
}; };
/* /*
* Copy from <linux/time.h> * Copy from <linux/time.h>
* *
* The IDs of the various system clocks (for POSIX.1b interval timers): * The IDs of the various system clocks (for POSIX.1b interval timers):
*/ */
#define CLOCK_REALTIME 0 #define CLOCK_REALTIME 0
#define CLOCK_MONOTONIC 1 #define CLOCK_MONOTONIC 1
#define CLOCK_PROCESS_CPUTIME_ID 2 #define CLOCK_PROCESS_CPUTIME_ID 2
#define CLOCK_THREAD_CPUTIME_ID 3 #define CLOCK_THREAD_CPUTIME_ID 3
#define CLOCK_MONOTONIC_RAW 4 #define CLOCK_MONOTONIC_RAW 4
#define CLOCK_REALTIME_COARSE 5 #define CLOCK_REALTIME_COARSE 5
#define CLOCK_MONOTONIC_COARSE 6 #define CLOCK_MONOTONIC_COARSE 6
...@@ -71,7 +71,7 @@ int pp_memcmp(const void *cs, const void *ct, int count) ...@@ -71,7 +71,7 @@ int pp_memcmp(const void *cs, const void *ct, int count)
const unsigned char *su1, *su2; const unsigned char *su1, *su2;
int res = 0; int res = 0;
for( su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--) for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
if ((res = *su1 - *su2) != 0) if ((res = *su1 - *su2) != 0)
break; break;
return res; return res;
...@@ -108,21 +108,21 @@ int bare_adj_freq(Integer32 adj) ...@@ -108,21 +108,21 @@ int bare_adj_freq(Integer32 adj)
{ {
struct bare_timex t; struct bare_timex t;
if (adj > PP_ADJ_FREQ_MAX) if (adj > PP_ADJ_FREQ_MAX)
adj = PP_ADJ_FREQ_MAX; adj = PP_ADJ_FREQ_MAX;
else if (adj < -PP_ADJ_FREQ_MAX) else if (adj < -PP_ADJ_FREQ_MAX)
adj = -PP_ADJ_FREQ_MAX; adj = -PP_ADJ_FREQ_MAX;
t.modes = MOD_FREQUENCY; t.modes = MOD_FREQUENCY;
t.freq = adj * ((1 << 16) / 1000); t.freq = adj * ((1 << 16) / 1000);
return !sys_adjtimex(&t); return !sys_adjtimex(&t);
} }
int32_t pp_set_tstamp(TimeInternal *t) int32_t pp_set_tstamp(TimeInternal *t)
__attribute__((alias("bare_set_tstamp"))); __attribute__((alias("bare_set_tstamp")));
void pp_get_tstamp(TimeInternal *t) void pp_get_tstamp(TimeInternal *t)
__attribute__((alias("bare_get_tstamp"))); __attribute__((alias("bare_get_tstamp")));
int pp_adj_freq(Integer32 adj) int pp_adj_freq(Integer32 adj)
__attribute__((alias("bare_adj_freq"))); __attribute__((alias("bare_adj_freq")));
...@@ -21,18 +21,17 @@ int bare_recv_packet(struct pp_instance *ppi, void *pkt, int len, ...@@ -21,18 +21,17 @@ int bare_recv_packet(struct pp_instance *ppi, void *pkt, int len,
pkt - NP(ppi)->proto_ofst, len, 0); pkt - NP(ppi)->proto_ofst, len, 0);
} }
int bare_send_packet(struct pp_instance *ppi, void *pkt, int len, int bare_send_packet(struct pp_instance *ppi, void *pkt, int len,
TimeInternal *t, int chtype, int use_pdelay_addr) TimeInternal *t, int chtype, int use_pdelay_addr)
{ {
struct bare_ethhdr *hdr; struct bare_ethhdr *hdr;
hdr = PROTO_HDR(pkt); hdr = PROTO_HDR(pkt);
hdr->h_proto = htons(ETH_P_1588); hdr->h_proto = htons(ETH_P_1588);
if (OPTS(ppi)->gptp_mode) { if (OPTS(ppi)->gptp_mode)
memcpy(hdr->h_dest, PP_PEER_MACADDRESS, 6); memcpy(hdr->h_dest, PP_PEER_MACADDRESS, 6);
} else { else
memcpy(hdr->h_dest, PP_MCAST_MACADDRESS, 6); memcpy(hdr->h_dest, PP_MCAST_MACADDRESS, 6);
}
/* raw socket implementation always uses gen socket */ /* raw socket implementation always uses gen socket */
memcpy(hdr->h_source, NP(ppi)->ch[PP_NP_GEN].addr, 6); memcpy(hdr->h_source, NP(ppi)->ch[PP_NP_GEN].addr, 6);
...@@ -46,13 +45,13 @@ int bare_send_packet(struct pp_instance *ppi, void *pkt, int len, ...@@ -46,13 +45,13 @@ int bare_send_packet(struct pp_instance *ppi, void *pkt, int len,
int pp_recv_packet(struct pp_instance *ppi, void *pkt, int len, TimeInternal *t) int pp_recv_packet(struct pp_instance *ppi, void *pkt, int len, TimeInternal *t)
__attribute__((alias("bare_recv_packet"))); __attribute__((alias("bare_recv_packet")));
int pp_send_packet(struct pp_instance *ppi, void *pkt, int len, int pp_send_packet(struct pp_instance *ppi, void *pkt, int len,
TimeInternal *t, int chtype, int use_pdelay_addr) TimeInternal *t, int chtype, int use_pdelay_addr)
__attribute__((alias("bare_send_packet"))); __attribute__((alias("bare_send_packet")));
#define SHUT_RD 0 #define SHUT_RD 0
#define SHUT_WR 1 #define SHUT_WR 1
#define SHUT_RDWR 2 #define SHUT_RDWR 2
#define PF_PACKET 17 #define PF_PACKET 17
#define SOCK_RAW 3 #define SOCK_RAW 3
...@@ -74,7 +73,7 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname) ...@@ -74,7 +73,7 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname)
pp_diag_fatal(ppi, "socket()", ""); pp_diag_fatal(ppi, "socket()", "");
sys_close(sock); sys_close(sock);
return -1; return -1;
} }
/* hw interface information */ /* hw interface information */
memset(&ifr, 0, sizeof(ifr)); memset(&ifr, 0, sizeof(ifr));
...@@ -95,9 +94,9 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname) ...@@ -95,9 +94,9 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname)
} }
memcpy(NP(ppi)->ch[PP_NP_GEN].addr, memcpy(NP(ppi)->ch[PP_NP_GEN].addr,
ifr.ifr_ifru.ifru_hwaddr.sa_data, 6); ifr.ifr_ifru.ifru_hwaddr.sa_data, 6);
memcpy(NP(ppi)->ch[PP_NP_EVT].addr, memcpy(NP(ppi)->ch[PP_NP_EVT].addr,
ifr.ifr_ifru.ifru_hwaddr.sa_data, 6); ifr.ifr_ifru.ifru_hwaddr.sa_data, 6);
/* bind */ /* bind */
memset(&addr_ll, 0, sizeof(addr_ll)); memset(&addr_ll, 0, sizeof(addr_ll));
...@@ -105,7 +104,7 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname) ...@@ -105,7 +104,7 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname)
addr_ll.sll_protocol = htons(ETH_P_1588); addr_ll.sll_protocol = htons(ETH_P_1588);
addr_ll.sll_ifindex = iindex; addr_ll.sll_ifindex = iindex;
if (sys_bind(sock, (struct bare_sockaddr *)&addr_ll, if (sys_bind(sock, (struct bare_sockaddr *)&addr_ll,
sizeof(addr_ll)) < 0) { sizeof(addr_ll)) < 0) {
pp_diag_error(ppi, bare_errno); pp_diag_error(ppi, bare_errno);
pp_diag_fatal(ppi, "bind", ""); pp_diag_fatal(ppi, "bind", "");
sys_close(sock); sys_close(sock);
...@@ -130,11 +129,11 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname) ...@@ -130,11 +129,11 @@ int bare_open_ch(struct pp_instance *ppi, char *ifname)
NP(ppi)->ch[PP_NP_EVT].fd = sock; NP(ppi)->ch[PP_NP_EVT].fd = sock;
/* make timestamps available through recvmsg() -- FIXME: hw? */ /* make timestamps available through recvmsg() -- FIXME: hw? */
sys_setsockopt(sock, SOL_SOCKET, SO_TIMESTAMP, sys_setsockopt(sock, SOL_SOCKET, SO_TIMESTAMP,
&temp, sizeof(int)); &temp, sizeof(int));
return 0; return 0;
} }
return -1; return -1;
} }
...@@ -144,16 +143,16 @@ int bare_net_init(struct pp_instance *ppi) ...@@ -144,16 +143,16 @@ int bare_net_init(struct pp_instance *ppi)
ppi->buf_out = PROTO_PAYLOAD(ppi->buf_out); ppi->buf_out = PROTO_PAYLOAD(ppi->buf_out);
if (OPTS(ppi)->ethernet_mode) { if (OPTS(ppi)->ethernet_mode) {
PP_PRINTF("bare_net_init IEEE 802.3\n"); PP_PRINTF("bare_net_init IEEE 802.3\n");
/* raw sockets implementation always use gen socket */ /* raw sockets implementation always use gen socket */
return bare_open_ch(ppi, OPTS(ppi)->iface_name); return bare_open_ch(ppi, OPTS(ppi)->iface_name);
} }
/* else: UDP */ /* else: UDP */
PP_PRINTF("bare_net_init UDP\n"); PP_PRINTF("bare_net_init UDP\n");
return 0; return 0;
} }
int pp_net_init(struct pp_instance *ppi) int pp_net_init(struct pp_instance *ppi)
__attribute__((alias("bare_net_init"))); __attribute__((alias("bare_net_init")));
......
...@@ -62,7 +62,7 @@ void ppsi_main(void) ...@@ -62,7 +62,7 @@ void ppsi_main(void)
OPTS(ppi)->iface_name = "eth0"; OPTS(ppi)->iface_name = "eth0";
#ifdef PPSI_SLAVE #ifdef PPSI_SLAVE
OPTS(ppi)->slave_only = 1; OPTS(ppi)->slave_only = 1;
#endif #endif
bare_main_loop(ppi); bare_main_loop(ppi);
......
...@@ -9,7 +9,7 @@ int bare_timer_init(struct pp_instance *ppi) ...@@ -9,7 +9,7 @@ int bare_timer_init(struct pp_instance *ppi)
{ {
uint32_t i; uint32_t i;
for(i =0; i<PP_TIMER_ARRAY_SIZE; i++) for (i = 0; i < PP_TIMER_ARRAY_SIZE; i++)
ppi->timers[i] = &bare_timers[i]; ppi->timers[i] = &bare_timers[i];
return 0; return 0;
...@@ -17,17 +17,17 @@ int bare_timer_init(struct pp_instance *ppi) ...@@ -17,17 +17,17 @@ int bare_timer_init(struct pp_instance *ppi)
int bare_timer_start(uint32_t interval_ms, struct pp_timer *tm) int bare_timer_start(uint32_t interval_ms, struct pp_timer *tm)
{ {
struct bare_timeval now; struct bare_timeval now;
sys_clock_gettime(CLOCK_MONOTONIC, &now); sys_clock_gettime(CLOCK_MONOTONIC, &now);
tm->start = ((uint64_t)(now.tv_sec)) * 1000 + tm->start = ((uint64_t)(now.tv_sec)) * 1000 +
(now.tv_nsec / 1000000); (now.tv_nsec / 1000000);
tm->interval_ms = interval_ms; tm->interval_ms = interval_ms;
return 0; return 0;
} }
int bare_timer_stop(struct pp_timer *tm) int bare_timer_stop(struct pp_timer *tm)
{ {
tm->interval_ms= 0; tm->interval_ms = 0;
tm->start = 0; tm->start = 0;
return 0; return 0;
...@@ -39,12 +39,12 @@ int bare_timer_expired(struct pp_timer *tm) ...@@ -39,12 +39,12 @@ int bare_timer_expired(struct pp_timer *tm)
uint64_t now_ms; uint64_t now_ms;
if (tm->start == 0) { if (tm->start == 0) {
PP_PRINTF("%p Warning: bare_timer_expired: timer not started\n",tm); PP_PRINTF("%s: Warning: timer %p not started\n", __func__, tm);
return 0; return 0;
} }
sys_clock_gettime(CLOCK_MONOTONIC, &now); sys_clock_gettime(CLOCK_MONOTONIC, &now);
now_ms = ((uint64_t)(now.tv_sec)) * 1000 + now_ms = ((uint64_t)(now.tv_sec)) * 1000 +
(now.tv_nsec / 1000000); (now.tv_nsec / 1000000);
if (now_ms > tm->start + tm->interval_ms) { if (now_ms > tm->start + tm->interval_ms) {
......
...@@ -24,8 +24,8 @@ _syscall1(int, time, void *, tz) ...@@ -24,8 +24,8 @@ _syscall1(int, time, void *, tz)
_syscall3(int, ioctl, int, fd, int, cmd, void *, arg) _syscall3(int, ioctl, int, fd, int, cmd, void *, arg)
_syscall1(int, select, struct sel_arg_struct *, as) _syscall1(int, select, struct sel_arg_struct *, as)
static _syscall2(int, socketcall, int, call, unsigned long *, args) static _syscall2(int, socketcall, int, call, unsigned long *, args)
_syscall2(int, gettimeofday, void *, tv, void *,z); _syscall2(int, gettimeofday, void *, tv, void *, z);
_syscall2(int, settimeofday, void *, tv, void *,z); _syscall2(int, settimeofday, void *, tv, void *, z);
_syscall1(int, adjtimex, void *, tv); _syscall1(int, adjtimex, void *, tv);
_syscall2(int, clock_gettime, int, clock, void *, t); _syscall2(int, clock_gettime, int, clock, void *, t);
_syscall1(int, close, int, fd); _syscall1(int, close, int, fd);
...@@ -140,7 +140,8 @@ int sys_shutdown(int fd, int flags) ...@@ -140,7 +140,8 @@ int sys_shutdown(int fd, int flags)
return socketcall(SYS_SHUTDOWN, args); return socketcall(SYS_SHUTDOWN, args);
} }
int sys_setsockopt(int fd, int level, int optname, const void *optval, int optlen) int sys_setsockopt(int fd, int level, int optname, const void *optval,
int optlen)
{ {
args[0] = fd; args[0] = fd;
args[1] = level; args[1] = level;
......
...@@ -17,80 +17,83 @@ do { \ ...@@ -17,80 +17,83 @@ do { \
} while (0) } while (0)
/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */ /* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */
#define _syscall0(type,name) \ #define _syscall0(type, name) \
type name(void) \ type name(void) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("int $0x80" \ __asm__ volatile ("int $0x80" \
: "=a" (__res) \ : "=a" (__res) \
: "0" (__NR_##name)); \ : "0" (__NR_##name)); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
#define _syscall1(type,name,type1,arg1) \ #define _syscall1(type, name, type1, arg1) \
type name(type1 arg1) \ type name(type1 arg1) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("int $0x80" \ __asm__ volatile ("int $0x80" \
: "=a" (__res) \ : "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1))); \ : "0" (__NR_##name), "b" ((long)(arg1))); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
#define _syscall2(type,name,type1,arg1,type2,arg2) \ #define _syscall2(type, name, type1, arg1, type2, arg2) \
type name(type1 arg1,type2 arg2) \ type name(type1 arg1, type2 arg2) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("int $0x80" \ __asm__ volatile ("int $0x80" \
: "=a" (__res) \ : "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2))); \ : "0" (__NR_##name), "b" ((long)(arg1)), "c" ((long)(arg2))); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
type name(type1 arg1,type2 arg2,type3 arg3) \ type name(type1 arg1, type2 arg2, type3 arg3) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("int $0x80" \ __asm__ volatile ("int $0x80" \
: "=a" (__res) \ : "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ : "0" (__NR_##name), "b" ((long)(arg1)), "c" ((long)(arg2)), \
"d" ((long)(arg3))); \ "d" ((long)(arg3))); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ #define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ type4, arg4) \
type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("int $0x80" \ __asm__ volatile ("int $0x80" \
: "=a" (__res) \ : "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ : "0" (__NR_##name), "b" ((long)(arg1)), "c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4))); \ "d" ((long)(arg3)), "S" ((long)(arg4))); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ #define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
type5,arg5) \ type4, arg4, type5, arg5) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("int $0x80" \ __asm__ volatile ("int $0x80" \
: "=a" (__res) \ : "=a" (__res) \
: "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ : "0" (__NR_##name), "b" ((long)(arg1)), "c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \ "d" ((long)(arg3)), "S" ((long)(arg4)), "D" ((long)(arg5))); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ #define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
type5,arg5,type6,arg6) \ type4, arg4, type5, arg5, type6, arg6) \
type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, \
type6 arg6) \
{ \ { \
long __res; \ long __res; \
__asm__ volatile ("push %%ebp ; movl %%eax,%%ebp ; movl %1,%%eax ; int $0x80 ; pop %%ebp" \ __asm__ volatile ("push %%ebp ; movl %%eax,%%ebp ; " \
"movl %1,%%eax ; int $0x80 ; pop %%ebp" \
: "=a" (__res) \ : "=a" (__res) \
: "i" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ : "i" (__NR_##name), "b" ((long)(arg1)), "c" ((long)(arg2)), \
"d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)), \ "d" ((long)(arg3)), "S" ((long)(arg4)), "D" ((long)(arg5)), \
"0" ((long)(arg6))); \ "0" ((long)(arg6))); \
__syscall_return(type,__res); \ __syscall_return(type, __res); \
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment