#include <linux/module.h>
#include <linux/types.h>
#include <linux/nls.h>
#include <linux/platform_device.h>
#include <linux/netdevice.h>
#include <linux/interrupt.h>
#include "fjes.h"
#include "fjes_trace.h"
#define DRV_VERSION …
#define DRV_NAME …
char fjes_driver_name[] = …;
char fjes_driver_version[] = …;
static const char fjes_driver_string[] = …;
static const char fjes_copyright[] = …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_VERSION(…);
#define ACPI_MOTHERBOARD_RESOURCE_HID …
static const struct acpi_device_id fjes_acpi_ids[] = …;
MODULE_DEVICE_TABLE(acpi, fjes_acpi_ids);
static bool is_extended_socket_device(struct acpi_device *device)
{ … }
static int acpi_check_extended_socket_status(struct acpi_device *device)
{ … }
static acpi_status
fjes_get_acpi_resource(struct acpi_resource *acpi_res, void *data)
{ … }
static struct resource fjes_resource[] = …;
static int fjes_acpi_add(struct acpi_device *device)
{ … }
static void fjes_acpi_remove(struct acpi_device *device)
{ … }
static struct acpi_driver fjes_acpi_driver = …;
static int fjes_setup_resources(struct fjes_adapter *adapter)
{ … }
static void fjes_rx_irq(struct fjes_adapter *adapter, int src_epid)
{ … }
static void fjes_stop_req_irq(struct fjes_adapter *adapter, int src_epid)
{ … }
static void fjes_txrx_stop_req_irq(struct fjes_adapter *adapter,
int src_epid)
{ … }
static void fjes_update_zone_irq(struct fjes_adapter *adapter,
int src_epid)
{ … }
static irqreturn_t fjes_intr(int irq, void *data)
{ … }
static int fjes_request_irq(struct fjes_adapter *adapter)
{ … }
static void fjes_free_irq(struct fjes_adapter *adapter)
{ … }
static void fjes_free_resources(struct fjes_adapter *adapter)
{ … }
static int fjes_open(struct net_device *netdev)
{ … }
static int fjes_close(struct net_device *netdev)
{ … }
static int fjes_tx_send(struct fjes_adapter *adapter, int dest,
void *data, size_t len)
{ … }
static netdev_tx_t
fjes_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
{ … }
static void
fjes_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
{ … }
static int fjes_change_mtu(struct net_device *netdev, int new_mtu)
{ … }
static void fjes_tx_retry(struct net_device *netdev, unsigned int txqueue)
{ … }
static int fjes_vlan_rx_add_vid(struct net_device *netdev,
__be16 proto, u16 vid)
{ … }
static int fjes_vlan_rx_kill_vid(struct net_device *netdev,
__be16 proto, u16 vid)
{ … }
static const struct net_device_ops fjes_netdev_ops = …;
static void fjes_netdev_setup(struct net_device *netdev)
{ … }
static int fjes_rxframe_search_exist(struct fjes_adapter *adapter,
int start_epid)
{ … }
static void *fjes_rxframe_get(struct fjes_adapter *adapter, size_t *psize,
int *cur_epid)
{ … }
static void fjes_rxframe_release(struct fjes_adapter *adapter, int cur_epid)
{ … }
static int fjes_poll(struct napi_struct *napi, int budget)
{ … }
static int fjes_sw_init(struct fjes_adapter *adapter)
{ … }
static void fjes_force_close_task(struct work_struct *work)
{ … }
static void fjes_tx_stall_task(struct work_struct *work)
{ … }
static void fjes_raise_intr_rxdata_task(struct work_struct *work)
{ … }
static void fjes_watch_unshare_task(struct work_struct *work)
{ … }
static void fjes_irq_watch_task(struct work_struct *work)
{ … }
static int fjes_probe(struct platform_device *plat_dev)
{ … }
static void fjes_remove(struct platform_device *plat_dev)
{ … }
static struct platform_driver fjes_driver = …;
static acpi_status
acpi_find_extended_socket_device(acpi_handle obj_handle, u32 level,
void *context, void **return_value)
{ … }
static int __init fjes_init_module(void)
{ … }
module_init(…) …;
static void __exit fjes_exit_module(void)
{ … }
module_exit(fjes_exit_module);