Skip to content

Commit e64c04d

Browse files
committed
SIOCGIFMAP takes an ifreq not an ifmap
1 parent 9d9a5e9 commit e64c04d

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

src/log.cc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,7 @@ _CONSTANT_STATIC deque<char>* log_buffer;
8888
_CONSTANT_STATIC std::ostream* log_file;
8989
size_t log_buffer_size;
9090

91-
static void flush_log_file() {
92-
log_file->flush();
93-
}
91+
static void flush_log_file() { log_file->flush(); }
9492

9593
static void init_log_globals() {
9694
if (log_globals_initialized) {

src/record_syscall.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1438,6 +1438,7 @@ static Switchable prepare_ioctl(RecordTask* t,
14381438
case SIOCGIFNAME:
14391439
case SIOCGIFNETMASK:
14401440
case SIOCGIFMETRIC:
1441+
case SIOCGIFMAP:
14411442
syscall_state.reg_parameter<typename Arch::ifreq>(3);
14421443
syscall_state.after_syscall_action(record_page_below_stack_ptr);
14431444
return PREVENT_SWITCH;
@@ -1462,10 +1463,6 @@ static Switchable prepare_ioctl(RecordTask* t,
14621463
return PREVENT_SWITCH;
14631464
}
14641465

1465-
case SIOCGIFMAP:
1466-
syscall_state.reg_parameter<typename Arch::ifmap>(3);
1467-
return PREVENT_SWITCH;
1468-
14691466
case SIOCGSTAMP:
14701467
syscall_state.reg_parameter<typename Arch::timeval>(3);
14711468
return PREVENT_SWITCH;

src/test/sioc.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ int main(void) {
202202
GENERIC_REQUEST_BY_NAME(SIOCGIFMETRIC);
203203
atomic_printf("metric is %d\n", req->ifr_metric);
204204

205+
GENERIC_REQUEST_BY_NAME(SIOCGIFMAP);
206+
atomic_printf("map is %llu,%llu,%u,%d,%d,%d\n",
207+
(unsigned long long)req->ifr_map.mem_start,
208+
(unsigned long long)req->ifr_map.mem_end,
209+
req->ifr_map.base_addr, req->ifr_map.irq, req->ifr_map.dma,
210+
req->ifr_map.port);
211+
205212
memset(&req->ifr_metric, 0xff, sizeof(req->ifr_metric));
206213
ret = ioctl(sockfd, SIOCGIFMEM, req);
207214
VERIFY_GUARD(req);

0 commit comments

Comments
 (0)