#define COPYBREAK_DEFAULT 256 unsignedint copybreak = COPYBREAK_DEFAULT;
module_param(copybreak, uint, 0644);
MODULE_PARM_DESC(copybreak, "Maximum size of packet that is copied to a new buffer on receive");
/* All parameters are treated the same, as an integer array of values. *Thismacrojustreducestheneedtorepeatthesamedeclarationcode *overandover(plusthishelpstoavoidtypobugs).
*/ #define E1000_PARAM_INIT { [0 ... E1000_MAX_NIC] = OPTION_UNSET } #define E1000_PARAM(X, desc) \ staticint X[E1000_MAX_NIC+1] = E1000_PARAM_INIT; \ staticunsignedint num_##X; \
module_param_array_named(X, X, int, &num_##X, 0); \
MODULE_PARM_DESC(X, desc);
/* Transmit Interrupt Delay in units of 1.024 microseconds *Txinterruptdelayneedstotypicallybesettosomethingnon-zero * *ValidRange:0-65535
*/
E1000_PARAM(TxIntDelay, "Transmit Interrupt Delay"); #define DEFAULT_TIDV 8 #define MAX_TXDELAY 0xFFFF #define MIN_TXDELAY 0
/* Transmit Absolute Interrupt Delay in units of 1.024 microseconds * *ValidRange:0-65535
*/
E1000_PARAM(TxAbsIntDelay, "Transmit Absolute Interrupt Delay"); #define DEFAULT_TADV 32 #define MAX_TXABSDELAY 0xFFFF #define MIN_TXABSDELAY 0
/* Enable Smart Power Down of the PHY * *ValidRange:0,1 * *DefaultValue:0(disabled)
*/
E1000_PARAM(SmartPowerDownEnable, "Enable PHY smart power down");
/* Enable Kumeran Lock Loss workaround * *ValidRange:0,1 * *DefaultValue:1(enabled)
*/
E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround");
/* Write Protect NVM * *ValidRange:0,1 * *DefaultValue:1(enabled)
*/
E1000_PARAM(WriteProtectNVM, "Write-protect NVM [WARNING: disabling this can lead to corrupted NVM]");
/* Enable CRC Stripping * *ValidRange:0,1 * *DefaultValue:1(enabled)
*/
E1000_PARAM(CrcStripping, "Enable CRC Stripping, disable if your BMC needs the CRC");
struct e1000_option { enum { enable_option, range_option, list_option } type; constchar *name; constchar *err; int def; union { /* range_option info */ struct { int min; int max;
} r; /* list_option info */ struct { int nr; struct e1000_opt_list { int i; char *str;
} *p;
} l;
} arg;
};
if (bd >= E1000_MAX_NIC) {
dev_notice(&adapter->pdev->dev, "Warning: no configuration for board #%i\n", bd);
dev_notice(&adapter->pdev->dev, "Using defaults for all values\n");
}
if (num_InterruptThrottleRate > bd) {
adapter->itr = InterruptThrottleRate[bd];
/* Make sure a message is printed for non-special *values.Andincaseofaninvalidoption,display *warning,usedefaultandgothroughitr/itr_setting *adjustmentlogicbelow
*/ if ((adapter->itr > 4) &&
e1000_validate_option(&adapter->itr, &opt, adapter))
adapter->itr = opt.def;
} else { /* If no option specified, use default value and go *throughthelogicbelowtoadjustitr/itr_setting
*/
adapter->itr = opt.def;
/* Make sure a message is printed for non-special *defaultvalues
*/ if (adapter->itr > 4)
dev_info(&adapter->pdev->dev, "%s set to default %d\n", opt.name,
adapter->itr);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.