Changeset e5b2777 in mainline for uspace/lib/pcap/src/pcap_dumper.c


Ignore:
Timestamp:
2024-12-13T08:44:05Z (15 months ago)
Author:
Nataliia Korop <n.corop08@…>
Children:
31d2aee
Parents:
e1e8f7a
git-author:
Nataliia Korop <n.corop08@…> (2024-11-17 09:14:10)
git-committer:
Nataliia Korop <n.corop08@…> (2024-12-13 08:44:05)
Message:

create drv iface for drivers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/pcap/src/pcap_dumper.c

    re1e8f7a re5b2777  
    4040
    4141#define SHORT_OPS_BYTE_COUNT 60
    42 #define NAME "pcap"
    4342
    4443/** Initialize writing to .pcap file.
     
    5554                return EINVAL;
    5655        }
    57         pcap_writer_add_header(writer);
     56        pcap_writer_add_header(writer, (uint32_t)PCAP_LINKTYPE_ETHERNET, false);
    5857
    5958        return EOK;
     
    7069}
    7170
     71static errno_t pcap_writer_to_file_usb_init(pcap_writer_t *writer, const char *filename)
     72{
     73        writer->data = fopen(filename, "a");
     74        if (writer->data == NULL) {
     75                return EINVAL;
     76        }
     77        pcap_writer_add_header(writer, (uint32_t)PCAP_LINKTYPE_USB_LINUX_MMAPPED, false);
     78
     79        return EOK;
     80}
     81
    7282static size_t pcap_file_w32(pcap_writer_t *writer, uint32_t data)
    7383{
     
    122132};
    123133
    124 static pcap_writer_ops_t ops[3] = {file_ops, short_file_ops, append_file_ops};
     134static const pcap_writer_ops_t usb_file_ops = {
     135        .open = &pcap_writer_to_file_usb_init,
     136        .write_u32 = &pcap_file_w32,
     137        .write_u16 = &pcap_file_w16,
     138        .write_buffer = &pcap_file_wbuffer,
     139        .close = &pcap_file_close
     140};
     141
     142static pcap_writer_ops_t ops[4] = {file_ops, short_file_ops, append_file_ops, usb_file_ops};
    125143
    126144int pcap_dumper_get_ops_number(void)
     
    129147}
    130148
    131 errno_t pcap_dumper_start(struct pcap_dumper *dumper, const char *name)
     149errno_t pcap_dumper_start(pcap_dumper_t *dumper, const char *name)
    132150{
    133151        fibril_mutex_lock(&dumper->mutex);
     
    147165}
    148166
    149 errno_t pcap_dumper_set_ops(struct pcap_dumper *dumper, int index)
     167errno_t pcap_dumper_set_ops(pcap_dumper_t *dumper, int index)
    150168{
    151169        fibril_mutex_lock(&dumper->mutex);
     
    156174}
    157175
    158 void pcap_dumper_add_packet(struct pcap_dumper *dumper, const void *data, size_t size)
     176void pcap_dumper_add_packet(pcap_dumper_t *dumper, const void *data, size_t size)
    159177{
    160178        fibril_mutex_lock(&dumper->mutex);
     
    169187}
    170188
    171 void pcap_dumper_stop(struct pcap_dumper *dumper)
     189void pcap_dumper_stop(pcap_dumper_t *dumper)
    172190{
    173191        fibril_mutex_lock(&dumper->mutex);
     
    183201}
    184202
    185 /** Initialize interface for dumping packets
    186  *
    187  * @param dumper Device dumping interface
    188  *
    189  */
    190 errno_t pcap_dumper_init(pcap_dumper_t *dumper)
    191 {
    192         fibril_mutex_initialize(&dumper->mutex);
    193         dumper->to_dump = false;
    194         dumper->writer.ops = NULL;
    195 
    196         errno_t rc = log_init(NAME);
    197         if (rc != EOK) {
    198                 printf("%s : Failed to initialize log.\n", NAME);
    199                 return 1;
    200         }
    201         return EOK;
    202 }
     203
    203204
    204205/** @}
Note: See TracChangeset for help on using the changeset viewer.