arch/arm64/include/asm/insn.h
415
__AARCH64_INSN_FUNCS(smc, 0xFFE0001F, 0xD4000003)
arch/powerpc/boot/cpm-serial.c
113
out_be16(&smc->smcmr, in_be16(&smc->smcmr) & ~3);
arch/powerpc/boot/cpm-serial.c
124
out_be16(&smc->smcmr, in_be16(&smc->smcmr) | 3);
arch/powerpc/boot/cpm-serial.c
237
smc = vreg[0];
arch/powerpc/boot/cpm-serial.c
73
static struct cpm_smc *smc;
drivers/clk/zynq/clkc.c
362
zynq_clk_register_periph_clk(smc, clk_max, clk_output_name[smc], NULL,
drivers/firmware/qcom/qcom_scm-legacy.c
110
static void __scm_legacy_do(const struct arm_smccc_args *smc,
drivers/firmware/qcom/qcom_scm-legacy.c
114
arm_smccc_smc(smc->args[0], smc->args[1], smc->args[2],
drivers/firmware/qcom/qcom_scm-legacy.c
115
smc->args[3], smc->args[4], smc->args[5],
drivers/firmware/qcom/qcom_scm-legacy.c
116
smc->args[6], smc->args[7], res);
drivers/firmware/qcom/qcom_scm-legacy.c
142
struct arm_smccc_args smc = {0};
drivers/firmware/qcom/qcom_scm-legacy.c
172
smc.args[0] = 1;
drivers/firmware/qcom/qcom_scm-legacy.c
173
smc.args[1] = (unsigned long)&context_id;
drivers/firmware/qcom/qcom_scm-legacy.c
174
smc.args[2] = cmd_phys;
drivers/firmware/qcom/qcom_scm-legacy.c
177
__scm_legacy_do(&smc, &smc_res);
drivers/firmware/qcom/qcom_scm-smc.c
102
__scm_smc_do_quirk(smc, res);
drivers/firmware/qcom/qcom_scm-smc.c
113
smc = &resume;
drivers/firmware/qcom/qcom_scm-smc.c
120
static int __scm_smc_do(struct device *dev, struct arm_smccc_args *smc,
drivers/firmware/qcom/qcom_scm-smc.c
126
__scm_smc_do_quirk(smc, res);
drivers/firmware/qcom/qcom_scm-smc.c
133
ret = __scm_smc_do_quirk_handle_waitq(dev, smc, res);
drivers/firmware/qcom/qcom_scm-smc.c
163
struct arm_smccc_args smc = {0};
drivers/firmware/qcom/qcom_scm-smc.c
165
smc.args[0] = ARM_SMCCC_CALL_VAL(
drivers/firmware/qcom/qcom_scm-smc.c
170
smc.args[1] = desc->arginfo;
drivers/firmware/qcom/qcom_scm-smc.c
172
smc.args[i + SCM_SMC_FIRST_REG_IDX] = desc->args[i];
drivers/firmware/qcom/qcom_scm-smc.c
200
smc.args[SCM_SMC_LAST_REG_IDX] = qcom_tzmem_to_phys(args_virt);
drivers/firmware/qcom/qcom_scm-smc.c
203
ret = __scm_smc_do(dev, &smc, &smc_res, atomic);
drivers/firmware/qcom/qcom_scm-smc.c
38
static void __scm_smc_do_quirk(const struct arm_smccc_args *smc,
drivers/firmware/qcom/qcom_scm-smc.c
41
unsigned long a0 = smc->args[0];
drivers/firmware/qcom/qcom_scm-smc.c
47
arm_smccc_smc_quirk(a0, smc->args[1], smc->args[2],
drivers/firmware/qcom/qcom_scm-smc.c
48
smc->args[3], smc->args[4], smc->args[5],
drivers/firmware/qcom/qcom_scm-smc.c
49
quirk.state.a6, smc->args[7], res, &quirk);
drivers/firmware/qcom/qcom_scm-smc.c
99
struct arm_smccc_args *smc = waitq;
drivers/gpio/gpio-macsmc.c
104
ret = apple_smc_get_key_by_index(smc, 0, &first_key);
drivers/gpio/gpio-macsmc.c
110
ret = apple_smc_get_key_by_index(smc, smc->key_count - 1, &last_key);
drivers/gpio/gpio-macsmc.c
118
count = smc->key_count;
drivers/gpio/gpio-macsmc.c
123
ret = apple_smc_get_key_by_index(smc, pivot, &pkey);
drivers/gpio/gpio-macsmc.c
151
ret = apple_smc_rw_u32(smcgp->smc, key, CMD_PINMODE, &val);
drivers/gpio/gpio-macsmc.c
159
ret = apple_smc_rw_u32(smcgp->smc, key, CMD_IRQ_MODE, &val);
drivers/gpio/gpio-macsmc.c
179
ret = apple_smc_rw_u32(smcgp->smc, key, cmd, &val);
drivers/gpio/gpio-macsmc.c
193
ret = apple_smc_write_u32(smcgp->smc, key, CMD_OUTPUT | value);
drivers/gpio/gpio-macsmc.c
208
count = min(smcgp->smc->key_count, MAX_GPIO);
drivers/gpio/gpio-macsmc.c
216
ret = apple_smc_get_key_by_index(smcgp->smc, smcgp->first_index + i, &key);
drivers/gpio/gpio-macsmc.c
238
struct apple_smc *smc = dev_get_drvdata(pdev->dev.parent);
drivers/gpio/gpio-macsmc.c
247
smcgp->smc = smc;
drivers/gpio/gpio-macsmc.c
253
ret = apple_smc_get_key_by_index(smc, smcgp->first_index, &key);
drivers/gpio/gpio-macsmc.c
74
struct apple_smc *smc;
drivers/gpio/gpio-macsmc.c
98
struct apple_smc *smc = smcgp->smc;
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
444
struct smc_firmware_header_v1_0 smc;
drivers/gpu/drm/radeon/radeon_ucode.h
213
struct smc_firmware_header_v1_0 smc;
drivers/hwmon/macsmc-hwmon.c
124
static int macsmc_hwmon_read_ioft_scaled(struct apple_smc *smc, smc_key key,
drivers/hwmon/macsmc-hwmon.c
130
ret = apple_smc_read_u64(smc, key, &val);
drivers/hwmon/macsmc-hwmon.c
143
static int macsmc_hwmon_read_f32_scaled(struct apple_smc *smc, smc_key key,
drivers/hwmon/macsmc-hwmon.c
150
ret = apple_smc_read_u32(smc, key, &fval);
drivers/hwmon/macsmc-hwmon.c
190
static int macsmc_hwmon_read_key(struct apple_smc *smc,
drivers/hwmon/macsmc-hwmon.c
201
ret = macsmc_hwmon_read_f32_scaled(smc, sensor->macsmc_key,
drivers/hwmon/macsmc-hwmon.c
213
ret = macsmc_hwmon_read_ioft_scaled(smc, sensor->macsmc_key,
drivers/hwmon/macsmc-hwmon.c
231
static int macsmc_hwmon_write_f32(struct apple_smc *smc, smc_key key, long value)
drivers/hwmon/macsmc-hwmon.c
253
return apple_smc_write_u32(smc, key, fval);
drivers/hwmon/macsmc-hwmon.c
256
static int macsmc_hwmon_write_key(struct apple_smc *smc,
drivers/hwmon/macsmc-hwmon.c
262
return macsmc_hwmon_write_f32(smc, sensor->macsmc_key, val);
drivers/hwmon/macsmc-hwmon.c
265
return apple_smc_write_u8(smc, sensor->macsmc_key, val);
drivers/hwmon/macsmc-hwmon.c
276
return macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
279
return macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
282
return macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
285
return macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
305
ret = macsmc_hwmon_read_key(hwmon->smc, &hwmon->fan.fans[channel].min,
drivers/hwmon/macsmc-hwmon.c
310
ret = macsmc_hwmon_read_key(hwmon->smc, &hwmon->fan.fans[channel].max,
drivers/hwmon/macsmc-hwmon.c
318
ret = macsmc_hwmon_write_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
325
return macsmc_hwmon_write_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
329
ret = macsmc_hwmon_write_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
351
ret = macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
355
ret = macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
359
ret = macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
364
ret = macsmc_hwmon_read_key(hwmon->smc,
drivers/hwmon/macsmc-hwmon.c
445
static int macsmc_hwmon_parse_key(struct device *dev, struct apple_smc *smc,
drivers/hwmon/macsmc-hwmon.c
451
ret = apple_smc_get_key_info(smc, _SMC_KEY(key), &sensor->info);
drivers/hwmon/macsmc-hwmon.c
467
static int macsmc_hwmon_create_sensor(struct device *dev, struct apple_smc *smc,
drivers/hwmon/macsmc-hwmon.c
480
ret = macsmc_hwmon_parse_key(dev, smc, sensor, key);
drivers/hwmon/macsmc-hwmon.c
500
static int macsmc_hwmon_create_fan(struct device *dev, struct apple_smc *smc,
drivers/hwmon/macsmc-hwmon.c
513
ret = macsmc_hwmon_parse_key(dev, smc, &fan->now, now);
drivers/hwmon/macsmc-hwmon.c
529
ret = macsmc_hwmon_parse_key(dev, smc, &fan->min, min);
drivers/hwmon/macsmc-hwmon.c
537
ret = macsmc_hwmon_parse_key(dev, smc, &fan->max, max);
drivers/hwmon/macsmc-hwmon.c
545
ret = macsmc_hwmon_parse_key(dev, smc, &fan->set, set);
drivers/hwmon/macsmc-hwmon.c
553
ret = macsmc_hwmon_parse_key(dev, smc, &fan->mode, mode);
drivers/hwmon/macsmc-hwmon.c
583
if (!macsmc_hwmon_create_sensor(hwmon->dev, hwmon->smc, key_node, sensor)) {
drivers/hwmon/macsmc-hwmon.c
605
if (!macsmc_hwmon_create_fan(hwmon->dev, hwmon->smc, key_node,
drivers/hwmon/macsmc-hwmon.c
623
if (!macsmc_hwmon_create_sensor(hwmon->dev, hwmon->smc, key_node, sensor)) {
drivers/hwmon/macsmc-hwmon.c
646
if (!macsmc_hwmon_create_sensor(hwmon->dev, hwmon->smc, key_node, sensor)) {
drivers/hwmon/macsmc-hwmon.c
669
if (!macsmc_hwmon_create_sensor(hwmon->dev, hwmon->smc, key_node, sensor)) {
drivers/hwmon/macsmc-hwmon.c
776
struct apple_smc *smc = dev_get_drvdata(pdev->dev.parent);
drivers/hwmon/macsmc-hwmon.c
79
struct apple_smc *smc;
drivers/hwmon/macsmc-hwmon.c
794
hwmon->smc = smc;
drivers/memory/atmel-ebi.c
289
atmel_smc_cs_conf_apply(ebid->ebi->smc.regmap, conf->cs,
drivers/memory/atmel-ebi.c
296
atmel_hsmc_cs_conf_apply(ebid->ebi->smc.regmap, ebid->ebi->smc.layout,
drivers/memory/atmel-ebi.c
548
ebi->smc.regmap = syscon_node_to_regmap(smc_np);
drivers/memory/atmel-ebi.c
549
if (IS_ERR(ebi->smc.regmap))
drivers/memory/atmel-ebi.c
550
return PTR_ERR(ebi->smc.regmap);
drivers/memory/atmel-ebi.c
552
ebi->smc.layout = atmel_hsmc_get_reg_layout(smc_np);
drivers/memory/atmel-ebi.c
553
if (IS_ERR(ebi->smc.layout))
drivers/memory/atmel-ebi.c
554
return PTR_ERR(ebi->smc.layout);
drivers/memory/atmel-ebi.c
556
ebi->smc.clk = of_clk_get(smc_np, 0);
drivers/memory/atmel-ebi.c
557
if (IS_ERR(ebi->smc.clk)) {
drivers/memory/atmel-ebi.c
558
if (PTR_ERR(ebi->smc.clk) != -ENOENT)
drivers/memory/atmel-ebi.c
559
return PTR_ERR(ebi->smc.clk);
drivers/memory/atmel-ebi.c
561
ebi->smc.clk = NULL;
drivers/memory/atmel-ebi.c
563
ret = clk_prepare_enable(ebi->smc.clk);
drivers/memory/atmel-ebi.c
60
} smc;
drivers/memory/atmel-ebi.c
86
atmel_smc_cs_conf_get(ebid->ebi->smc.regmap, conf->cs,
drivers/memory/atmel-ebi.c
93
atmel_hsmc_cs_conf_get(ebid->ebi->smc.regmap, ebid->ebi->smc.layout,
drivers/mfd/macsmc.c
100
*ret_data = FIELD_GET(SMC_DATA, smc->cmd_ret);
drivers/mfd/macsmc.c
102
return FIELD_GET(SMC_SIZE, smc->cmd_ret);
drivers/mfd/macsmc.c
105
static int apple_smc_cmd(struct apple_smc *smc, u64 cmd, u64 arg,
drivers/mfd/macsmc.c
108
guard(mutex)(&smc->mutex);
drivers/mfd/macsmc.c
110
return apple_smc_cmd_locked(smc, cmd, arg, size, wsize, ret_data);
drivers/mfd/macsmc.c
113
static int apple_smc_rw_locked(struct apple_smc *smc, smc_key key,
drivers/mfd/macsmc.c
122
lockdep_assert_held(&smc->mutex);
drivers/mfd/macsmc.c
131
memcpy_toio(smc->shmem.iomem, wbuf, wsize);
drivers/mfd/macsmc.c
136
memcpy_toio(smc->shmem.iomem, wbuf, wsize);
drivers/mfd/macsmc.c
151
ret = apple_smc_cmd_locked(smc, cmd, key, smc_size, smc_wsize, &rdata);
drivers/mfd/macsmc.c
165
memcpy_fromio(rbuf, smc->shmem.iomem, rsize);
drivers/mfd/macsmc.c
171
int apple_smc_read(struct apple_smc *smc, smc_key key, void *buf, size_t size)
drivers/mfd/macsmc.c
173
guard(mutex)(&smc->mutex);
drivers/mfd/macsmc.c
175
return apple_smc_rw_locked(smc, key, NULL, 0, buf, size);
drivers/mfd/macsmc.c
179
int apple_smc_write(struct apple_smc *smc, smc_key key, const void *buf, size_t size)
drivers/mfd/macsmc.c
181
guard(mutex)(&smc->mutex);
drivers/mfd/macsmc.c
183
return apple_smc_rw_locked(smc, key, buf, size, NULL, 0);
drivers/mfd/macsmc.c
187
int apple_smc_rw(struct apple_smc *smc, smc_key key, const void *wbuf, size_t wsize,
drivers/mfd/macsmc.c
190
guard(mutex)(&smc->mutex);
drivers/mfd/macsmc.c
192
return apple_smc_rw_locked(smc, key, wbuf, wsize, rbuf, rsize);
drivers/mfd/macsmc.c
196
int apple_smc_get_key_by_index(struct apple_smc *smc, int index, smc_key *key)
drivers/mfd/macsmc.c
200
ret = apple_smc_cmd(smc, SMC_MSG_GET_KEY_BY_INDEX, index, 0, 0, key);
drivers/mfd/macsmc.c
207
int apple_smc_get_key_info(struct apple_smc *smc, smc_key key, struct apple_smc_key_info *info)
drivers/mfd/macsmc.c
212
ret = apple_smc_cmd(smc, SMC_MSG_GET_KEY_INFO, key, 0, 0, NULL);
drivers/mfd/macsmc.c
214
memcpy_fromio(key_info, smc->shmem.iomem, sizeof(key_info));
drivers/mfd/macsmc.c
223
int apple_smc_enter_atomic(struct apple_smc *smc)
drivers/mfd/macsmc.c
225
guard(mutex)(&smc->mutex);
drivers/mfd/macsmc.c
237
apple_smc_rw_locked(smc, SMC_KEY(NTAP), &flag, sizeof(flag), NULL, 0);
drivers/mfd/macsmc.c
239
smc->atomic_mode = true;
drivers/mfd/macsmc.c
245
int apple_smc_write_atomic(struct apple_smc *smc, smc_key key, const void *buf, size_t size)
drivers/mfd/macsmc.c
247
guard(spinlock_irqsave)(&smc->lock);
drivers/mfd/macsmc.c
255
if (smc->boot_stage != APPLE_SMC_INITIALIZED)
drivers/mfd/macsmc.c
257
if (!smc->atomic_mode)
drivers/mfd/macsmc.c
260
memcpy_toio(smc->shmem.iomem, buf, size);
drivers/mfd/macsmc.c
261
smc->msg_id = (smc->msg_id + 1) & 0xf;
drivers/mfd/macsmc.c
264
FIELD_PREP(SMC_ID, smc->msg_id) |
drivers/mfd/macsmc.c
266
smc->atomic_pending = true;
drivers/mfd/macsmc.c
268
ret = apple_rtkit_send_message(smc->rtk, SMC_ENDPOINT, msg, NULL, true);
drivers/mfd/macsmc.c
270
dev_err(smc->dev, "Failed to send command (%d)\n", ret);
drivers/mfd/macsmc.c
274
while (smc->atomic_pending) {
drivers/mfd/macsmc.c
275
ret = apple_rtkit_poll(smc->rtk);
drivers/mfd/macsmc.c
277
dev_err(smc->dev, "RTKit poll failed (%llx)", msg);
drivers/mfd/macsmc.c
283
if (FIELD_GET(SMC_ID, smc->cmd_ret) != smc->msg_id) {
drivers/mfd/macsmc.c
284
dev_err(smc->dev, "Command sequence mismatch (expected %d, got %d)\n",
drivers/mfd/macsmc.c
285
smc->msg_id, (unsigned int)FIELD_GET(SMC_ID, smc->cmd_ret));
drivers/mfd/macsmc.c
289
result = FIELD_GET(SMC_RESULT, smc->cmd_ret);
drivers/mfd/macsmc.c
293
return FIELD_GET(SMC_SIZE, smc->cmd_ret);
drivers/mfd/macsmc.c
299
struct apple_smc *smc = cookie;
drivers/mfd/macsmc.c
301
smc->boot_stage = APPLE_SMC_ERROR_CRASHED;
drivers/mfd/macsmc.c
302
dev_err(smc->dev, "SMC crashed! Your system will reboot in a few seconds...\n");
drivers/mfd/macsmc.c
307
struct apple_smc *smc = cookie;
drivers/mfd/macsmc.c
311
dev_err(smc->dev, "RTKit wants a RAM buffer\n");
drivers/mfd/macsmc.c
318
if (bfr->iova < smc->sram->start || bfr->iova > smc->sram->end ||
drivers/mfd/macsmc.c
319
bfr_end > smc->sram->end) {
drivers/mfd/macsmc.c
320
dev_err(smc->dev, "RTKit buffer request outside SRAM region: [0x%llx, 0x%llx]\n",
drivers/mfd/macsmc.c
326
bfr->iomem = smc->sram_base + (bfr->iova - smc->sram->start);
drivers/mfd/macsmc.c
334
struct apple_smc *smc = cookie;
drivers/mfd/macsmc.c
337
dev_warn(smc->dev, "Received message for unknown endpoint 0x%x\n", endpoint);
drivers/mfd/macsmc.c
341
if (smc->boot_stage == APPLE_SMC_BOOTING) {
drivers/mfd/macsmc.c
344
smc->shmem.iova = message;
drivers/mfd/macsmc.c
345
smc->shmem.size = SMC_SHMEM_SIZE;
drivers/mfd/macsmc.c
346
ret = apple_smc_rtkit_shmem_setup(smc, &smc->shmem);
drivers/mfd/macsmc.c
348
smc->boot_stage = APPLE_SMC_ERROR_NO_SHMEM;
drivers/mfd/macsmc.c
349
dev_err(smc->dev, "Failed to initialize shared memory (%d)\n", ret);
drivers/mfd/macsmc.c
351
smc->boot_stage = APPLE_SMC_INITIALIZED;
drivers/mfd/macsmc.c
353
complete(&smc->init_done);
drivers/mfd/macsmc.c
358
smc->cmd_ret = message;
drivers/mfd/macsmc.c
359
if (smc->atomic_pending)
drivers/mfd/macsmc.c
360
smc->atomic_pending = false;
drivers/mfd/macsmc.c
362
complete(&smc->cmd_done);
drivers/mfd/macsmc.c
370
struct apple_smc *smc = cookie;
drivers/mfd/macsmc.c
373
dev_warn(smc->dev, "Received message for unknown endpoint 0x%x\n", endpoint);
drivers/mfd/macsmc.c
378
dev_warn(smc->dev, "Received unknown message from worker: 0x%llx\n", message);
drivers/mfd/macsmc.c
382
blocking_notifier_call_chain(&smc->event_handlers, FIELD_GET(SMC_DATA, message), NULL);
drivers/mfd/macsmc.c
394
struct apple_smc *smc = data;
drivers/mfd/macsmc.c
397
if (apple_rtkit_is_running(smc->rtk))
drivers/mfd/macsmc.c
398
apple_rtkit_quiesce(smc->rtk);
drivers/mfd/macsmc.c
403
struct apple_smc *smc = data;
drivers/mfd/macsmc.c
405
apple_smc_write_flag(smc, SMC_KEY(NTAP), false);
drivers/mfd/macsmc.c
411
struct apple_smc *smc;
drivers/mfd/macsmc.c
415
smc = devm_kzalloc(dev, sizeof(*smc), GFP_KERNEL);
drivers/mfd/macsmc.c
416
if (!smc)
drivers/mfd/macsmc.c
419
mutex_init(&smc->mutex);
drivers/mfd/macsmc.c
420
smc->dev = &pdev->dev;
drivers/mfd/macsmc.c
421
smc->sram_base = devm_platform_get_and_ioremap_resource(pdev, 1, &smc->sram);
drivers/mfd/macsmc.c
422
if (IS_ERR(smc->sram_base))
drivers/mfd/macsmc.c
423
return dev_err_probe(dev, PTR_ERR(smc->sram_base), "Failed to map SRAM region");
drivers/mfd/macsmc.c
425
smc->rtk = devm_apple_rtkit_init(dev, smc, NULL, 0, &apple_smc_rtkit_ops);
drivers/mfd/macsmc.c
426
if (IS_ERR(smc->rtk))
drivers/mfd/macsmc.c
427
return dev_err_probe(dev, PTR_ERR(smc->rtk), "Failed to initialize RTKit");
drivers/mfd/macsmc.c
429
smc->boot_stage = APPLE_SMC_BOOTING;
drivers/mfd/macsmc.c
430
ret = apple_rtkit_wake(smc->rtk);
drivers/mfd/macsmc.c
434
ret = devm_add_action_or_reset(dev, apple_smc_rtkit_shutdown, smc);
drivers/mfd/macsmc.c
438
ret = apple_rtkit_start_ep(smc->rtk, SMC_ENDPOINT);
drivers/mfd/macsmc.c
442
init_completion(&smc->init_done);
drivers/mfd/macsmc.c
443
init_completion(&smc->cmd_done);
drivers/mfd/macsmc.c
445
ret = apple_rtkit_send_message(smc->rtk, SMC_ENDPOINT,
drivers/mfd/macsmc.c
450
if (wait_for_completion_timeout(&smc->init_done, msecs_to_jiffies(SMC_TIMEOUT_MS)) == 0) {
drivers/mfd/macsmc.c
455
if (smc->boot_stage != APPLE_SMC_INITIALIZED) {
drivers/mfd/macsmc.c
456
dev_err(dev, "SMC failed to boot successfully, boot stage=%d\n", smc->boot_stage);
drivers/mfd/macsmc.c
460
dev_set_drvdata(&pdev->dev, smc);
drivers/mfd/macsmc.c
461
BLOCKING_INIT_NOTIFIER_HEAD(&smc->event_handlers);
drivers/mfd/macsmc.c
463
ret = apple_smc_read_u32(smc, SMC_KEY(#KEY), &count);
drivers/mfd/macsmc.c
465
return dev_err_probe(smc->dev, ret, "Failed to get key count");
drivers/mfd/macsmc.c
466
smc->key_count = be32_to_cpu(count);
drivers/mfd/macsmc.c
469
apple_smc_write_flag(smc, SMC_KEY(NTAP), true);
drivers/mfd/macsmc.c
470
ret = devm_add_action_or_reset(dev, apple_smc_disable_notifications, smc);
drivers/mfd/macsmc.c
474
ret = devm_mfd_add_devices(smc->dev, PLATFORM_DEVID_NONE,
drivers/mfd/macsmc.c
478
return dev_err_probe(smc->dev, ret, "Failed to register sub-devices");
drivers/mfd/macsmc.c
55
static int apple_smc_cmd_locked(struct apple_smc *smc, u64 cmd, u64 arg,
drivers/mfd/macsmc.c
62
lockdep_assert_held(&smc->mutex);
drivers/mfd/macsmc.c
64
if (smc->boot_stage != APPLE_SMC_INITIALIZED)
drivers/mfd/macsmc.c
66
if (smc->atomic_mode)
drivers/mfd/macsmc.c
69
reinit_completion(&smc->cmd_done);
drivers/mfd/macsmc.c
71
smc->msg_id = (smc->msg_id + 1) & 0xf;
drivers/mfd/macsmc.c
75
FIELD_PREP(SMC_ID, smc->msg_id) |
drivers/mfd/macsmc.c
78
ret = apple_rtkit_send_message(smc->rtk, SMC_ENDPOINT, msg, NULL, false);
drivers/mfd/macsmc.c
80
dev_err(smc->dev, "Failed to send command\n");
drivers/mfd/macsmc.c
84
if (wait_for_completion_timeout(&smc->cmd_done, msecs_to_jiffies(SMC_TIMEOUT_MS)) <= 0) {
drivers/mfd/macsmc.c
85
dev_err(smc->dev, "Command timed out (%llx)", msg);
drivers/mfd/macsmc.c
89
if (FIELD_GET(SMC_ID, smc->cmd_ret) != smc->msg_id) {
drivers/mfd/macsmc.c
90
dev_err(smc->dev, "Command sequence mismatch (expected %d, got %d)\n",
drivers/mfd/macsmc.c
91
smc->msg_id, (unsigned int)FIELD_GET(SMC_ID, smc->cmd_ret));
drivers/mfd/macsmc.c
95
result = FIELD_GET(SMC_RESULT, smc->cmd_ret);
drivers/mtd/nand/raw/atmel/nand-controller.c
1504
atmel_smc_cs_conf_apply(nc->smc, cs->id, &cs->smcconf);
drivers/mtd/nand/raw/atmel/nand-controller.c
1533
atmel_hsmc_cs_conf_apply(nc->base.smc, nc->hsmc_layout, cs->id,
drivers/mtd/nand/raw/atmel/nand-controller.c
2092
nc->smc = syscon_node_to_regmap(np);
drivers/mtd/nand/raw/atmel/nand-controller.c
2094
if (IS_ERR(nc->smc)) {
drivers/mtd/nand/raw/atmel/nand-controller.c
2095
ret = PTR_ERR(nc->smc);
drivers/mtd/nand/raw/atmel/nand-controller.c
222
struct regmap *smc;
drivers/mtd/nand/raw/atmel/nand-controller.c
2237
nc->base.smc = devm_regmap_init_mmio(dev, iomem, ®map_conf);
drivers/mtd/nand/raw/atmel/nand-controller.c
2238
if (IS_ERR(nc->base.smc)) {
drivers/mtd/nand/raw/atmel/nand-controller.c
2239
ret = PTR_ERR(nc->base.smc);
drivers/mtd/nand/raw/atmel/nand-controller.c
2333
regmap_write(hsmc_nc->base.smc, ATMEL_HSMC_NFC_CTRL,
drivers/mtd/nand/raw/atmel/nand-controller.c
2375
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_IDR, 0xffffffff);
drivers/mtd/nand/raw/atmel/nand-controller.c
2386
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_CFG,
drivers/mtd/nand/raw/atmel/nand-controller.c
2388
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_CTRL,
drivers/mtd/nand/raw/atmel/nand-controller.c
292
regmap_read(nc->base.smc, ATMEL_HSMC_NFC_SR, &sr);
drivers/mtd/nand/raw/atmel/nand-controller.c
298
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_IDR, rcvd);
drivers/mtd/nand/raw/atmel/nand-controller.c
317
ret = regmap_read_poll_timeout(nc->base.smc,
drivers/mtd/nand/raw/atmel/nand-controller.c
324
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_IER,
drivers/mtd/nand/raw/atmel/nand-controller.c
333
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_IDR, 0xffffffff);
drivers/mtd/nand/raw/atmel/nand-controller.c
434
regmap_write(nc->base.smc, ATMEL_HSMC_NFC_ADDR, *addrs++);
drivers/mtd/nand/raw/atmel/nand-controller.c
454
regmap_read(nc->base.smc, ATMEL_HSMC_NFC_SR, &val);
drivers/mtd/nand/raw/atmel/nand-controller.c
539
return regmap_read_poll_timeout_atomic(nc->base.smc, ATMEL_HSMC_NFC_SR,
drivers/mtd/nand/raw/atmel/nand-controller.c
564
regmap_update_bits(nc->base.smc, ATMEL_HSMC_NFC_CFG,
drivers/net/ethernet/smsc/smc91c92_cs.c
1052
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1053
struct pcmcia_device *link = smc->p_dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
1072
smc->saved_skb = NULL;
drivers/net/ethernet/smsc/smc91c92_cs.c
1073
smc->packets_waiting = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
1076
timer_setup(&smc->media, media_check, 0);
drivers/net/ethernet/smsc/smc91c92_cs.c
1077
mod_timer(&smc->media, jiffies + HZ);
drivers/net/ethernet/smsc/smc91c92_cs.c
1086
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1087
struct pcmcia_device *link = smc->p_dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
1108
timer_delete_sync(&smc->media);
drivers/net/ethernet/smsc/smc91c92_cs.c
1123
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1124
struct sk_buff *skb = smc->saved_skb;
drivers/net/ethernet/smsc/smc91c92_cs.c
1140
smc->saved_skb = NULL;
drivers/net/ethernet/smsc/smc91c92_cs.c
1176
smc->saved_skb = NULL;
drivers/net/ethernet/smsc/smc91c92_cs.c
1186
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1194
smc->saved_skb = NULL;
drivers/net/ethernet/smsc/smc91c92_cs.c
1201
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1212
if (smc->saved_skb) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1218
smc->saved_skb = skb;
drivers/net/ethernet/smsc/smc91c92_cs.c
1225
smc->saved_skb = NULL;
drivers/net/ethernet/smsc/smc91c92_cs.c
1230
smc->packets_waiting++;
drivers/net/ethernet/smsc/smc91c92_cs.c
1232
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1236
if (smc->rx_ovrn) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1238
smc->rx_ovrn = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
1249
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1257
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1270
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1289
smc->tx_err++;
drivers/net/ethernet/smsc/smc91c92_cs.c
1297
outw(inw(ioaddr + TCR) | TCR_ENABLE | smc->duplex, ioaddr + TCR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1303
smc->packets_waiting--;
drivers/net/ethernet/smsc/smc91c92_cs.c
1312
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1332
outw(inw(ioaddr + TCR) | TCR_ENABLE | smc->duplex, ioaddr + TCR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1347
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1361
spin_lock(&smc->lock);
drivers/net/ethernet/smsc/smc91c92_cs.c
1362
smc->watchdog = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
1400
dev->stats.tx_packets += smc->packets_waiting;
drivers/net/ethernet/smsc/smc91c92_cs.c
1401
smc->packets_waiting = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
1418
if (smc->duplex)
drivers/net/ethernet/smsc/smc91c92_cs.c
1419
smc->rx_ovrn = 1; /* need MC_RESET outside smc_interrupt */
drivers/net/ethernet/smsc/smc91c92_cs.c
1438
if ((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1439
(smc->cardid != PRODID_OSITECH_SEVEN)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1444
if (smc->manfid == MANFID_MOTOROLA) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1446
cor = readb(smc->base + MOT_UART + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1447
writeb(cor & ~COR_IREQ_ENA, smc->base + MOT_UART + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1448
writeb(cor, smc->base + MOT_UART + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1449
cor = readb(smc->base + MOT_LAN + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1450
writeb(cor & ~COR_IREQ_ENA, smc->base + MOT_LAN + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1451
writeb(cor, smc->base + MOT_LAN + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1454
if ((smc->base != NULL) && /* Megahertz MFC's */
drivers/net/ethernet/smsc/smc91c92_cs.c
1455
(smc->manfid == MANFID_MEGAHERTZ) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1456
(smc->cardid == PRODID_MEGAHERTZ_EM3288)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1459
tmp = readb(smc->base+MEGAHERTZ_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1460
tmp = readb(smc->base+MEGAHERTZ_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1463
writeb(tmp, smc->base + MEGAHERTZ_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1464
writeb(tmp, smc->base + MEGAHERTZ_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1467
spin_unlock(&smc->lock);
drivers/net/ethernet/smsc/smc91c92_cs.c
1498
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1517
smc->last_rx = jiffies;
drivers/net/ethernet/smsc/smc91c92_cs.c
1549
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1574
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1581
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1592
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1594
if (smc->cfg & CFG_MII_SELECT)
drivers/net/ethernet/smsc/smc91c92_cs.c
1617
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1624
outw(smc->cfg | CFG_AUI_SELECT, ioaddr + CONFIG);
drivers/net/ethernet/smsc/smc91c92_cs.c
1625
if ((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1626
(smc->cardid != PRODID_OSITECH_SEVEN))
drivers/net/ethernet/smsc/smc91c92_cs.c
1628
smc->media_status = ((dev->if_port == 0) ? 0x0001 : 0x0002);
drivers/net/ethernet/smsc/smc91c92_cs.c
1630
outw(smc->cfg, ioaddr + CONFIG);
drivers/net/ethernet/smsc/smc91c92_cs.c
1631
if ((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1632
(smc->cardid != PRODID_OSITECH_SEVEN))
drivers/net/ethernet/smsc/smc91c92_cs.c
1634
smc->media_status = ((dev->if_port == 0) ? 0x0012 : 0x4001);
drivers/net/ethernet/smsc/smc91c92_cs.c
1642
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1666
if ((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1667
(smc->cardid != PRODID_OSITECH_SEVEN))
drivers/net/ethernet/smsc/smc91c92_cs.c
1684
outw(((smc->cfg & CFG_MII_SELECT) ? 0 : TCR_MONCSN) |
drivers/net/ethernet/smsc/smc91c92_cs.c
1685
TCR_ENABLE | TCR_PAD_EN | smc->duplex, ioaddr + TCR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1688
if (smc->cfg & CFG_MII_SELECT) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1692
mdio_write(dev, smc->mii_if.phy_id, 0, 0x8000);
drivers/net/ethernet/smsc/smc91c92_cs.c
1695
mdio_write(dev, smc->mii_if.phy_id, 4, 0x01e1);
drivers/net/ethernet/smsc/smc91c92_cs.c
1698
mdio_write(dev, smc->mii_if.phy_id, 0, 0x0000);
drivers/net/ethernet/smsc/smc91c92_cs.c
1699
mdio_write(dev, smc->mii_if.phy_id, 0, 0x1200);
drivers/net/ethernet/smsc/smc91c92_cs.c
1716
struct smc_private *smc = timer_container_of(smc, t, media);
drivers/net/ethernet/smsc/smc91c92_cs.c
1717
struct net_device *dev = smc->mii_if.dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
1723
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1733
if (smc->rx_ovrn) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1735
smc->rx_ovrn = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
1744
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1748
if (smc->watchdog++ && ((i>>8) & i)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1749
if (!smc->fast_poll)
drivers/net/ethernet/smsc/smc91c92_cs.c
1754
smc->fast_poll = HZ;
drivers/net/ethernet/smsc/smc91c92_cs.c
1756
if (smc->fast_poll) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1757
smc->fast_poll--;
drivers/net/ethernet/smsc/smc91c92_cs.c
1758
smc->media.expires = jiffies + HZ/100;
drivers/net/ethernet/smsc/smc91c92_cs.c
1759
add_timer(&smc->media);
drivers/net/ethernet/smsc/smc91c92_cs.c
1763
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1767
if (smc->cfg & CFG_MII_SELECT) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1768
if (smc->mii_if.phy_id < 0)
drivers/net/ethernet/smsc/smc91c92_cs.c
1772
link = mdio_read(dev, smc->mii_if.phy_id, 1);
drivers/net/ethernet/smsc/smc91c92_cs.c
1775
smc->mii_if.phy_id = -1;
drivers/net/ethernet/smsc/smc91c92_cs.c
1780
if (link != smc->link_status) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1781
u_short p = mdio_read(dev, smc->mii_if.phy_id, 5);
drivers/net/ethernet/smsc/smc91c92_cs.c
1783
smc->duplex = (((p & 0x0100) || ((p & 0x1c0) == 0x40))
drivers/net/ethernet/smsc/smc91c92_cs.c
1788
(p & 0x0180) ? 100 : 10, smc->duplex ? 'F' : 'H');
drivers/net/ethernet/smsc/smc91c92_cs.c
1791
outw(inw(ioaddr + TCR) | smc->duplex, ioaddr + TCR);
drivers/net/ethernet/smsc/smc91c92_cs.c
1792
smc->link_status = link;
drivers/net/ethernet/smsc/smc91c92_cs.c
1798
if (time_after(jiffies, smc->last_rx + HZ)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1799
if (smc->tx_err || (smc->media_status & EPH_16COL))
drivers/net/ethernet/smsc/smc91c92_cs.c
1802
smc->tx_err = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
1804
if (media != smc->media_status) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1805
if ((media & smc->media_status & 1) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1806
((smc->media_status ^ media) & EPH_LINK_OK))
drivers/net/ethernet/smsc/smc91c92_cs.c
1808
smc->media_status & EPH_LINK_OK ? "lost" : "found");
drivers/net/ethernet/smsc/smc91c92_cs.c
1809
else if ((media & smc->media_status & 2) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
1810
((smc->media_status ^ media) & EPH_16COL))
drivers/net/ethernet/smsc/smc91c92_cs.c
1826
smc->media_status = media;
drivers/net/ethernet/smsc/smc91c92_cs.c
1830
smc->media.expires = jiffies + HZ;
drivers/net/ethernet/smsc/smc91c92_cs.c
1831
add_timer(&smc->media);
drivers/net/ethernet/smsc/smc91c92_cs.c
1833
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1839
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1841
if (smc->cfg & CFG_MII_SELECT) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1842
return mii_link_ok(&smc->mii_if);
drivers/net/ethernet/smsc/smc91c92_cs.c
1919
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1924
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1926
if (smc->cfg & CFG_MII_SELECT)
drivers/net/ethernet/smsc/smc91c92_cs.c
1927
mii_ethtool_get_link_ksettings(&smc->mii_if, ecmd);
drivers/net/ethernet/smsc/smc91c92_cs.c
1931
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1938
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1944
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1946
if (smc->cfg & CFG_MII_SELECT)
drivers/net/ethernet/smsc/smc91c92_cs.c
1947
ret = mii_ethtool_set_link_ksettings(&smc->mii_if, ecmd);
drivers/net/ethernet/smsc/smc91c92_cs.c
1951
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1957
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1963
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1967
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
1973
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
1974
if (smc->cfg & CFG_MII_SELECT) {
drivers/net/ethernet/smsc/smc91c92_cs.c
1980
res = mii_nway_restart(&smc->mii_if);
drivers/net/ethernet/smsc/smc91c92_cs.c
1999
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
2009
spin_lock_irqsave(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
2012
rc = generic_mii_ioctl(&smc->mii_if, mii, cmd, NULL);
drivers/net/ethernet/smsc/smc91c92_cs.c
2014
spin_unlock_irqrestore(&smc->lock, flags);
drivers/net/ethernet/smsc/smc91c92_cs.c
304
struct smc_private *smc;
drivers/net/ethernet/smsc/smc91c92_cs.c
313
smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
314
smc->p_dev = link;
drivers/net/ethernet/smsc/smc91c92_cs.c
317
spin_lock_init(&smc->lock);
drivers/net/ethernet/smsc/smc91c92_cs.c
324
smc->mii_if.dev = dev;
drivers/net/ethernet/smsc/smc91c92_cs.c
325
smc->mii_if.mdio_read = mdio_read;
drivers/net/ethernet/smsc/smc91c92_cs.c
326
smc->mii_if.mdio_write = mdio_write;
drivers/net/ethernet/smsc/smc91c92_cs.c
327
smc->mii_if.phy_id_mask = 0x1f;
drivers/net/ethernet/smsc/smc91c92_cs.c
328
smc->mii_if.reg_num_mask = 0x1f;
drivers/net/ethernet/smsc/smc91c92_cs.c
383
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
387
readb(smc->base+MEGAHERTZ_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
389
readb(smc->base+MEGAHERTZ_ISR);
drivers/net/ethernet/smsc/smc91c92_cs.c
395
tmp = readb(smc->base + link->config_base + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
397
writeb(tmp, smc->base + link->config_base + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
426
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
447
smc->base = ioremap(link->resource[2]->start,
drivers/net/ethernet/smsc/smc91c92_cs.c
449
offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
452
(smc->manfid == MANFID_MEGAHERTZ) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
453
(smc->cardid == PRODID_MEGAHERTZ_EM3288))
drivers/net/ethernet/smsc/smc91c92_cs.c
521
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
526
writeb(iouart & 0xff, smc->base + MOT_UART + CISREG_IOBASE_0);
drivers/net/ethernet/smsc/smc91c92_cs.c
527
writeb((iouart >> 8) & 0xff, smc->base + MOT_UART + CISREG_IOBASE_1);
drivers/net/ethernet/smsc/smc91c92_cs.c
528
writeb(MOT_NORMAL, smc->base + MOT_UART + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
531
writeb(ioaddr & 0xff, smc->base + MOT_LAN + CISREG_IOBASE_0);
drivers/net/ethernet/smsc/smc91c92_cs.c
532
writeb((ioaddr >> 8) & 0xff, smc->base + MOT_LAN + CISREG_IOBASE_1);
drivers/net/ethernet/smsc/smc91c92_cs.c
533
writeb(MOT_NORMAL, smc->base + MOT_LAN + CISREG_COR);
drivers/net/ethernet/smsc/smc91c92_cs.c
725
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
728
if ((smc->manfid == MANFID_MEGAHERTZ) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
729
(smc->cardid == PRODID_MEGAHERTZ_EM3288))
drivers/net/ethernet/smsc/smc91c92_cs.c
731
if (smc->manfid == MANFID_MOTOROLA)
drivers/net/ethernet/smsc/smc91c92_cs.c
733
if ((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
734
(smc->cardid != PRODID_OSITECH_SEVEN)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
739
if (((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
740
(smc->cardid == PRODID_OSITECH_SEVEN)) ||
drivers/net/ethernet/smsc/smc91c92_cs.c
741
((smc->manfid == MANFID_PSION) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
742
(smc->cardid == PRODID_PSION_NET100))) {
drivers/net/ethernet/smsc/smc91c92_cs.c
811
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
819
smc->manfid = link->manf_id;
drivers/net/ethernet/smsc/smc91c92_cs.c
820
smc->cardid = link->card_id;
drivers/net/ethernet/smsc/smc91c92_cs.c
822
if ((smc->manfid == MANFID_OSITECH) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
823
(smc->cardid != PRODID_OSITECH_SEVEN)) {
drivers/net/ethernet/smsc/smc91c92_cs.c
825
} else if ((smc->manfid == MANFID_MOTOROLA) ||
drivers/net/ethernet/smsc/smc91c92_cs.c
826
((smc->manfid == MANFID_MEGAHERTZ) &&
drivers/net/ethernet/smsc/smc91c92_cs.c
827
((smc->cardid == PRODID_MEGAHERTZ_VARIOUS) ||
drivers/net/ethernet/smsc/smc91c92_cs.c
828
(smc->cardid == PRODID_MEGAHERTZ_EM3288)))) {
drivers/net/ethernet/smsc/smc91c92_cs.c
843
if (smc->manfid == MANFID_MOTOROLA)
drivers/net/ethernet/smsc/smc91c92_cs.c
853
switch (smc->manfid) {
drivers/net/ethernet/smsc/smc91c92_cs.c
856
i = osi_setup(link, smc->manfid, smc->cardid); break;
drivers/net/ethernet/smsc/smc91c92_cs.c
873
smc->duplex = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
874
smc->rx_ovrn = 0;
drivers/net/ethernet/smsc/smc91c92_cs.c
898
smc->cfg = inw(ioaddr + CONFIG) & ~CFG_AUI_SELECT;
drivers/net/ethernet/smsc/smc91c92_cs.c
899
smc->cfg |= CFG_NO_WAIT | CFG_16BIT | CFG_STATIC;
drivers/net/ethernet/smsc/smc91c92_cs.c
900
if (smc->manfid == MANFID_OSITECH)
drivers/net/ethernet/smsc/smc91c92_cs.c
901
smc->cfg |= CFG_IRQ_SEL_1 | CFG_IRQ_SEL_0;
drivers/net/ethernet/smsc/smc91c92_cs.c
903
smc->cfg |= CFG_MII_SELECT;
drivers/net/ethernet/smsc/smc91c92_cs.c
907
if (smc->cfg & CFG_MII_SELECT) {
drivers/net/ethernet/smsc/smc91c92_cs.c
914
smc->mii_if.phy_id = (i < 32) ? i : -1;
drivers/net/ethernet/smsc/smc91c92_cs.c
935
(smc->cfg & CFG_MII_SELECT) ? "MII" : if_names[dev->if_port]);
drivers/net/ethernet/smsc/smc91c92_cs.c
938
if (smc->cfg & CFG_MII_SELECT) {
drivers/net/ethernet/smsc/smc91c92_cs.c
939
if (smc->mii_if.phy_id != -1) {
drivers/net/ethernet/smsc/smc91c92_cs.c
941
smc->mii_if.phy_id, j);
drivers/net/ethernet/smsc/smc91c92_cs.c
961
struct smc_private *smc = netdev_priv(dev);
drivers/net/ethernet/smsc/smc91c92_cs.c
962
iounmap(smc->base);
drivers/net/fddi/skfp/cfm.c
100
smc->y[PA].scrub = 0 ;
drivers/net/fddi/skfp/cfm.c
101
smc->y[PB].scrub = 0 ;
drivers/net/fddi/skfp/cfm.c
102
smc->y[PA].cem_pst = CEM_PST_DOWN ;
drivers/net/fddi/skfp/cfm.c
103
smc->y[PB].cem_pst = CEM_PST_DOWN ;
drivers/net/fddi/skfp/cfm.c
107
#define THRU_ENABLED(smc) (smc->y[PA].pc_mode != PM_TREE && \
drivers/net/fddi/skfp/cfm.c
108
smc->y[PB].pc_mode != PM_TREE)
drivers/net/fddi/skfp/cfm.c
110
static void selection_criteria (struct s_smc *smc, struct s_phy *phy)
drivers/net/fddi/skfp/cfm.c
115
if ( !THRU_ENABLED(smc) && smc->y[PB].cf_join ) {
drivers/net/fddi/skfp/cfm.c
136
void all_selection_criteria(struct s_smc *smc)
drivers/net/fddi/skfp/cfm.c
141
for ( p = 0,phy = smc->y ; p < NUMPHYS; p++, phy++ ) {
drivers/net/fddi/skfp/cfm.c
143
selection_criteria (smc,phy);
drivers/net/fddi/skfp/cfm.c
147
static void cem_priv_state(struct s_smc *smc, int event)
drivers/net/fddi/skfp/cfm.c
154
if (smc->s.sas != SMT_DAS )
drivers/net/fddi/skfp/cfm.c
163
if (smc->y[np].cf_join) {
drivers/net/fddi/skfp/cfm.c
164
smc->y[np].cem_pst = CEM_PST_UP ;
drivers/net/fddi/skfp/cfm.c
165
} else if (!smc->y[np].wc_flag) {
drivers/net/fddi/skfp/cfm.c
167
smc->y[np].cem_pst = CEM_PST_DOWN ;
drivers/net/fddi/skfp/cfm.c
175
if ( smc->y[i].cem_pst == CEM_PST_HOLD && !smc->y[i].wc_flag ) {
drivers/net/fddi/skfp/cfm.c
176
smc->y[i].cem_pst = CEM_PST_DOWN;
drivers/net/fddi/skfp/cfm.c
177
queue_event(smc,(int)(EVENT_PCM+i),PC_START) ;
drivers/net/fddi/skfp/cfm.c
179
if ( smc->y[i].cem_pst == CEM_PST_UP && smc->y[i].wc_flag ) {
drivers/net/fddi/skfp/cfm.c
180
smc->y[i].cem_pst = CEM_PST_HOLD;
drivers/net/fddi/skfp/cfm.c
181
queue_event(smc,(int)(EVENT_PCM+i),PC_START) ;
drivers/net/fddi/skfp/cfm.c
183
if ( smc->y[i].cem_pst == CEM_PST_DOWN && smc->y[i].wc_flag ) {
drivers/net/fddi/skfp/cfm.c
188
smc->y[i].cem_pst = CEM_PST_HOLD;
drivers/net/fddi/skfp/cfm.c
203
void cfm(struct s_smc *smc, int event)
drivers/net/fddi/skfp/cfm.c
214
all_selection_criteria (smc);
drivers/net/fddi/skfp/cfm.c
218
cem_priv_state (smc, event);
drivers/net/fddi/skfp/cfm.c
222
smc->mib.fddiSMTCF_State & AFLAG ? "ACTIONS " : "",
drivers/net/fddi/skfp/cfm.c
223
cfm_states[smc->mib.fddiSMTCF_State & ~AFLAG],
drivers/net/fddi/skfp/cfm.c
225
state = smc->mib.fddiSMTCF_State ;
drivers/net/fddi/skfp/cfm.c
226
cfm_fsm(smc,event) ;
drivers/net/fddi/skfp/cfm.c
228
} while (state != smc->mib.fddiSMTCF_State) ;
drivers/net/fddi/skfp/cfm.c
235
if ( (smc->mib.fddiSMTCF_State == SC9_C_WRAP_A &&
drivers/net/fddi/skfp/cfm.c
236
smc->y[PA].pc_mode == PM_PEER) ||
drivers/net/fddi/skfp/cfm.c
237
(smc->mib.fddiSMTCF_State == SC10_C_WRAP_B &&
drivers/net/fddi/skfp/cfm.c
238
smc->y[PB].pc_mode == PM_PEER) ||
drivers/net/fddi/skfp/cfm.c
239
(smc->mib.fddiSMTCF_State == SC11_C_WRAP_S &&
drivers/net/fddi/skfp/cfm.c
240
smc->y[PS].pc_mode == PM_PEER &&
drivers/net/fddi/skfp/cfm.c
241
smc->y[PS].mib->fddiPORTNeighborType != TS ) ) {
drivers/net/fddi/skfp/cfm.c
244
if (cond != smc->mib.fddiSMTPeerWrapFlag)
drivers/net/fddi/skfp/cfm.c
245
smt_srf_event(smc,SMT_COND_SMT_PEER_WRAP,0,cond) ;
drivers/net/fddi/skfp/cfm.c
257
smc->mib.m[MAC0].fddiMACDownstreamPORTType =
drivers/net/fddi/skfp/cfm.c
258
cf_to_ptype[smc->mib.fddiSMTCF_State] ;
drivers/net/fddi/skfp/cfm.c
259
cfm_state_change(smc,(int)smc->mib.fddiSMTCF_State) ;
drivers/net/fddi/skfp/cfm.c
266
static void cfm_fsm(struct s_smc *smc, int cmd)
drivers/net/fddi/skfp/cfm.c
268
switch(smc->mib.fddiSMTCF_State) {
drivers/net/fddi/skfp/cfm.c
270
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_ISOLATED ;
drivers/net/fddi/skfp/cfm.c
271
smc->mib.p[PB].fddiPORTCurrentPath = MIB_PATH_ISOLATED ;
drivers/net/fddi/skfp/cfm.c
272
smc->mib.p[PA].fddiPORTMACPlacement = 0 ;
drivers/net/fddi/skfp/cfm.c
273
smc->mib.p[PB].fddiPORTMACPlacement = 0 ;
drivers/net/fddi/skfp/cfm.c
274
smc->mib.fddiSMTStationStatus = MIB_SMT_STASTA_SEPA ;
drivers/net/fddi/skfp/cfm.c
275
config_mux(smc,MUX_ISOLATE) ; /* configure PHY Mux */
drivers/net/fddi/skfp/cfm.c
276
smc->r.rm_loop = FALSE ;
drivers/net/fddi/skfp/cfm.c
277
smc->r.rm_join = FALSE ;
drivers/net/fddi/skfp/cfm.c
278
queue_event(smc,EVENT_RMT,RM_JOIN) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
281
DB_CFMN(1, "CFM : %s", cfm_states[smc->mib.fddiSMTCF_State]);
drivers/net/fddi/skfp/cfm.c
286
if (smc->s.sas && (smc->y[PA].cf_join || smc->y[PA].cf_loop ||
drivers/net/fddi/skfp/cfm.c
287
smc->y[PB].cf_join || smc->y[PB].cf_loop)) {
drivers/net/fddi/skfp/cfm.c
292
if ((smc->y[PA].cem_pst == CEM_PST_UP && smc->y[PA].cf_join &&
drivers/net/fddi/skfp/cfm.c
293
!smc->y[PA].wc_flag) || smc->y[PA].cf_loop) {
drivers/net/fddi/skfp/cfm.c
298
if ((smc->y[PB].cem_pst == CEM_PST_UP && smc->y[PB].cf_join &&
drivers/net/fddi/skfp/cfm.c
299
!smc->y[PB].wc_flag) || smc->y[PB].cf_loop) {
drivers/net/fddi/skfp/cfm.c
305
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_CONCATENATED ;
drivers/net/fddi/skfp/cfm.c
306
smc->mib.p[PB].fddiPORTCurrentPath = MIB_PATH_ISOLATED ;
drivers/net/fddi/skfp/cfm.c
307
smc->mib.p[PA].fddiPORTMACPlacement = INDEX_MAC ;
drivers/net/fddi/skfp/cfm.c
308
smc->mib.p[PB].fddiPORTMACPlacement = 0 ;
drivers/net/fddi/skfp/cfm.c
309
smc->mib.fddiSMTStationStatus = MIB_SMT_STASTA_CON ;
drivers/net/fddi/skfp/cfm.c
310
config_mux(smc,MUX_WRAPA) ; /* configure PHY mux */
drivers/net/fddi/skfp/cfm.c
311
if (smc->y[PA].cf_loop) {
drivers/net/fddi/skfp/cfm.c
312
smc->r.rm_join = FALSE ;
drivers/net/fddi/skfp/cfm.c
313
smc->r.rm_loop = TRUE ;
drivers/net/fddi/skfp/cfm.c
314
queue_event(smc,EVENT_RMT,RM_LOOP) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
316
if (smc->y[PA].cf_join) {
drivers/net/fddi/skfp/cfm.c
317
smc->r.rm_loop = FALSE ;
drivers/net/fddi/skfp/cfm.c
318
smc->r.rm_join = TRUE ;
drivers/net/fddi/skfp/cfm.c
319
queue_event(smc,EVENT_RMT,RM_JOIN) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
322
DB_CFMN(1, "CFM : %s", cfm_states[smc->mib.fddiSMTCF_State]);
drivers/net/fddi/skfp/cfm.c
326
if ( (smc->y[PA].wc_flag || !smc->y[PA].cf_join) &&
drivers/net/fddi/skfp/cfm.c
327
!smc->y[PA].cf_loop ) {
drivers/net/fddi/skfp/cfm.c
332
else if ( (smc->y[PB].cf_loop && smc->y[PA].cf_join &&
drivers/net/fddi/skfp/cfm.c
333
smc->y[PA].cem_pst == CEM_PST_UP) ||
drivers/net/fddi/skfp/cfm.c
334
((smc->y[PB].cf_loop ||
drivers/net/fddi/skfp/cfm.c
335
(smc->y[PB].cf_join &&
drivers/net/fddi/skfp/cfm.c
336
smc->y[PB].cem_pst == CEM_PST_UP)) &&
drivers/net/fddi/skfp/cfm.c
337
(smc->y[PA].pc_mode == PM_TREE ||
drivers/net/fddi/skfp/cfm.c
338
smc->y[PB].pc_mode == PM_TREE))) {
drivers/net/fddi/skfp/cfm.c
339
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
344
else if (!smc->s.attach_s &&
drivers/net/fddi/skfp/cfm.c
345
smc->y[PA].cf_join &&
drivers/net/fddi/skfp/cfm.c
346
smc->y[PA].cem_pst == CEM_PST_UP &&
drivers/net/fddi/skfp/cfm.c
347
smc->y[PA].pc_mode == PM_PEER && smc->y[PB].cf_join &&
drivers/net/fddi/skfp/cfm.c
348
smc->y[PB].cem_pst == CEM_PST_UP &&
drivers/net/fddi/skfp/cfm.c
349
smc->y[PB].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/cfm.c
350
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
351
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
356
else if ( smc->s.attach_s &&
drivers/net/fddi/skfp/cfm.c
357
smc->y[PA].cf_join &&
drivers/net/fddi/skfp/cfm.c
358
smc->y[PA].cem_pst == CEM_PST_UP &&
drivers/net/fddi/skfp/cfm.c
359
smc->y[PA].pc_mode == PM_PEER &&
drivers/net/fddi/skfp/cfm.c
360
smc->y[PB].cf_join &&
drivers/net/fddi/skfp/cfm.c
361
smc->y[PB].cem_pst == CEM_PST_UP &&
drivers/net/fddi/skfp/cfm.c
362
smc->y[PB].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/cfm.c
363
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
364
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
370
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_ISOLATED ;
drivers/net/fddi/skfp/cfm.c
371
smc->mib.p[PB].fddiPORTCurrentPath = MIB_PATH_CONCATENATED ;
drivers/net/fddi/skfp/cfm.c
372
smc->mib.p[PA].fddiPORTMACPlacement = 0 ;
drivers/net/fddi/skfp/cfm.c
373
smc->mib.p[PB].fddiPORTMACPlacement = INDEX_MAC ;
drivers/net/fddi/skfp/cfm.c
374
smc->mib.fddiSMTStationStatus = MIB_SMT_STASTA_CON ;
drivers/net/fddi/skfp/cfm.c
375
config_mux(smc,MUX_WRAPB) ; /* configure PHY mux */
drivers/net/fddi/skfp/cfm.c
376
if (smc->y[PB].cf_loop) {
drivers/net/fddi/skfp/cfm.c
377
smc->r.rm_join = FALSE ;
drivers/net/fddi/skfp/cfm.c
378
smc->r.rm_loop = TRUE ;
drivers/net/fddi/skfp/cfm.c
379
queue_event(smc,EVENT_RMT,RM_LOOP) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
381
if (smc->y[PB].cf_join) {
drivers/net/fddi/skfp/cfm.c
382
smc->r.rm_loop = FALSE ;
drivers/net/fddi/skfp/cfm.c
383
smc->r.rm_join = TRUE ;
drivers/net/fddi/skfp/cfm.c
384
queue_event(smc,EVENT_RMT,RM_JOIN) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
387
DB_CFMN(1, "CFM : %s", cfm_states[smc->mib.fddiSMTCF_State]);
drivers/net/fddi/skfp/cfm.c
391
if ( !smc->y[PB].cf_join && !smc->y[PB].cf_loop ) {
drivers/net/fddi/skfp/cfm.c
396
else if ( smc->y[PA].cf_loop && smc->y[PA].pc_mode == PM_PEER &&
drivers/net/fddi/skfp/cfm.c
397
smc->y[PB].cf_join && smc->y[PB].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/cfm.c
398
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
403
else if (!smc->s.attach_s &&
drivers/net/fddi/skfp/cfm.c
404
smc->y[PA].cf_join && smc->y[PA].pc_mode == PM_PEER &&
drivers/net/fddi/skfp/cfm.c
405
smc->y[PB].cf_join && smc->y[PB].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/cfm.c
406
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
407
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
412
else if ( smc->s.attach_s &&
drivers/net/fddi/skfp/cfm.c
413
smc->y[PA].cf_join && smc->y[PA].pc_mode == PM_PEER &&
drivers/net/fddi/skfp/cfm.c
414
smc->y[PB].cf_join && smc->y[PB].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/cfm.c
415
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
416
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
422
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_THRU ;
drivers/net/fddi/skfp/cfm.c
423
smc->mib.p[PB].fddiPORTCurrentPath = MIB_PATH_THRU ;
drivers/net/fddi/skfp/cfm.c
424
smc->mib.p[PA].fddiPORTMACPlacement = 0 ;
drivers/net/fddi/skfp/cfm.c
425
smc->mib.p[PB].fddiPORTMACPlacement = INDEX_MAC ;
drivers/net/fddi/skfp/cfm.c
426
smc->mib.fddiSMTStationStatus = MIB_SMT_STASTA_THRU ;
drivers/net/fddi/skfp/cfm.c
427
config_mux(smc,MUX_THRUA) ; /* configure PHY mux */
drivers/net/fddi/skfp/cfm.c
428
smc->r.rm_loop = FALSE ;
drivers/net/fddi/skfp/cfm.c
429
smc->r.rm_join = TRUE ;
drivers/net/fddi/skfp/cfm.c
43
#define GO_STATE(x) (smc->mib.fddiSMTCF_State = (x)|AFLAG)
drivers/net/fddi/skfp/cfm.c
430
queue_event(smc,EVENT_RMT,RM_JOIN) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
432
DB_CFMN(1, "CFM : %s", cfm_states[smc->mib.fddiSMTCF_State]);
drivers/net/fddi/skfp/cfm.c
436
if (smc->y[PB].wc_flag || !smc->y[PB].cf_join) {
drivers/net/fddi/skfp/cfm.c
437
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
44
#define ACTIONS_DONE() (smc->mib.fddiSMTCF_State &= ~AFLAG)
drivers/net/fddi/skfp/cfm.c
442
else if (!smc->y[PA].cf_join || smc->y[PA].wc_flag) {
drivers/net/fddi/skfp/cfm.c
443
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
448
else if (smc->s.attach_s) {
drivers/net/fddi/skfp/cfm.c
449
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
455
smc->mib.p[PA].fddiPORTCurrentPath = MIB_PATH_THRU ;
drivers/net/fddi/skfp/cfm.c
456
smc->mib.p[PB].fddiPORTCurrentPath = MIB_PATH_THRU ;
drivers/net/fddi/skfp/cfm.c
457
smc->mib.p[PA].fddiPORTMACPlacement = INDEX_MAC ;
drivers/net/fddi/skfp/cfm.c
458
smc->mib.p[PB].fddiPORTMACPlacement = 0 ;
drivers/net/fddi/skfp/cfm.c
459
smc->mib.fddiSMTStationStatus = MIB_SMT_STASTA_THRU ;
drivers/net/fddi/skfp/cfm.c
460
config_mux(smc,MUX_THRUB) ; /* configure PHY mux */
drivers/net/fddi/skfp/cfm.c
461
smc->r.rm_loop = FALSE ;
drivers/net/fddi/skfp/cfm.c
462
smc->r.rm_join = TRUE ;
drivers/net/fddi/skfp/cfm.c
463
queue_event(smc,EVENT_RMT,RM_JOIN) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
465
DB_CFMN(1, "CFM : %s", cfm_states[smc->mib.fddiSMTCF_State]);
drivers/net/fddi/skfp/cfm.c
469
if (!smc->y[PB].cf_join || smc->y[PB].wc_flag) {
drivers/net/fddi/skfp/cfm.c
470
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
475
else if (!smc->y[PA].cf_join || smc->y[PA].wc_flag) {
drivers/net/fddi/skfp/cfm.c
476
smc->y[PB].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
481
else if (!smc->s.attach_s) {
drivers/net/fddi/skfp/cfm.c
482
smc->y[PA].scrub = TRUE ;
drivers/net/fddi/skfp/cfm.c
488
smc->mib.p[PS].fddiPORTCurrentPath = MIB_PATH_CONCATENATED ;
drivers/net/fddi/skfp/cfm.c
489
smc->mib.p[PS].fddiPORTMACPlacement = INDEX_MAC ;
drivers/net/fddi/skfp/cfm.c
490
smc->mib.fddiSMTStationStatus = MIB_SMT_STASTA_CON ;
drivers/net/fddi/skfp/cfm.c
491
config_mux(smc,MUX_WRAPS) ; /* configure PHY mux */
drivers/net/fddi/skfp/cfm.c
492
if (smc->y[PA].cf_loop || smc->y[PB].cf_loop) {
drivers/net/fddi/skfp/cfm.c
493
smc->r.rm_join = FALSE ;
drivers/net/fddi/skfp/cfm.c
494
smc->r.rm_loop = TRUE ;
drivers/net/fddi/skfp/cfm.c
495
queue_event(smc,EVENT_RMT,RM_LOOP) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
497
if (smc->y[PA].cf_join || smc->y[PB].cf_join) {
drivers/net/fddi/skfp/cfm.c
498
smc->r.rm_loop = FALSE ;
drivers/net/fddi/skfp/cfm.c
499
smc->r.rm_join = TRUE ;
drivers/net/fddi/skfp/cfm.c
500
queue_event(smc,EVENT_RMT,RM_JOIN) ;/* signal RMT */
drivers/net/fddi/skfp/cfm.c
503
DB_CFMN(1, "CFM : %s", cfm_states[smc->mib.fddiSMTCF_State]);
drivers/net/fddi/skfp/cfm.c
507
if ( !smc->y[PA].cf_join && !smc->y[PA].cf_loop &&
drivers/net/fddi/skfp/cfm.c
508
!smc->y[PB].cf_join && !smc->y[PB].cf_loop) {
drivers/net/fddi/skfp/cfm.c
514
SMT_PANIC(smc,SMT_E0106, SMT_E0106_MSG) ;
drivers/net/fddi/skfp/cfm.c
524
int cfm_get_mac_input(struct s_smc *smc)
drivers/net/fddi/skfp/cfm.c
526
return (smc->mib.fddiSMTCF_State == SC10_C_WRAP_B ||
drivers/net/fddi/skfp/cfm.c
527
smc->mib.fddiSMTCF_State == SC5_THRU_B) ? PB : PA;
drivers/net/fddi/skfp/cfm.c
535
int cfm_get_mac_output(struct s_smc *smc)
drivers/net/fddi/skfp/cfm.c
537
return (smc->mib.fddiSMTCF_State == SC10_C_WRAP_B ||
drivers/net/fddi/skfp/cfm.c
538
smc->mib.fddiSMTCF_State == SC4_THRU_A) ? PB : PA;
drivers/net/fddi/skfp/cfm.c
575
int cem_build_path(struct s_smc *smc, char *to, int path_index)
drivers/net/fddi/skfp/cfm.c
580
switch (smc->mib.fddiSMTCF_State) {
drivers/net/fddi/skfp/cfm.c
583
path = smc->s.sas ? path_iso_s : path_iso ;
drivers/net/fddi/skfp/cfm.c
584
len = smc->s.sas ? sizeof(path_iso_s) : sizeof(path_iso) ;
drivers/net/fddi/skfp/cfm.c
89
static void cfm_fsm(struct s_smc *smc, int cmd);
drivers/net/fddi/skfp/cfm.c
95
void cfm_init(struct s_smc *smc)
drivers/net/fddi/skfp/cfm.c
97
smc->mib.fddiSMTCF_State = ACTIONS(SC0_ISOLATED) ;
drivers/net/fddi/skfp/cfm.c
98
smc->r.rm_join = 0 ;
drivers/net/fddi/skfp/cfm.c
99
smc->r.rm_loop = 0 ;
drivers/net/fddi/skfp/drvfbi.c
129
smc->hw.hw_is_64bit = TRUE ;
drivers/net/fddi/skfp/drvfbi.c
131
smc->hw.hw_is_64bit = FALSE ;
drivers/net/fddi/skfp/drvfbi.c
137
if (!smc->hw.hw_is_64bit) {
drivers/net/fddi/skfp/drvfbi.c
150
smc->hw.is_imask = ISR_MASK ;
drivers/net/fddi/skfp/drvfbi.c
151
smc->hw.hw_state = STOPPED ;
drivers/net/fddi/skfp/drvfbi.c
156
void card_stop(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
158
smt_stop_watchdog(smc) ;
drivers/net/fddi/skfp/drvfbi.c
159
smc->hw.mac_ring_is_up = 0 ; /* ring down */
drivers/net/fddi/skfp/drvfbi.c
167
hwt_wait_time(smc,hwt_quick_read(smc),MS2BCLK(10)) ;
drivers/net/fddi/skfp/drvfbi.c
174
smc->hw.hw_state = STOPPED ;
drivers/net/fddi/skfp/drvfbi.c
179
void mac1_irq(struct s_smc *smc, u_short stu, u_short stl)
drivers/net/fddi/skfp/drvfbi.c
190
SMT_PANIC(smc,SMT_E0134, SMT_E0134_MSG) ;
drivers/net/fddi/skfp/drvfbi.c
198
SMT_PANIC(smc,SMT_E0133, SMT_E0133_MSG) ;
drivers/net/fddi/skfp/drvfbi.c
206
formac_tx_restart(smc) ; /* init tx */
drivers/net/fddi/skfp/drvfbi.c
221
llc_restart_tx(smc) ;
drivers/net/fddi/skfp/drvfbi.c
228
void plc1_irq(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
232
plc_irq(smc,PB,st) ;
drivers/net/fddi/skfp/drvfbi.c
239
void plc2_irq(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
243
plc_irq(smc,PA,st) ;
drivers/net/fddi/skfp/drvfbi.c
250
void timer_irq(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
252
hwt_restart(smc);
drivers/net/fddi/skfp/drvfbi.c
253
smc->hw.t_stop = smc->hw.t_start;
drivers/net/fddi/skfp/drvfbi.c
254
smt_timer_done(smc) ;
drivers/net/fddi/skfp/drvfbi.c
260
int pcm_get_s_port(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
262
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/drvfbi.c
277
void read_address(struct s_smc *smc, u_char *mac_addr)
drivers/net/fddi/skfp/drvfbi.c
285
smc->hw.fddi_phys_addr.a[i] =
drivers/net/fddi/skfp/drvfbi.c
293
smc->y[PA].pmd_type[PMD_SK_CONN] =
drivers/net/fddi/skfp/drvfbi.c
294
smc->y[PB].pmd_type[PMD_SK_CONN] = ConnectorType ;
drivers/net/fddi/skfp/drvfbi.c
295
smc->y[PA].pmd_type[PMD_SK_PMD ] =
drivers/net/fddi/skfp/drvfbi.c
296
smc->y[PB].pmd_type[PMD_SK_PMD ] = PmdType ;
drivers/net/fddi/skfp/drvfbi.c
300
smc->hw.fddi_canon_addr.a[i] = mac_addr[i] ;
drivers/net/fddi/skfp/drvfbi.c
301
smc->hw.fddi_home_addr.a[i] = bitrev8(mac_addr[i]);
drivers/net/fddi/skfp/drvfbi.c
305
smc->hw.fddi_home_addr = smc->hw.fddi_phys_addr ;
drivers/net/fddi/skfp/drvfbi.c
308
smc->hw.fddi_canon_addr.a[i] =
drivers/net/fddi/skfp/drvfbi.c
309
bitrev8(smc->hw.fddi_phys_addr.a[i]);
drivers/net/fddi/skfp/drvfbi.c
316
void init_board(struct s_smc *smc, u_char *mac_addr)
drivers/net/fddi/skfp/drvfbi.c
318
card_start(smc) ;
drivers/net/fddi/skfp/drvfbi.c
319
read_address(smc,mac_addr) ;
drivers/net/fddi/skfp/drvfbi.c
322
smc->s.sas = SMT_SAS ; /* Single att. station */
drivers/net/fddi/skfp/drvfbi.c
324
smc->s.sas = SMT_DAS ; /* Dual att. station */
drivers/net/fddi/skfp/drvfbi.c
327
smc->mib.fddiSMTBypassPresent = 0 ;
drivers/net/fddi/skfp/drvfbi.c
330
smc->mib.fddiSMTBypassPresent = 1 ;
drivers/net/fddi/skfp/drvfbi.c
337
void sm_pm_bypass_req(struct s_smc *smc, int mode)
drivers/net/fddi/skfp/drvfbi.c
342
if (smc->s.sas != SMT_DAS)
drivers/net/fddi/skfp/drvfbi.c
360
int sm_pm_bypass_present(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
365
void plc_clear_irq(struct s_smc *smc, int p)
drivers/net/fddi/skfp/drvfbi.c
369
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/drvfbi.c
384
static void led_indication(struct s_smc *smc, int led_event)
drivers/net/fddi/skfp/drvfbi.c
394
phy = &smc->y[PA] ;
drivers/net/fddi/skfp/drvfbi.c
396
phy = &smc->y[PB] ;
drivers/net/fddi/skfp/drvfbi.c
433
void pcm_state_change(struct s_smc *smc, int plc, int p_state)
drivers/net/fddi/skfp/drvfbi.c
440
DRV_PCM_STATE_CHANGE(smc,plc,p_state) ;
drivers/net/fddi/skfp/drvfbi.c
442
led_indication(smc,0) ;
drivers/net/fddi/skfp/drvfbi.c
446
void rmt_indication(struct s_smc *smc, int i)
drivers/net/fddi/skfp/drvfbi.c
449
DRV_RMT_INDICATION(smc,i) ;
drivers/net/fddi/skfp/drvfbi.c
451
led_indication(smc, i ? LED_Y_OFF : LED_Y_ON) ;
drivers/net/fddi/skfp/drvfbi.c
458
void llc_recover_tx(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
466
smc->hw.n_a_send= 0 ;
drivers/net/fddi/skfp/drvfbi.c
468
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/drvfbi.c
494
int set_oi_id_def(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
503
smc->hw.oem_id = 0 ;
drivers/net/fddi/skfp/drvfbi.c
504
smc->hw.oem_min_status = OI_STAT_ACTIVE ;
drivers/net/fddi/skfp/drvfbi.c
528
smc->hw.oem_id = (struct s_oem_ids *) &oem_ids[sel_id] ;
drivers/net/fddi/skfp/drvfbi.c
533
void driver_get_bia(struct s_smc *smc, struct fddi_addr *bia_addr)
drivers/net/fddi/skfp/drvfbi.c
538
bia_addr->a[i] = bitrev8(smc->hw.fddi_phys_addr.a[i]);
drivers/net/fddi/skfp/drvfbi.c
541
void smt_start_watchdog(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
543
SK_UNUSED(smc) ; /* Make LINT happy. */
drivers/net/fddi/skfp/drvfbi.c
548
if (smc->hw.wdog_used) {
drivers/net/fddi/skfp/drvfbi.c
556
static void smt_stop_watchdog(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
558
SK_UNUSED(smc) ; /* Make LINT happy. */
drivers/net/fddi/skfp/drvfbi.c
562
if (smc->hw.wdog_used) {
drivers/net/fddi/skfp/drvfbi.c
572
void mac_do_pci_fix(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
574
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/drvfbi.c
60
#define OEMID(smc,i) oem_id[ID_BYTE0 + i]
drivers/net/fddi/skfp/drvfbi.c
66
#define OEMID(smc,i) smc->hw.oem_id->oi_id[i]
drivers/net/fddi/skfp/drvfbi.c
76
static void smt_stop_watchdog(struct s_smc *smc);
drivers/net/fddi/skfp/drvfbi.c
81
static void card_start(struct s_smc *smc)
drivers/net/fddi/skfp/drvfbi.c
89
smt_stop_watchdog(smc) ;
drivers/net/fddi/skfp/drvfbi.c
97
hwt_wait_time(smc,hwt_quick_read(smc),MS2BCLK(10)) ;
drivers/net/fddi/skfp/ecm.c
100
smc->mib.fddiSMTECMState = ACTIONS(EC0_OUT) ;
drivers/net/fddi/skfp/ecm.c
101
smc->e.ecm_line_state = FALSE ;
drivers/net/fddi/skfp/ecm.c
113
void ecm(struct s_smc *smc, int event)
drivers/net/fddi/skfp/ecm.c
119
smc->mib.fddiSMTECMState & AFLAG ? "ACTIONS " : "",
drivers/net/fddi/skfp/ecm.c
120
ecm_states[smc->mib.fddiSMTECMState & ~AFLAG],
drivers/net/fddi/skfp/ecm.c
122
state = smc->mib.fddiSMTECMState ;
drivers/net/fddi/skfp/ecm.c
123
ecm_fsm(smc,event) ;
drivers/net/fddi/skfp/ecm.c
125
} while (state != smc->mib.fddiSMTECMState) ;
drivers/net/fddi/skfp/ecm.c
126
ecm_state_change(smc,(int)smc->mib.fddiSMTECMState) ;
drivers/net/fddi/skfp/ecm.c
132
static void ecm_fsm(struct s_smc *smc, int cmd)
drivers/net/fddi/skfp/ecm.c
139
smc->mib.fddiSMTBypassPresent = sm_pm_bypass_present(smc) ;
drivers/net/fddi/skfp/ecm.c
141
smc->mib.fddiSMTRemoteDisconnectFlag = FALSE ;
drivers/net/fddi/skfp/ecm.c
146
smc->mib.fddiSMTRemoteDisconnectFlag == TRUE) {
drivers/net/fddi/skfp/ecm.c
147
AIX_EVENT (smc, (u_long) CIO_HARD_FAIL, (u_long)
drivers/net/fddi/skfp/ecm.c
148
FDDI_REMOTE_DISCONNECT, smt_get_event_word(smc),
drivers/net/fddi/skfp/ecm.c
149
smt_get_error_word(smc) );
drivers/net/fddi/skfp/ecm.c
154
smc->e.DisconnectFlag = FALSE ;
drivers/net/fddi/skfp/ecm.c
157
smc->e.DisconnectFlag = TRUE ;
drivers/net/fddi/skfp/ecm.c
160
switch(smc->mib.fddiSMTECMState) {
drivers/net/fddi/skfp/ecm.c
165
smc->e.path_test = PT_PASSED ;
drivers/net/fddi/skfp/ecm.c
166
smc->e.ecm_line_state = FALSE ;
drivers/net/fddi/skfp/ecm.c
167
stop_ecm_timer(smc) ;
drivers/net/fddi/skfp/ecm.c
172
if (cmd == EC_CONNECT && !smc->mib.fddiSMTBypassPresent
drivers/net/fddi/skfp/ecm.c
173
&& smc->e.path_test==PT_PASSED) {
drivers/net/fddi/skfp/ecm.c
178
else if (cmd == EC_CONNECT && (smc->e.path_test==PT_PASSED) &&
drivers/net/fddi/skfp/ecm.c
179
smc->mib.fddiSMTBypassPresent &&
drivers/net/fddi/skfp/ecm.c
180
(smc->s.sas == SMT_DAS)) {
drivers/net/fddi/skfp/ecm.c
186
stop_ecm_timer(smc) ;
drivers/net/fddi/skfp/ecm.c
187
smc->e.trace_prop = 0 ;
drivers/net/fddi/skfp/ecm.c
188
sm_ma_control(smc,MA_TREQ) ;
drivers/net/fddi/skfp/ecm.c
190
if (smc->mib.p[p].fddiPORTHardwarePresent)
drivers/net/fddi/skfp/ecm.c
191
queue_event(smc,EVENT_PCMA+p,PC_START) ;
drivers/net/fddi/skfp/ecm.c
197
prop_actions(smc) ;
drivers/net/fddi/skfp/ecm.c
208
start_ecm_timer(smc,MIB2US(smc->mib.fddiSMTTrace_MaxExpiration),
drivers/net/fddi/skfp/ecm.c
215
prop_actions(smc) ;
drivers/net/fddi/skfp/ecm.c
221
smc->e.path_test = PT_EXITING ;
drivers/net/fddi/skfp/ecm.c
226
else if (smc->e.path_test == PT_PENDING) {
drivers/net/fddi/skfp/ecm.c
234
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS,
drivers/net/fddi/skfp/ecm.c
236
FDDI_TRACE_MAX, smt_get_error_word(smc));
drivers/net/fddi/skfp/ecm.c
237
smc->e.path_test = PT_PENDING ;
drivers/net/fddi/skfp/ecm.c
243
start_ecm_timer(smc,smc->s.ecm_td_min,EC_TIMEOUT_TD) ;
drivers/net/fddi/skfp/ecm.c
245
queue_event(smc,EVENT_PCMA+p,PC_STOP) ;
drivers/net/fddi/skfp/ecm.c
250
if (cmd == EC_TIMEOUT_TD && !smc->mib.fddiSMTBypassPresent &&
drivers/net/fddi/skfp/ecm.c
251
(smc->e.path_test != PT_PENDING)) {
drivers/net/fddi/skfp/ecm.c
257
(smc->e.path_test == PT_PENDING)) {
drivers/net/fddi/skfp/ecm.c
262
else if (cmd == EC_CONNECT && smc->e.path_test == PT_PASSED) {
drivers/net/fddi/skfp/ecm.c
268
smc->e.path_test == PT_PENDING) {
drivers/net/fddi/skfp/ecm.c
269
smc->e.path_test = PT_EXITING ;
drivers/net/fddi/skfp/ecm.c
276
smc->mib.fddiSMTBypassPresent &&
drivers/net/fddi/skfp/ecm.c
277
smc->e.path_test != PT_PENDING) {
drivers/net/fddi/skfp/ecm.c
283
stop_ecm_timer(smc) ;
drivers/net/fddi/skfp/ecm.c
284
smc->e.path_test = PT_TESTING ;
drivers/net/fddi/skfp/ecm.c
285
start_ecm_timer(smc,smc->s.ecm_test_done,EC_TEST_DONE) ;
drivers/net/fddi/skfp/ecm.c
292
smc->e.path_test = PT_PASSED ;
drivers/net/fddi/skfp/ecm.c
294
if (smc->e.path_test == PT_FAILED)
drivers/net/fddi/skfp/ecm.c
295
RS_SET(smc,RS_PATHTEST) ;
drivers/net/fddi/skfp/ecm.c
298
if (smc->e.path_test == PT_FAILED &&
drivers/net/fddi/skfp/ecm.c
299
!smc->mib.fddiSMTBypassPresent) {
drivers/net/fddi/skfp/ecm.c
305
!smc->mib.fddiSMTBypassPresent) {
drivers/net/fddi/skfp/ecm.c
310
else if (smc->e.path_test == PT_PASSED) {
drivers/net/fddi/skfp/ecm.c
315
else if (smc->e.path_test == PT_FAILED &&
drivers/net/fddi/skfp/ecm.c
316
smc->mib.fddiSMTBypassPresent) {
drivers/net/fddi/skfp/ecm.c
322
smc->mib.fddiSMTBypassPresent) {
drivers/net/fddi/skfp/ecm.c
328
sm_pm_bypass_req(smc,BP_INSERT);
drivers/net/fddi/skfp/ecm.c
329
start_ecm_timer(smc,smc->s.ecm_in_max,EC_TIMEOUT_INMAX) ;
drivers/net/fddi/skfp/ecm.c
349
start_ecm_timer(smc,smc->s.ecm_check_poll,0) ;
drivers/net/fddi/skfp/ecm.c
350
smc->e.ecm_line_state = TRUE ; /* flag to pcm: report Q/HLS */
drivers/net/fddi/skfp/ecm.c
354
ls_a = sm_pm_get_ls(smc,PA) ;
drivers/net/fddi/skfp/ecm.c
355
ls_b = sm_pm_get_ls(smc,PB) ;
drivers/net/fddi/skfp/ecm.c
360
smc->e.sb_flag = FALSE ;
drivers/net/fddi/skfp/ecm.c
361
smc->e.ecm_line_state = FALSE ;
drivers/net/fddi/skfp/ecm.c
366
else if (!smc->e.sb_flag &&
drivers/net/fddi/skfp/ecm.c
369
smc->e.sb_flag = TRUE ;
drivers/net/fddi/skfp/ecm.c
371
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/ecm.c
373
smt_get_error_word(smc));
drivers/net/fddi/skfp/ecm.c
377
smc->e.ecm_line_state = FALSE ;
drivers/net/fddi/skfp/ecm.c
385
start_ecm_timer(smc,smc->s.ecm_check_poll,0) ;
drivers/net/fddi/skfp/ecm.c
389
sm_pm_bypass_req(smc,BP_DEINSERT);
drivers/net/fddi/skfp/ecm.c
390
start_ecm_timer(smc,smc->s.ecm_i_max,EC_TIMEOUT_IMAX) ;
drivers/net/fddi/skfp/ecm.c
400
else if (cmd == EC_CONNECT && smc->e.path_test == PT_PASSED) {
drivers/net/fddi/skfp/ecm.c
406
SMT_PANIC(smc,SMT_E0107, SMT_E0107_MSG) ;
drivers/net/fddi/skfp/ecm.c
415
static void prop_actions(struct s_smc *smc)
drivers/net/fddi/skfp/ecm.c
420
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/ecm.c
421
switch (smc->s.sas) {
drivers/net/fddi/skfp/ecm.c
423
port_in = port_out = pcm_get_s_port(smc) ;
drivers/net/fddi/skfp/ecm.c
426
port_in = cfm_get_mac_input(smc) ; /* PA or PB */
drivers/net/fddi/skfp/ecm.c
427
port_out = cfm_get_mac_output(smc) ; /* PA or PB */
drivers/net/fddi/skfp/ecm.c
430
SMT_PANIC(smc,SMT_E0108, SMT_E0108_MSG) ;
drivers/net/fddi/skfp/ecm.c
434
DB_ECM("ECM : prop_actions - trace_prop %lu", smc->e.trace_prop);
drivers/net/fddi/skfp/ecm.c
437
if (smc->e.trace_prop & ENTITY_BIT(ENTITY_MAC)) {
drivers/net/fddi/skfp/ecm.c
440
queue_event(smc,EVENT_PCM+port_in,PC_TRACE) ;
drivers/net/fddi/skfp/ecm.c
442
else if ((smc->e.trace_prop & ENTITY_BIT(ENTITY_PHY(PA))) &&
drivers/net/fddi/skfp/ecm.c
446
queue_event(smc,EVENT_PCMB,PC_TRACE) ;
drivers/net/fddi/skfp/ecm.c
448
else if ((smc->e.trace_prop & ENTITY_BIT(ENTITY_PHY(PB))) &&
drivers/net/fddi/skfp/ecm.c
452
queue_event(smc,EVENT_PCMA,PC_TRACE) ;
drivers/net/fddi/skfp/ecm.c
457
smc->e.path_test = PT_PENDING ;
drivers/net/fddi/skfp/ecm.c
459
smc->e.trace_prop = 0 ;
drivers/net/fddi/skfp/ecm.c
465
static void prop_actions(struct s_smc *smc)
drivers/net/fddi/skfp/ecm.c
47
#define GO_STATE(x) (smc->mib.fddiSMTECMState = (x)|AFLAG)
drivers/net/fddi/skfp/ecm.c
471
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/ecm.c
472
while (smc->e.trace_prop) {
drivers/net/fddi/skfp/ecm.c
474
smc->e.trace_prop);
drivers/net/fddi/skfp/ecm.c
476
if (smc->e.trace_prop & ENTITY_BIT(ENTITY_MAC)) {
drivers/net/fddi/skfp/ecm.c
478
smc->e.trace_prop &= ~ENTITY_BIT(ENTITY_MAC) ;
drivers/net/fddi/skfp/ecm.c
48
#define ACTIONS_DONE() (smc->mib.fddiSMTECMState &= ~AFLAG)
drivers/net/fddi/skfp/ecm.c
483
if (smc->e.trace_prop &
drivers/net/fddi/skfp/ecm.c
488
smc->e.trace_prop &= ~ENTITY_BIT(ENTITY_PHY(p)) ;
drivers/net/fddi/skfp/ecm.c
490
upstream = cem_get_upstream(smc,initiator) ;
drivers/net/fddi/skfp/ecm.c
495
smc->e.path_test = PT_PENDING ;
drivers/net/fddi/skfp/ecm.c
500
queue_event(smc,EVENT_PCM+upstream,PC_TRACE) ;
drivers/net/fddi/skfp/ecm.c
511
static void start_ecm_timer(struct s_smc *smc, u_long value, int event)
drivers/net/fddi/skfp/ecm.c
513
smt_timer_start(smc,&smc->e.ecm_timer,value,EV_TOKEN(EVENT_ECM,event));
drivers/net/fddi/skfp/ecm.c
520
static void stop_ecm_timer(struct s_smc *smc)
drivers/net/fddi/skfp/ecm.c
522
if (smc->e.ecm_timer.tm_active)
drivers/net/fddi/skfp/ecm.c
523
smt_timer_stop(smc,&smc->e.ecm_timer) ;
drivers/net/fddi/skfp/ecm.c
86
static void ecm_fsm(struct s_smc *smc, int cmd);
drivers/net/fddi/skfp/ecm.c
87
static void start_ecm_timer(struct s_smc *smc, u_long value, int event);
drivers/net/fddi/skfp/ecm.c
88
static void stop_ecm_timer(struct s_smc *smc);
drivers/net/fddi/skfp/ecm.c
89
static void prop_actions(struct s_smc *smc);
drivers/net/fddi/skfp/ecm.c
95
void ecm_init(struct s_smc *smc)
drivers/net/fddi/skfp/ecm.c
97
smc->e.path_test = PT_PASSED ;
drivers/net/fddi/skfp/ecm.c
98
smc->e.trace_prop = 0 ;
drivers/net/fddi/skfp/ecm.c
99
smc->e.sb_flag = 0 ;
drivers/net/fddi/skfp/ess.c
100
static int process_bw_alloc(struct s_smc *smc, long int payload, long int overhead);
drivers/net/fddi/skfp/ess.c
112
int ess_raf_received_pack(struct s_smc *smc, SMbuf *mb, struct smt_header *sm,
drivers/net/fddi/skfp/ess.c
131
if (!(p = (void *) sm_to_para(smc,sm,SMT_P0015))) {
drivers/net/fddi/skfp/ess.c
140
if (!(cmd = (struct smt_p_0016 *) sm_to_para(smc,sm,SMT_P0016))) {
drivers/net/fddi/skfp/ess.c
172
if (!local || smc->mib.fddiESSPayload)
drivers/net/fddi/skfp/ess.c
175
p = (void *) sm_to_para(smc,sm,SMT_P0019) ;
drivers/net/fddi/skfp/ess.c
186
smc->ess.alloc_trans_id = sm->smt_tid ;
drivers/net/fddi/skfp/ess.c
188
p = (void *) sm_to_para(smc,sm,SMT_P320F) ;
drivers/net/fddi/skfp/ess.c
190
smc->mib.a[PATH0].fddiPATHSbaPayload ;
drivers/net/fddi/skfp/ess.c
191
p = (void *) sm_to_para(smc,sm,SMT_P3210) ;
drivers/net/fddi/skfp/ess.c
193
smc->mib.a[PATH0].fddiPATHSbaOverhead ;
drivers/net/fddi/skfp/ess.c
196
if (smc->ess.local_sba_active)
drivers/net/fddi/skfp/ess.c
199
if (!(db = smt_get_mbuf(smc)))
drivers/net/fddi/skfp/ess.c
206
dump_smt(smc,
drivers/net/fddi/skfp/ess.c
209
smt_send_frame(smc,db,FC_SMT_INFO,0) ;
drivers/net/fddi/skfp/ess.c
217
if (smt_check_para(smc,sm,plist_raf_alc_res)) {
drivers/net/fddi/skfp/ess.c
232
if ((((struct smt_p_320b *)sm_to_para(smc,sm,SMT_P320B))->path_index
drivers/net/fddi/skfp/ess.c
235
(((struct smt_p_reason *)sm_to_para(smc,sm,SMT_P0012))->rdf_reason
drivers/net/fddi/skfp/ess.c
237
(sm->smt_tid != smc->ess.alloc_trans_id)) {
drivers/net/fddi/skfp/ess.c
246
p = (void *) sm_to_para(smc,sm,SMT_P320F) ;
drivers/net/fddi/skfp/ess.c
252
p = (void *) sm_to_para(smc,sm,SMT_P3210) ;
drivers/net/fddi/skfp/ess.c
265
(void)process_bw_alloc(smc,(long)payload,(long)overhead) ;
drivers/net/fddi/skfp/ess.c
285
if (smt_check_para(smc,sm,plist_raf_chg_req)) {
drivers/net/fddi/skfp/ess.c
296
if ((((struct smt_p_320b *)sm_to_para(smc,sm,SMT_P320B))->path_index
drivers/net/fddi/skfp/ess.c
305
p = (void *) sm_to_para(smc,sm,SMT_P320F) ;
drivers/net/fddi/skfp/ess.c
307
p = (void *) sm_to_para(smc,sm,SMT_P3210) ;
drivers/net/fddi/skfp/ess.c
318
if(!process_bw_alloc(smc,(long)payload,(long)overhead))
drivers/net/fddi/skfp/ess.c
324
ess_send_response(smc,sm,CHANGE_ALLOCATION) ;
drivers/net/fddi/skfp/ess.c
355
ess_send_response(smc,sm,REPORT_ALLOCATION) ;
drivers/net/fddi/skfp/ess.c
375
static int process_bw_alloc(struct s_smc *smc, long int payload, long int overhead)
drivers/net/fddi/skfp/ess.c
435
if (smc->mib.fddiESSPayload &&
drivers/net/fddi/skfp/ess.c
436
((u_long)payload != smc->mib.fddiESSPayload ||
drivers/net/fddi/skfp/ess.c
437
(u_long)overhead != smc->mib.fddiESSOverhead)) {
drivers/net/fddi/skfp/ess.c
438
smc->ess.raf_act_timer_poll = TRUE ;
drivers/net/fddi/skfp/ess.c
439
smc->ess.timer_count = 0 ;
drivers/net/fddi/skfp/ess.c
447
smc->ess.sync_bw_available = TRUE ;
drivers/net/fddi/skfp/ess.c
449
smc->ess.sync_bw = overhead -
drivers/net/fddi/skfp/ess.c
450
(long)smc->mib.m[MAC0].fddiMACT_Neg *
drivers/net/fddi/skfp/ess.c
455
smc->ess.sync_bw_available = FALSE ;
drivers/net/fddi/skfp/ess.c
456
smc->ess.sync_bw = 0 ;
drivers/net/fddi/skfp/ess.c
460
smc->mib.a[PATH0].fddiPATHSbaPayload = payload ;
drivers/net/fddi/skfp/ess.c
461
smc->mib.a[PATH0].fddiPATHSbaOverhead = overhead ;
drivers/net/fddi/skfp/ess.c
464
DB_ESSN(2, "tsync = %lx", smc->ess.sync_bw);
drivers/net/fddi/skfp/ess.c
466
ess_config_fifo(smc) ;
drivers/net/fddi/skfp/ess.c
467
set_formac_tsync(smc,smc->ess.sync_bw) ;
drivers/net/fddi/skfp/ess.c
471
static void ess_send_response(struct s_smc *smc, struct smt_header *sm,
drivers/net/fddi/skfp/ess.c
482
if (!(mb=smt_build_frame(smc,SMT_RAF,SMT_REPLY,
drivers/net/fddi/skfp/ess.c
487
if (!(mb=smt_build_frame(smc,SMT_RAF,SMT_REPLY,
drivers/net/fddi/skfp/ess.c
517
chg->payload.mib_payload = smc->mib.a[PATH0].fddiPATHSbaPayload ;
drivers/net/fddi/skfp/ess.c
523
chg->overhead.mib_overhead = smc->mib.a[PATH0].fddiPATHSbaOverhead ;
drivers/net/fddi/skfp/ess.c
529
p = (void *) sm_to_para(smc,sm,SMT_P001A) ;
drivers/net/fddi/skfp/ess.c
532
dump_smt(smc,(struct smt_header *)chg,"RAF") ;
drivers/net/fddi/skfp/ess.c
533
ess_send_frame(smc,mb) ;
drivers/net/fddi/skfp/ess.c
536
void ess_timer_poll(struct s_smc *smc)
drivers/net/fddi/skfp/ess.c
538
if (!smc->ess.raf_act_timer_poll)
drivers/net/fddi/skfp/ess.c
543
smc->ess.timer_count++ ;
drivers/net/fddi/skfp/ess.c
544
if (smc->ess.timer_count == 10) {
drivers/net/fddi/skfp/ess.c
545
smc->ess.timer_count = 0 ;
drivers/net/fddi/skfp/ess.c
546
ess_send_alc_req(smc) ;
drivers/net/fddi/skfp/ess.c
550
static void ess_send_alc_req(struct s_smc *smc)
drivers/net/fddi/skfp/ess.c
560
if (!smc->mib.fddiESSPayload) {
drivers/net/fddi/skfp/ess.c
561
smc->mib.fddiESSOverhead = 0 ;
drivers/net/fddi/skfp/ess.c
564
if (!smc->mib.fddiESSOverhead)
drivers/net/fddi/skfp/ess.c
565
smc->mib.fddiESSOverhead = DEFAULT_OV ;
drivers/net/fddi/skfp/ess.c
568
if (smc->mib.fddiESSOverhead ==
drivers/net/fddi/skfp/ess.c
569
smc->mib.a[PATH0].fddiPATHSbaOverhead &&
drivers/net/fddi/skfp/ess.c
570
smc->mib.fddiESSPayload ==
drivers/net/fddi/skfp/ess.c
571
smc->mib.a[PATH0].fddiPATHSbaPayload){
drivers/net/fddi/skfp/ess.c
572
smc->ess.raf_act_timer_poll = FALSE ;
drivers/net/fddi/skfp/ess.c
573
smc->ess.timer_count = 7 ; /* next RAF alc req after 3 s */
drivers/net/fddi/skfp/ess.c
580
if (!(mb=smt_build_frame(smc,SMT_RAF,SMT_REQUEST,
drivers/net/fddi/skfp/ess.c
584
req->smt.smt_tid = smc->ess.alloc_trans_id = smt_get_tid(smc) ;
drivers/net/fddi/skfp/ess.c
612
req->pl_req.sba_pl_req = smc->mib.fddiESSPayload -
drivers/net/fddi/skfp/ess.c
613
smc->mib.a[PATH0].fddiPATHSbaPayload ;
drivers/net/fddi/skfp/ess.c
618
req->ov_req.sba_ov_req = smc->mib.fddiESSOverhead -
drivers/net/fddi/skfp/ess.c
619
smc->mib.a[PATH0].fddiPATHSbaOverhead ;
drivers/net/fddi/skfp/ess.c
625
req->payload.mib_payload = smc->mib.a[PATH0].fddiPATHSbaPayload ;
drivers/net/fddi/skfp/ess.c
631
req->overhead.mib_overhead = smc->mib.a[PATH0].fddiPATHSbaOverhead ;
drivers/net/fddi/skfp/ess.c
642
req->cat.category = smc->mib.fddiESSCategory ;
drivers/net/fddi/skfp/ess.c
647
req->tneg.max_t_neg = smc->mib.fddiESSMaxTNeg ;
drivers/net/fddi/skfp/ess.c
652
req->segm.min_seg_siz = smc->mib.fddiESSMinSegmentSize ;
drivers/net/fddi/skfp/ess.c
654
dump_smt(smc,(struct smt_header *)req,"RAF") ;
drivers/net/fddi/skfp/ess.c
655
ess_send_frame(smc,mb) ;
drivers/net/fddi/skfp/ess.c
658
static void ess_send_frame(struct s_smc *smc, SMbuf *mb)
drivers/net/fddi/skfp/ess.c
663
if (smc->ess.local_sba_active) {
drivers/net/fddi/skfp/ess.c
668
if (!smc->ess.sba_reply_pend)
drivers/net/fddi/skfp/ess.c
669
smc->ess.sba_reply_pend = mb ;
drivers/net/fddi/skfp/ess.c
672
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/ess.c
680
smt_send_frame(smc,mb,FC_SMT_INFO,0) ;
drivers/net/fddi/skfp/ess.c
684
void ess_para_change(struct s_smc *smc)
drivers/net/fddi/skfp/ess.c
686
(void)process_bw_alloc(smc,(long)smc->mib.a[PATH0].fddiPATHSbaPayload,
drivers/net/fddi/skfp/ess.c
687
(long)smc->mib.a[PATH0].fddiPATHSbaOverhead) ;
drivers/net/fddi/skfp/ess.c
690
static void ess_config_fifo(struct s_smc *smc)
drivers/net/fddi/skfp/ess.c
695
if (smc->mib.a[PATH0].fddiPATHSbaPayload) {
drivers/net/fddi/skfp/ess.c
696
if (smc->hw.fp.fifo.fifo_config_mode & SYNC_TRAFFIC_ON &&
drivers/net/fddi/skfp/ess.c
697
(smc->hw.fp.fifo.fifo_config_mode&SEND_ASYNC_AS_SYNC) ==
drivers/net/fddi/skfp/ess.c
698
smc->mib.fddiESSSynchTxMode) {
drivers/net/fddi/skfp/ess.c
703
if (!(smc->hw.fp.fifo.fifo_config_mode & SYNC_TRAFFIC_ON)) {
drivers/net/fddi/skfp/ess.c
711
formac_reinit_tx(smc) ;
drivers/net/fddi/skfp/ess.c
78
static void ess_send_response(struct s_smc *smc, struct smt_header *sm,
drivers/net/fddi/skfp/ess.c
80
static void ess_config_fifo(struct s_smc *smc);
drivers/net/fddi/skfp/ess.c
81
static void ess_send_alc_req(struct s_smc *smc);
drivers/net/fddi/skfp/ess.c
82
static void ess_send_frame(struct s_smc *smc, SMbuf *mb);
drivers/net/fddi/skfp/ess.c
96
void ess_timer_poll(struct s_smc *smc);
drivers/net/fddi/skfp/ess.c
97
void ess_para_change(struct s_smc *smc);
drivers/net/fddi/skfp/ess.c
98
int ess_raf_received_pack(struct s_smc *smc, SMbuf *mb, struct smt_header *sm,
drivers/net/fddi/skfp/fplustm.c
1006
void sm_mac_check_beacon_claim(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1011
formac_rcv_restart(smc) ;
drivers/net/fddi/skfp/fplustm.c
1012
process_receive(smc) ;
drivers/net/fddi/skfp/fplustm.c
1019
void sm_ma_control(struct s_smc *smc, int mode)
drivers/net/fddi/skfp/fplustm.c
1024
formac_offline(smc) ;
drivers/net/fddi/skfp/fplustm.c
1027
(void)init_mac(smc,0) ;
drivers/net/fddi/skfp/fplustm.c
103
static u_long mac_get_tneg(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1030
formac_online(smc) ;
drivers/net/fddi/skfp/fplustm.c
1033
directed_beacon(smc) ;
drivers/net/fddi/skfp/fplustm.c
1043
int sm_mac_get_tx_state(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1052
static struct s_fpmc* mac_get_mc_table(struct s_smc *smc,
drivers/net/fddi/skfp/fplustm.c
1072
for (i = 0, tb = smc->hw.fp.mc.table ; i < FPMAX_MULTICAST ; i++, tb++){
drivers/net/fddi/skfp/fplustm.c
1096
void mac_clear_multicast(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1101
smc->hw.fp.os_slots_used = 0 ; /* note the SMT addresses */
drivers/net/fddi/skfp/fplustm.c
1103
for (i = 0, tb = smc->hw.fp.mc.table ; i < FPMAX_MULTICAST ; i++, tb++){
drivers/net/fddi/skfp/fplustm.c
112
void mac_update_counter(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1138
int mac_add_multicast(struct s_smc *smc, struct fddi_addr *addr, int can)
drivers/net/fddi/skfp/fplustm.c
114
smc->mib.m[MAC0].fddiMACFrame_Ct =
drivers/net/fddi/skfp/fplustm.c
1147
if (smc->hw.fp.smt_slots_used >= SMT_MAX_MULTI) {
drivers/net/fddi/skfp/fplustm.c
115
(smc->mib.m[MAC0].fddiMACFrame_Ct & 0xffff0000L)
drivers/net/fddi/skfp/fplustm.c
1152
if (smc->hw.fp.os_slots_used >= FPMAX_MULTICAST-SMT_MAX_MULTI) {
drivers/net/fddi/skfp/fplustm.c
1160
if (!(tb = mac_get_mc_table(smc,addr,&own,0,can & ~0x80)))
drivers/net/fddi/skfp/fplustm.c
1167
smc->hw.fp.smt_slots_used++ ;
drivers/net/fddi/skfp/fplustm.c
1169
smc->hw.fp.os_slots_used++ ;
drivers/net/fddi/skfp/fplustm.c
117
smc->mib.m[MAC0].fddiMACLost_Ct =
drivers/net/fddi/skfp/fplustm.c
118
(smc->mib.m[MAC0].fddiMACLost_Ct & 0xffff0000L)
drivers/net/fddi/skfp/fplustm.c
1192
void mac_update_multicast(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
120
smc->mib.m[MAC0].fddiMACError_Ct =
drivers/net/fddi/skfp/fplustm.c
1206
if (smc->hw.fp.func_addr) {
drivers/net/fddi/skfp/fplustm.c
1207
fu = (u_char *) &smc->hw.fp.func_addr ;
drivers/net/fddi/skfp/fplustm.c
121
(smc->mib.m[MAC0].fddiMACError_Ct & 0xffff0000L)
drivers/net/fddi/skfp/fplustm.c
1226
for (i = 0, tb = smc->hw.fp.mc.table; i < FPMAX_MULTICAST; i++, tb++) {
drivers/net/fddi/skfp/fplustm.c
123
smc->mib.m[MAC0].fddiMACT_Neg = mac_get_tneg(smc) ;
drivers/net/fddi/skfp/fplustm.c
1268
void mac_set_rx_mode(struct s_smc *smc, int mode)
drivers/net/fddi/skfp/fplustm.c
1272
smc->hw.fp.rx_prom |= RX_MODE_ALL_MULTI ;
drivers/net/fddi/skfp/fplustm.c
1275
smc->hw.fp.rx_prom &= ~RX_MODE_ALL_MULTI ;
drivers/net/fddi/skfp/fplustm.c
1278
smc->hw.fp.rx_prom |= RX_MODE_PROM ;
drivers/net/fddi/skfp/fplustm.c
1281
smc->hw.fp.rx_prom &= ~RX_MODE_PROM ;
drivers/net/fddi/skfp/fplustm.c
1284
smc->hw.fp.nsa_mode = FM_MDAMA ;
drivers/net/fddi/skfp/fplustm.c
1285
smc->hw.fp.rx_mode = (smc->hw.fp.rx_mode & ~FM_ADDET) |
drivers/net/fddi/skfp/fplustm.c
1286
smc->hw.fp.nsa_mode ;
drivers/net/fddi/skfp/fplustm.c
1289
smc->hw.fp.nsa_mode = FM_MRNNSAFNMA ;
drivers/net/fddi/skfp/fplustm.c
1290
smc->hw.fp.rx_mode = (smc->hw.fp.rx_mode & ~FM_ADDET) |
drivers/net/fddi/skfp/fplustm.c
1291
smc->hw.fp.nsa_mode ;
drivers/net/fddi/skfp/fplustm.c
1294
if (smc->hw.fp.rx_prom & RX_MODE_PROM) {
drivers/net/fddi/skfp/fplustm.c
1295
smc->hw.fp.rx_mode = FM_MLIMPROM ;
drivers/net/fddi/skfp/fplustm.c
1297
else if (smc->hw.fp.rx_prom & RX_MODE_ALL_MULTI) {
drivers/net/fddi/skfp/fplustm.c
1298
smc->hw.fp.rx_mode = smc->hw.fp.nsa_mode | FM_EXGPA0 ;
drivers/net/fddi/skfp/fplustm.c
130
smt_emulate_token_ct( smc, MAC0 );
drivers/net/fddi/skfp/fplustm.c
1301
smc->hw.fp.rx_mode = smc->hw.fp.nsa_mode ;
drivers/net/fddi/skfp/fplustm.c
1302
SETMASK(FM_A(FM_MDREG1),smc->hw.fp.rx_mode,FM_ADDRX) ;
drivers/net/fddi/skfp/fplustm.c
1303
mac_update_multicast(smc) ;
drivers/net/fddi/skfp/fplustm.c
1324
void rtm_irq(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1330
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS,
drivers/net/fddi/skfp/fplustm.c
1332
(u_long) FDDI_RTT, smt_get_event_word(smc));
drivers/net/fddi/skfp/fplustm.c
1337
static void rtm_init(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1343
void rtm_set_timer(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1349
(int)smc->mib.a[PATH0].fddiPATHT_Rmode);
drivers/net/fddi/skfp/fplustm.c
1350
outpd(ADDR(B2_RTM_INI),smc->mib.a[PATH0].fddiPATHT_Rmode) ;
drivers/net/fddi/skfp/fplustm.c
1353
static void smt_split_up_fifo(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
137
static void write_mdr(struct s_smc *smc, u_long val)
drivers/net/fddi/skfp/fplustm.c
1382
SMT_PANIC(smc,SMT_E0117, SMT_E0117_MSG) ;
drivers/net/fddi/skfp/fplustm.c
1387
smc->hw.fp.fifo.rx1_fifo_size = RX_FIFO_SPACE ;
drivers/net/fddi/skfp/fplustm.c
1388
smc->hw.fp.fifo.rx2_fifo_size = 0 ;
drivers/net/fddi/skfp/fplustm.c
1393
smc->hw.fp.fifo.rx1_fifo_size = RX_LARGE_FIFO ;
drivers/net/fddi/skfp/fplustm.c
1394
smc->hw.fp.fifo.rx2_fifo_size = RX_SMALL_FIFO ;
drivers/net/fddi/skfp/fplustm.c
1397
smc->hw.fp.fifo.rx1_fifo_size = RX_FIFO_SPACE *
drivers/net/fddi/skfp/fplustm.c
1399
smc->hw.fp.fifo.rx2_fifo_size = RX_FIFO_SPACE *
drivers/net/fddi/skfp/fplustm.c
1426
if (smc->mib.a[PATH0].fddiPATHSbaPayload) {
drivers/net/fddi/skfp/fplustm.c
1428
smc->hw.fp.fifo.fifo_config_mode |=
drivers/net/fddi/skfp/fplustm.c
1429
smc->mib.fddiESSSynchTxMode | SYNC_TRAFFIC_ON ;
drivers/net/fddi/skfp/fplustm.c
1433
smc->hw.fp.fifo.fifo_config_mode &=
drivers/net/fddi/skfp/fplustm.c
1440
if (smc->hw.fp.fifo.fifo_config_mode & SYNC_TRAFFIC_ON) {
drivers/net/fddi/skfp/fplustm.c
1441
if (smc->hw.fp.fifo.fifo_config_mode & SEND_ASYNC_AS_SYNC) {
drivers/net/fddi/skfp/fplustm.c
1442
smc->hw.fp.fifo.tx_s_size = TX_LARGE_FIFO ;
drivers/net/fddi/skfp/fplustm.c
1443
smc->hw.fp.fifo.tx_a0_size = TX_SMALL_FIFO ;
drivers/net/fddi/skfp/fplustm.c
1446
smc->hw.fp.fifo.tx_s_size = TX_MEDIUM_FIFO ;
drivers/net/fddi/skfp/fplustm.c
1447
smc->hw.fp.fifo.tx_a0_size = TX_MEDIUM_FIFO ;
drivers/net/fddi/skfp/fplustm.c
1451
smc->hw.fp.fifo.tx_s_size = 0 ;
drivers/net/fddi/skfp/fplustm.c
1452
smc->hw.fp.fifo.tx_a0_size = TX_FIFO_SPACE ;
drivers/net/fddi/skfp/fplustm.c
1455
smc->hw.fp.fifo.rx1_fifo_start = smc->hw.fp.fifo.rbc_ram_start +
drivers/net/fddi/skfp/fplustm.c
1457
smc->hw.fp.fifo.tx_s_start = smc->hw.fp.fifo.rx1_fifo_start +
drivers/net/fddi/skfp/fplustm.c
1458
smc->hw.fp.fifo.rx1_fifo_size ;
drivers/net/fddi/skfp/fplustm.c
1459
smc->hw.fp.fifo.tx_a0_start = smc->hw.fp.fifo.tx_s_start +
drivers/net/fddi/skfp/fplustm.c
1460
smc->hw.fp.fifo.tx_s_size ;
drivers/net/fddi/skfp/fplustm.c
1461
smc->hw.fp.fifo.rx2_fifo_start = smc->hw.fp.fifo.tx_a0_start +
drivers/net/fddi/skfp/fplustm.c
1462
smc->hw.fp.fifo.tx_a0_size ;
drivers/net/fddi/skfp/fplustm.c
1464
DB_SMT("FIFO split: mode = %x", smc->hw.fp.fifo.fifo_config_mode);
drivers/net/fddi/skfp/fplustm.c
1466
smc->hw.fp.fifo.rbc_ram_start, smc->hw.fp.fifo.rbc_ram_end);
drivers/net/fddi/skfp/fplustm.c
1468
smc->hw.fp.fifo.rx1_fifo_start, smc->hw.fp.fifo.tx_s_start);
drivers/net/fddi/skfp/fplustm.c
147
static u_long read_mdr(struct s_smc *smc, unsigned int addr)
drivers/net/fddi/skfp/fplustm.c
1470
smc->hw.fp.fifo.tx_a0_start, smc->hw.fp.fifo.rx2_fifo_start);
drivers/net/fddi/skfp/fplustm.c
1473
void formac_reinit_tx(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
1480
if (!smc->hw.fp.fifo.tx_s_size && smc->mib.a[PATH0].fddiPATHSbaPayload){
drivers/net/fddi/skfp/fplustm.c
1481
(void)init_mac(smc,0) ;
drivers/net/fddi/skfp/fplustm.c
166
static void init_ram(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
170
smc->hw.fp.fifo.rbc_ram_start = 0 ;
drivers/net/fddi/skfp/fplustm.c
171
smc->hw.fp.fifo.rbc_ram_end =
drivers/net/fddi/skfp/fplustm.c
172
smc->hw.fp.fifo.rbc_ram_start + RBC_MEM_SIZE ;
drivers/net/fddi/skfp/fplustm.c
174
MARW(smc->hw.fp.fifo.rbc_ram_start) ;
drivers/net/fddi/skfp/fplustm.c
175
for (i = smc->hw.fp.fifo.rbc_ram_start;
drivers/net/fddi/skfp/fplustm.c
176
i < (u_short) (smc->hw.fp.fifo.rbc_ram_end-1); i++)
drivers/net/fddi/skfp/fplustm.c
177
write_mdr(smc,0L) ;
drivers/net/fddi/skfp/fplustm.c
179
write_mdr(smc,0L) ;
drivers/net/fddi/skfp/fplustm.c
185
static void set_recvptr(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
190
outpw(FM_A(FM_RPR1),smc->hw.fp.fifo.rx1_fifo_start) ; /* RPR1 */
drivers/net/fddi/skfp/fplustm.c
191
outpw(FM_A(FM_SWPR1),smc->hw.fp.fifo.rx1_fifo_start) ; /* SWPR1 */
drivers/net/fddi/skfp/fplustm.c
192
outpw(FM_A(FM_WPR1),smc->hw.fp.fifo.rx1_fifo_start) ; /* WPR1 */
drivers/net/fddi/skfp/fplustm.c
193
outpw(FM_A(FM_EARV1),smc->hw.fp.fifo.tx_s_start-1) ; /* EARV1 */
drivers/net/fddi/skfp/fplustm.c
198
if (smc->hw.fp.fifo.rx2_fifo_size) {
drivers/net/fddi/skfp/fplustm.c
199
outpw(FM_A(FM_RPR2),smc->hw.fp.fifo.rx2_fifo_start) ;
drivers/net/fddi/skfp/fplustm.c
200
outpw(FM_A(FM_SWPR2),smc->hw.fp.fifo.rx2_fifo_start) ;
drivers/net/fddi/skfp/fplustm.c
201
outpw(FM_A(FM_WPR2),smc->hw.fp.fifo.rx2_fifo_start) ;
drivers/net/fddi/skfp/fplustm.c
202
outpw(FM_A(FM_EARV2),smc->hw.fp.fifo.rbc_ram_end-1) ;
drivers/net/fddi/skfp/fplustm.c
205
outpw(FM_A(FM_RPR2),smc->hw.fp.fifo.rbc_ram_end-1) ;
drivers/net/fddi/skfp/fplustm.c
206
outpw(FM_A(FM_SWPR2),smc->hw.fp.fifo.rbc_ram_end-1) ;
drivers/net/fddi/skfp/fplustm.c
207
outpw(FM_A(FM_WPR2),smc->hw.fp.fifo.rbc_ram_end-1) ;
drivers/net/fddi/skfp/fplustm.c
208
outpw(FM_A(FM_EARV2),smc->hw.fp.fifo.rbc_ram_end-1) ;
drivers/net/fddi/skfp/fplustm.c
215
static void set_txptr(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
222
outpw(FM_A(FM_RPXA0),smc->hw.fp.fifo.tx_a0_start) ; /* RPXA0 */
drivers/net/fddi/skfp/fplustm.c
223
outpw(FM_A(FM_SWPXA0),smc->hw.fp.fifo.tx_a0_start) ; /* SWPXA0 */
drivers/net/fddi/skfp/fplustm.c
224
outpw(FM_A(FM_WPXA0),smc->hw.fp.fifo.tx_a0_start) ; /* WPXA0 */
drivers/net/fddi/skfp/fplustm.c
225
outpw(FM_A(FM_EAA0),smc->hw.fp.fifo.rx2_fifo_start-1) ; /* EAA0 */
drivers/net/fddi/skfp/fplustm.c
230
if (smc->hw.fp.fifo.tx_s_size) {
drivers/net/fddi/skfp/fplustm.c
231
outpw(FM_A(FM_RPXS),smc->hw.fp.fifo.tx_s_start) ;
drivers/net/fddi/skfp/fplustm.c
232
outpw(FM_A(FM_SWPXS),smc->hw.fp.fifo.tx_s_start) ;
drivers/net/fddi/skfp/fplustm.c
233
outpw(FM_A(FM_WPXS),smc->hw.fp.fifo.tx_s_start) ;
drivers/net/fddi/skfp/fplustm.c
234
outpw(FM_A(FM_EAS),smc->hw.fp.fifo.tx_a0_start-1) ;
drivers/net/fddi/skfp/fplustm.c
237
outpw(FM_A(FM_RPXS),smc->hw.fp.fifo.tx_a0_start-1) ;
drivers/net/fddi/skfp/fplustm.c
238
outpw(FM_A(FM_SWPXS),smc->hw.fp.fifo.tx_a0_start-1) ;
drivers/net/fddi/skfp/fplustm.c
239
outpw(FM_A(FM_WPXS),smc->hw.fp.fifo.tx_a0_start-1) ;
drivers/net/fddi/skfp/fplustm.c
240
outpw(FM_A(FM_EAS),smc->hw.fp.fifo.tx_a0_start-1) ;
drivers/net/fddi/skfp/fplustm.c
247
static void init_rbc(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
254
rbc_ram_addr = smc->hw.fp.fifo.rx2_fifo_start - 1 ;
drivers/net/fddi/skfp/fplustm.c
261
set_recvptr(smc) ;
drivers/net/fddi/skfp/fplustm.c
262
set_txptr(smc) ;
drivers/net/fddi/skfp/fplustm.c
268
static void init_rx(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
275
smc->hw.fp.rx[QUEUE_R1] = queue = &smc->hw.fp.rx_q[QUEUE_R1] ;
drivers/net/fddi/skfp/fplustm.c
282
smc->hw.fp.rx[QUEUE_R2] = queue = &smc->hw.fp.rx_q[QUEUE_R2] ;
drivers/net/fddi/skfp/fplustm.c
290
void set_formac_tsync(struct s_smc *smc, long sync_bw)
drivers/net/fddi/skfp/fplustm.c
298
static void init_tx(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
305
smc->hw.fp.tx[QUEUE_S] = queue = &smc->hw.fp.tx_q[QUEUE_S] ;
drivers/net/fddi/skfp/fplustm.c
310
set_formac_tsync(smc,smc->ess.sync_bw) ;
drivers/net/fddi/skfp/fplustm.c
316
smc->hw.fp.tx[QUEUE_A0] = queue = &smc->hw.fp.tx_q[QUEUE_A0] ;
drivers/net/fddi/skfp/fplustm.c
321
llc_recover_tx(smc) ;
drivers/net/fddi/skfp/fplustm.c
324
static void mac_counter_init(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
338
ec = (u_long *)&smc->hw.fp.err_stats ;
drivers/net/fddi/skfp/fplustm.c
341
smc->mib.m[MAC0].fddiMACRingOp_Ct = 0 ;
drivers/net/fddi/skfp/fplustm.c
347
static void set_formac_addr(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
349
long t_requ = smc->mib.m[MAC0].fddiMACT_Req ;
drivers/net/fddi/skfp/fplustm.c
352
outpw(FM_A(FM_LAIL),(unsigned short)((smc->hw.fddi_home_addr.a[4]<<8) +
drivers/net/fddi/skfp/fplustm.c
353
smc->hw.fddi_home_addr.a[5])) ;
drivers/net/fddi/skfp/fplustm.c
354
outpw(FM_A(FM_LAIC),(unsigned short)((smc->hw.fddi_home_addr.a[2]<<8) +
drivers/net/fddi/skfp/fplustm.c
355
smc->hw.fddi_home_addr.a[3])) ;
drivers/net/fddi/skfp/fplustm.c
356
outpw(FM_A(FM_LAIM),(unsigned short)((smc->hw.fddi_home_addr.a[0]<<8) +
drivers/net/fddi/skfp/fplustm.c
357
smc->hw.fddi_home_addr.a[1])) ;
drivers/net/fddi/skfp/fplustm.c
361
outpw(FM_A(FM_LAGL),(unsigned short)((smc->hw.fp.group_addr.a[4]<<8) +
drivers/net/fddi/skfp/fplustm.c
362
smc->hw.fp.group_addr.a[5])) ;
drivers/net/fddi/skfp/fplustm.c
363
outpw(FM_A(FM_LAGC),(unsigned short)((smc->hw.fp.group_addr.a[2]<<8) +
drivers/net/fddi/skfp/fplustm.c
364
smc->hw.fp.group_addr.a[3])) ;
drivers/net/fddi/skfp/fplustm.c
365
outpw(FM_A(FM_LAGM),(unsigned short)((smc->hw.fp.group_addr.a[0]<<8) +
drivers/net/fddi/skfp/fplustm.c
366
smc->hw.fp.group_addr.a[1])) ;
drivers/net/fddi/skfp/fplustm.c
389
static void copy_tx_mac(struct s_smc *smc, u_long td, struct fddi_mac *mac,
drivers/net/fddi/skfp/fplustm.c
39
static void build_claim_beacon(struct s_smc *smc, u_long t_request);
drivers/net/fddi/skfp/fplustm.c
40
static int init_mac(struct s_smc *smc, int all);
drivers/net/fddi/skfp/fplustm.c
408
write_mdr(smc,le32_to_cpu(*p)) ;
drivers/net/fddi/skfp/fplustm.c
41
static void rtm_init(struct s_smc *smc);
drivers/net/fddi/skfp/fplustm.c
413
write_mdr(smc,td) ; /* write over memory data reg to buffer */
drivers/net/fddi/skfp/fplustm.c
42
static void smt_split_up_fifo(struct s_smc *smc);
drivers/net/fddi/skfp/fplustm.c
438
static void directed_beacon(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
449
memcpy((char *)a+1, (char *) &smc->mib.m[MAC0].fddiMACUpstreamNbr, ETH_ALEN);
drivers/net/fddi/skfp/fplustm.c
453
MARW(smc->hw.fp.fifo.rbc_ram_start+DBEACON_FRAME_OFF+4) ;
drivers/net/fddi/skfp/fplustm.c
454
write_mdr(smc,le32_to_cpu(a[0])) ;
drivers/net/fddi/skfp/fplustm.c
456
write_mdr(smc,le32_to_cpu(a[1])) ;
drivers/net/fddi/skfp/fplustm.c
458
outpw(FM_A(FM_SABC),smc->hw.fp.fifo.rbc_ram_start + DBEACON_FRAME_OFF) ;
drivers/net/fddi/skfp/fplustm.c
467
static void build_claim_beacon(struct s_smc *smc, u_long t_request)
drivers/net/fddi/skfp/fplustm.c
478
mac = &smc->hw.fp.mac_sfb ;
drivers/net/fddi/skfp/fplustm.c
485
copy_tx_mac(smc,td,(struct fddi_mac *)mac,
drivers/net/fddi/skfp/fplustm.c
486
smc->hw.fp.fifo.rbc_ram_start + CLAIM_FRAME_OFF,len) ;
drivers/net/fddi/skfp/fplustm.c
488
outpw(FM_A(FM_SACL),smc->hw.fp.fifo.rbc_ram_start + CLAIM_FRAME_OFF) ;
drivers/net/fddi/skfp/fplustm.c
49
#define DUMMY_READ() smc->hw.mc_dummy = (u_short) inp(ADDR(B0_RAP))
drivers/net/fddi/skfp/fplustm.c
500
copy_tx_mac(smc,td,(struct fddi_mac *)mac,
drivers/net/fddi/skfp/fplustm.c
501
smc->hw.fp.fifo.rbc_ram_start + BEACON_FRAME_OFF,len) ;
drivers/net/fddi/skfp/fplustm.c
503
outpw(FM_A(FM_SABC),smc->hw.fp.fifo.rbc_ram_start + BEACON_FRAME_OFF) ;
drivers/net/fddi/skfp/fplustm.c
518
copy_tx_mac(smc,td,(struct fddi_mac *)mac,
drivers/net/fddi/skfp/fplustm.c
519
smc->hw.fp.fifo.rbc_ram_start + DBEACON_FRAME_OFF,len) ;
drivers/net/fddi/skfp/fplustm.c
522
outpw(FM_A(FM_EACB),smc->hw.fp.fifo.rx1_fifo_start-1) ;
drivers/net/fddi/skfp/fplustm.c
528
static void formac_rcv_restart(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
531
SETMASK(FM_A(FM_MDREG1),smc->hw.fp.rx_mode,FM_ADDRX) ;
drivers/net/fddi/skfp/fplustm.c
536
void formac_tx_restart(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
54
SMT_PANIC(smc,SMT_E0130, SMT_E0130_MSG) ; \
drivers/net/fddi/skfp/fplustm.c
542
static void enable_formac(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
582
void enable_tx_irq(struct s_smc *smc, u_short queue)
drivers/net/fddi/skfp/fplustm.c
61
SMT_PANIC(smc,SMT_E0131, SMT_E0131_MSG) ; \
drivers/net/fddi/skfp/fplustm.c
617
void disable_tx_irq(struct s_smc *smc, u_short queue)
drivers/net/fddi/skfp/fplustm.c
633
static void disable_formac(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
645
static void mac_ring_up(struct s_smc *smc, int up)
drivers/net/fddi/skfp/fplustm.c
648
formac_rcv_restart(smc) ; /* enable receive function */
drivers/net/fddi/skfp/fplustm.c
649
smc->hw.mac_ring_is_up = TRUE ;
drivers/net/fddi/skfp/fplustm.c
650
llc_restart_tx(smc) ; /* TX queue */
drivers/net/fddi/skfp/fplustm.c
659
smc->hw.mac_ring_is_up = FALSE ;
drivers/net/fddi/skfp/fplustm.c
672
void mac2_irq(struct s_smc *smc, u_short code_s2u, u_short code_s2l)
drivers/net/fddi/skfp/fplustm.c
681
queue_event(smc,EVENT_RMT,RM_TX_STATE_CHANGE) ;
drivers/net/fddi/skfp/fplustm.c
684
queue_event(smc,EVENT_RMT,RM_TX_STATE_CHANGE) ;
drivers/net/fddi/skfp/fplustm.c
690
change_s2l = smc->hw.fp.s2l ^ code_s2l ;
drivers/net/fddi/skfp/fplustm.c
691
change_s2u = smc->hw.fp.s2u ^ code_s2u ;
drivers/net/fddi/skfp/fplustm.c
694
(!smc->hw.mac_ring_is_up && ((code_s2l & FM_SRNGOP)))) {
drivers/net/fddi/skfp/fplustm.c
696
mac_ring_up(smc,1) ;
drivers/net/fddi/skfp/fplustm.c
697
queue_event(smc,EVENT_RMT,RM_RING_OP) ;
drivers/net/fddi/skfp/fplustm.c
698
smc->mib.m[MAC0].fddiMACRingOp_Ct++ ;
drivers/net/fddi/skfp/fplustm.c
701
mac_ring_up(smc,0) ;
drivers/net/fddi/skfp/fplustm.c
702
queue_event(smc,EVENT_RMT,RM_RING_NON_OP) ;
drivers/net/fddi/skfp/fplustm.c
707
smc->mib.m[MAC0].fddiMACNotCopied_Ct++ ;
drivers/net/fddi/skfp/fplustm.c
711
smc->hw.mac_ct.mac_r_restart_counter++ ;
drivers/net/fddi/skfp/fplustm.c
713
smt_stat_counter(smc,1) ;
drivers/net/fddi/skfp/fplustm.c
717
queue_event(smc,EVENT_RMT,RM_OTHER_BEACON) ;
drivers/net/fddi/skfp/fplustm.c
719
queue_event(smc,EVENT_RMT,RM_MY_BEACON) ;
drivers/net/fddi/skfp/fplustm.c
728
queue_event(smc,EVENT_RMT,RM_MY_CLAIM) ;
drivers/net/fddi/skfp/fplustm.c
738
queue_event(smc,EVENT_RMT,RM_VALID_CLAIM) ;
drivers/net/fddi/skfp/fplustm.c
745
queue_event(smc,EVENT_RMT,RM_TRT_EXP) ;
drivers/net/fddi/skfp/fplustm.c
752
smc->r.dup_addr_test = DA_FAILED ;
drivers/net/fddi/skfp/fplustm.c
753
queue_event(smc,EVENT_RMT,RM_DUP_ADDR) ;
drivers/net/fddi/skfp/fplustm.c
756
smc->hw.fp.err_stats.err_bec_stat++ ;
drivers/net/fddi/skfp/fplustm.c
758
smc->hw.fp.err_stats.err_clm_stat++ ;
drivers/net/fddi/skfp/fplustm.c
76
#define MA smc->hw.fddi_canon_addr
drivers/net/fddi/skfp/fplustm.c
760
smc->mib.m[MAC0].fddiMACTvxExpired_Ct++ ;
drivers/net/fddi/skfp/fplustm.c
762
if (!(change_s2l & FM_SRNGOP) && (smc->hw.fp.s2l & FM_SRNGOP)) {
drivers/net/fddi/skfp/fplustm.c
763
mac_ring_up(smc,0) ;
drivers/net/fddi/skfp/fplustm.c
764
queue_event(smc,EVENT_RMT,RM_RING_NON_OP) ;
drivers/net/fddi/skfp/fplustm.c
766
mac_ring_up(smc,1) ;
drivers/net/fddi/skfp/fplustm.c
767
queue_event(smc,EVENT_RMT,RM_RING_OP) ;
drivers/net/fddi/skfp/fplustm.c
768
smc->mib.m[MAC0].fddiMACRingOp_Ct++ ;
drivers/net/fddi/skfp/fplustm.c
772
smc->hw.fp.err_stats.err_phinv++ ;
drivers/net/fddi/skfp/fplustm.c
774
smc->hw.fp.err_stats.err_sifg_det++ ;
drivers/net/fddi/skfp/fplustm.c
776
smc->hw.fp.err_stats.err_tkiss++ ;
drivers/net/fddi/skfp/fplustm.c
778
smc->hw.fp.err_stats.err_tkerr++ ;
drivers/net/fddi/skfp/fplustm.c
78
#define MA smc->hw.fddi_home_addr
drivers/net/fddi/skfp/fplustm.c
780
smc->mib.m[MAC0].fddiMACFrame_Ct += 0x10000L ;
drivers/net/fddi/skfp/fplustm.c
782
smc->mib.m[MAC0].fddiMACError_Ct += 0x10000L ;
drivers/net/fddi/skfp/fplustm.c
784
smc->mib.m[MAC0].fddiMACLost_Ct += 0x10000L ;
drivers/net/fddi/skfp/fplustm.c
786
SMT_PANIC(smc,SMT_E0114, SMT_E0114_MSG) ;
drivers/net/fddi/skfp/fplustm.c
790
smc->hw.fp.s2l = code_s2l ;
drivers/net/fddi/skfp/fplustm.c
791
smc->hw.fp.s2u = code_s2u ;
drivers/net/fddi/skfp/fplustm.c
798
void mac3_irq(struct s_smc *smc, u_short code_s3u, u_short code_s3l)
drivers/net/fddi/skfp/fplustm.c
804
smc->hw.mac_ct.mac_r_restart_counter++ ;
drivers/net/fddi/skfp/fplustm.c
805
smt_stat_counter(smc,1);
drivers/net/fddi/skfp/fplustm.c
810
SMT_PANIC(smc,SMT_E0115, SMT_E0115_MSG) ;
drivers/net/fddi/skfp/fplustm.c
813
SMT_PANIC(smc,SMT_E0116, SMT_E0116_MSG) ;
drivers/net/fddi/skfp/fplustm.c
821
static void formac_offline(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
831
disable_formac(smc) ;
drivers/net/fddi/skfp/fplustm.c
832
smc->hw.mac_ring_is_up = FALSE ;
drivers/net/fddi/skfp/fplustm.c
833
smc->hw.hw_state = STOPPED ;
drivers/net/fddi/skfp/fplustm.c
839
static void formac_online(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
841
enable_formac(smc) ;
drivers/net/fddi/skfp/fplustm.c
843
smc->hw.fp.rx_mode, FM_MMODE | FM_SELRA | FM_ADDRX) ;
drivers/net/fddi/skfp/fplustm.c
849
int init_fplus(struct s_smc *smc)
drivers/net/fddi/skfp/fplustm.c
851
smc->hw.fp.nsa_mode = FM_MRNNSAFNMA ;
drivers/net/fddi/skfp/fplustm.c
852
smc->hw.fp.rx_mode = FM_MDAMA ;
drivers/net/fddi/skfp/fplustm.c
853
smc->hw.fp.group_addr = fddi_broadcast ;
drivers/net/fddi/skfp/fplustm.c
854
smc->hw.fp.func_addr = 0 ;
drivers/net/fddi/skfp/fplustm.c
855
smc->hw.fp.frselreg_init = 0 ;
drivers/net/fddi/skfp/fplustm.c
857
init_driver_fplus(smc) ;
drivers/net/fddi/skfp/fplustm.c
858
if (smc->s.sas == SMT_DAS)
drivers/net/fddi/skfp/fplustm.c
859
smc->hw.fp.mdr3init |= FM_MENDAS ;
drivers/net/fddi/skfp/fplustm.c
861
smc->hw.mac_ct.mac_nobuf_counter = 0 ;
drivers/net/fddi/skfp/fplustm.c
862
smc->hw.mac_ct.mac_r_restart_counter = 0 ;
drivers/net/fddi/skfp/fplustm.c
864
smc->hw.fp.fm_st1u = (HW_PTR) ADDR(B0_ST1U) ;
drivers/net/fddi/skfp/fplustm.c
865
smc->hw.fp.fm_st1l = (HW_PTR) ADDR(B0_ST1L) ;
drivers/net/fddi/skfp/fplustm.c
866
smc->hw.fp.fm_st2u = (HW_PTR) ADDR(B0_ST2U) ;
drivers/net/fddi/skfp/fplustm.c
867
smc->hw.fp.fm_st2l = (HW_PTR) ADDR(B0_ST2L) ;
drivers/net/fddi/skfp/fplustm.c
868
smc->hw.fp.fm_st3u = (HW_PTR) ADDR(B0_ST3U) ;
drivers/net/fddi/skfp/fplustm.c
869
smc->hw.fp.fm_st3l = (HW_PTR) ADDR(B0_ST3L) ;
drivers/net/fddi/skfp/fplustm.c
871
smc->hw.fp.s2l = smc->hw.fp.s2u = 0 ;
drivers/net/fddi/skfp/fplustm.c
872
smc->hw.mac_ring_is_up = 0 ;
drivers/net/fddi/skfp/fplustm.c
874
mac_counter_init(smc) ;
drivers/net/fddi/skfp/fplustm.c
877
smc->hw.mac_pa.t_neg = (u_long)0 ;
drivers/net/fddi/skfp/fplustm.c
878
smc->hw.mac_pa.t_pri = (u_long)0 ;
drivers/net/fddi/skfp/fplustm.c
881
mac_do_pci_fix(smc) ;
drivers/net/fddi/skfp/fplustm.c
883
return init_mac(smc, 1);
drivers/net/fddi/skfp/fplustm.c
887
static int init_mac(struct s_smc *smc, int all)
drivers/net/fddi/skfp/fplustm.c
896
set_formac_addr(smc) ;
drivers/net/fddi/skfp/fplustm.c
899
outpw(FM_A(FM_MDREG2),smc->hw.fp.mdr2init) ;
drivers/net/fddi/skfp/fplustm.c
902
init_ram(smc) ;
drivers/net/fddi/skfp/fplustm.c
909
time = hwt_quick_read(smc) ;
drivers/net/fddi/skfp/fplustm.c
915
smt_split_up_fifo(smc) ;
drivers/net/fddi/skfp/fplustm.c
917
init_tx(smc) ;
drivers/net/fddi/skfp/fplustm.c
918
init_rx(smc) ;
drivers/net/fddi/skfp/fplustm.c
919
init_rbc(smc) ;
drivers/net/fddi/skfp/fplustm.c
921
build_claim_beacon(smc,smc->mib.m[MAC0].fddiMACT_Req) ;
drivers/net/fddi/skfp/fplustm.c
928
outpw(FM_A(FM_MDREG1),MDR1INIT | FM_SELRA | smc->hw.fp.rx_mode) ;
drivers/net/fddi/skfp/fplustm.c
929
outpw(FM_A(FM_MDREG2),smc->hw.fp.mdr2init) ;
drivers/net/fddi/skfp/fplustm.c
930
outpw(FM_A(FM_MDREG3),smc->hw.fp.mdr3init) ;
drivers/net/fddi/skfp/fplustm.c
931
outpw(FM_A(FM_FRSELREG),smc->hw.fp.frselreg_init) ;
drivers/net/fddi/skfp/fplustm.c
939
t_max = (u_short)(smc->mib.m[MAC0].fddiMACT_Max/32) ;
drivers/net/fddi/skfp/fplustm.c
947
if (smc->mib.m[MAC0].fddiMACTvxValue < (u_long) (- US2BCLK(52))) {
drivers/net/fddi/skfp/fplustm.c
951
(u_short)((smc->mib.m[MAC0].fddiMACTvxValue/255) & MB)) ;
drivers/net/fddi/skfp/fplustm.c
961
rtm_init(smc) ; /* RT-Monitor */
drivers/net/fddi/skfp/fplustm.c
967
hwt_wait_time(smc,time,MS2BCLK(10)) ;
drivers/net/fddi/skfp/fplustm.c
975
if (!smc->hw.hw_is_64bit) {
drivers/net/fddi/skfp/fplustm.c
980
smc->hw.hw_state = STOPPED ;
drivers/net/fddi/skfp/fplustm.c
981
mac_drv_repair_descr(smc) ;
drivers/net/fddi/skfp/fplustm.c
983
smc->hw.hw_state = STARTED ;
drivers/net/fddi/skfp/fplustm.c
992
void config_mux(struct s_smc *smc, int mux)
drivers/net/fddi/skfp/fplustm.c
994
plc_config_mux(smc,mux) ;
drivers/net/fddi/skfp/h/cmtdef.h
484
void hwt_restart(struct s_smc *smc); /* hwt.c */
drivers/net/fddi/skfp/h/cmtdef.h
485
SMbuf *smt_build_frame(struct s_smc *smc, int class, int type,
drivers/net/fddi/skfp/h/cmtdef.h
487
SMbuf *smt_get_mbuf(struct s_smc *smc); /* drvsr.c */
drivers/net/fddi/skfp/h/cmtdef.h
488
void *sm_to_para(struct s_smc *smc, struct smt_header *sm,
drivers/net/fddi/skfp/h/cmtdef.h
495
void queue_event(struct s_smc *smc, int class, int event);
drivers/net/fddi/skfp/h/cmtdef.h
496
void ecm(struct s_smc *smc, int event);
drivers/net/fddi/skfp/h/cmtdef.h
497
void ecm_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
498
void rmt(struct s_smc *smc, int event);
drivers/net/fddi/skfp/h/cmtdef.h
499
void rmt_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
500
void pcm(struct s_smc *smc, const int np, int event);
drivers/net/fddi/skfp/h/cmtdef.h
501
void pcm_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
502
void cfm(struct s_smc *smc, int event);
drivers/net/fddi/skfp/h/cmtdef.h
503
void cfm_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
504
void smt_timer_start(struct s_smc *smc, struct smt_timer *timer, u_long time,
drivers/net/fddi/skfp/h/cmtdef.h
506
void smt_timer_stop(struct s_smc *smc, struct smt_timer *timer);
drivers/net/fddi/skfp/h/cmtdef.h
507
void pcm_status_state(struct s_smc *smc, int np, int *type, int *state,
drivers/net/fddi/skfp/h/cmtdef.h
509
void plc_config_mux(struct s_smc *smc, int mux);
drivers/net/fddi/skfp/h/cmtdef.h
510
void sm_lem_evaluate(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
511
void mac_update_counter(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
512
void sm_ma_control(struct s_smc *smc, int mode);
drivers/net/fddi/skfp/h/cmtdef.h
513
void sm_mac_check_beacon_claim(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
514
void config_mux(struct s_smc *smc, int mux);
drivers/net/fddi/skfp/h/cmtdef.h
515
void smt_agent_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
516
void smt_timer_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
517
void smt_received_pack(struct s_smc *smc, SMbuf *mb, int fs);
drivers/net/fddi/skfp/h/cmtdef.h
518
void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para,
drivers/net/fddi/skfp/h/cmtdef.h
521
void ev_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
522
void hwt_init(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
523
u_long hwt_read(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
524
void hwt_stop(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
525
void hwt_start(struct s_smc *smc, u_long time);
drivers/net/fddi/skfp/h/cmtdef.h
526
void smt_send_mbuf(struct s_smc *smc, SMbuf *mb, int fc);
drivers/net/fddi/skfp/h/cmtdef.h
527
void smt_free_mbuf(struct s_smc *smc, SMbuf *mb);
drivers/net/fddi/skfp/h/cmtdef.h
528
void sm_pm_bypass_req(struct s_smc *smc, int mode);
drivers/net/fddi/skfp/h/cmtdef.h
529
void rmt_indication(struct s_smc *smc, int i);
drivers/net/fddi/skfp/h/cmtdef.h
530
void cfm_state_change(struct s_smc *smc, int c_state);
drivers/net/fddi/skfp/h/cmtdef.h
533
void smt_panic(struct s_smc *smc, char *text);
drivers/net/fddi/skfp/h/cmtdef.h
535
#define smt_panic(smc,text)
drivers/net/fddi/skfp/h/cmtdef.h
538
void smt_stat_counter(struct s_smc *smc, int stat);
drivers/net/fddi/skfp/h/cmtdef.h
539
void smt_timer_poll(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
541
u_long smt_get_tid(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
542
void smt_timer_done(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
543
void smt_fixup_mib(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
544
void smt_reset_defaults(struct s_smc *smc, int level);
drivers/net/fddi/skfp/h/cmtdef.h
545
void smt_agent_task(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
546
int smt_check_para(struct s_smc *smc, struct smt_header *sm,
drivers/net/fddi/skfp/h/cmtdef.h
548
void driver_get_bia(struct s_smc *smc, struct fddi_addr *bia_addr);
drivers/net/fddi/skfp/h/cmtdef.h
551
void drv_reset_indication(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
554
void smt_start_watchdog(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
555
void smt_event(struct s_smc *smc, int event);
drivers/net/fddi/skfp/h/cmtdef.h
556
void timer_event(struct s_smc *smc, u_long token);
drivers/net/fddi/skfp/h/cmtdef.h
557
void ev_dispatcher(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
558
void pcm_get_state(struct s_smc *smc, struct smt_state *state);
drivers/net/fddi/skfp/h/cmtdef.h
559
void ecm_state_change(struct s_smc *smc, int e_state);
drivers/net/fddi/skfp/h/cmtdef.h
560
int sm_pm_bypass_present(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
561
void pcm_state_change(struct s_smc *smc, int plc, int p_state);
drivers/net/fddi/skfp/h/cmtdef.h
562
void rmt_state_change(struct s_smc *smc, int r_state);
drivers/net/fddi/skfp/h/cmtdef.h
563
int sm_pm_get_ls(struct s_smc *smc, int phy);
drivers/net/fddi/skfp/h/cmtdef.h
564
int pcm_get_s_port(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
565
int pcm_rooted_station(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
566
int cfm_get_mac_input(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
567
int cfm_get_mac_output(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
568
int cem_build_path(struct s_smc *smc, char *to, int path_index);
drivers/net/fddi/skfp/h/cmtdef.h
569
int sm_mac_get_tx_state(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
570
char *get_pcmstate(struct s_smc *smc, int np);
drivers/net/fddi/skfp/h/cmtdef.h
571
int smt_action(struct s_smc *smc, int class, int code, int index);
drivers/net/fddi/skfp/h/cmtdef.h
572
u_short smt_online(struct s_smc *smc, int on);
drivers/net/fddi/skfp/h/cmtdef.h
573
void smt_force_irq(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
574
void smt_pmf_received_pack(struct s_smc *smc, SMbuf *mb, int local);
drivers/net/fddi/skfp/h/cmtdef.h
575
void smt_send_frame(struct s_smc *smc, SMbuf *mb, int fc, int local);
drivers/net/fddi/skfp/h/cmtdef.h
576
void smt_set_timestamp(struct s_smc *smc, u_char *p);
drivers/net/fddi/skfp/h/cmtdef.h
577
void mac_set_rx_mode(struct s_smc *smc, int mode);
drivers/net/fddi/skfp/h/cmtdef.h
578
int mac_add_multicast(struct s_smc *smc, struct fddi_addr *addr, int can);
drivers/net/fddi/skfp/h/cmtdef.h
579
void mac_update_multicast(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
580
void mac_clear_multicast(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
581
void set_formac_tsync(struct s_smc *smc, long sync_bw);
drivers/net/fddi/skfp/h/cmtdef.h
582
void formac_reinit_tx(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
583
void formac_tx_restart(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
584
void process_receive(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
585
void init_driver_fplus(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
586
void rtm_irq(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
587
void rtm_set_timer(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
588
void ring_status_indication(struct s_smc *smc, u_long status);
drivers/net/fddi/skfp/h/cmtdef.h
589
void llc_recover_tx(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
590
void llc_restart_tx(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
591
void plc_clear_irq(struct s_smc *smc, int p);
drivers/net/fddi/skfp/h/cmtdef.h
592
void plc_irq(struct s_smc *smc, int np, unsigned int cmd);
drivers/net/fddi/skfp/h/cmtdef.h
593
int smt_set_mac_opvalues(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
596
void mac_do_pci_fix(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
597
void mac_drv_clear_tx_queue(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
598
void mac_drv_repair_descr(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
599
u_long hwt_quick_read(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
600
void hwt_wait_time(struct s_smc *smc, u_long start, long duration);
drivers/net/fddi/skfp/h/cmtdef.h
604
int pnmi_init(struct s_smc* smc);
drivers/net/fddi/skfp/h/cmtdef.h
605
int pnmi_process_ndis_id(struct s_smc *smc, u_long ndis_oid, void *buf, int len,
drivers/net/fddi/skfp/h/cmtdef.h
61
#define DB_TEST (smc->debug)
drivers/net/fddi/skfp/h/cmtdef.h
619
int ess_raf_received_pack(struct s_smc *smc, SMbuf *mb, struct smt_header *sm,
drivers/net/fddi/skfp/h/cmtdef.h
621
void ess_timer_poll(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
622
void ess_para_change(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
626
void smt_init_evc(struct s_smc *smc);
drivers/net/fddi/skfp/h/cmtdef.h
627
void smt_srf_event(struct s_smc *smc, int code, int index, int cond);
drivers/net/fddi/skfp/h/cmtdef.h
629
#define smt_init_evc(smc)
drivers/net/fddi/skfp/h/cmtdef.h
630
#define smt_srf_event(smc,code,index,cond)
drivers/net/fddi/skfp/h/cmtdef.h
634
void smt_emulate_token_ct(struct s_smc *smc, int mac_index);
drivers/net/fddi/skfp/h/cmtdef.h
638
void dump_smt(struct s_smc *smc, struct smt_header *sm, char *text);
drivers/net/fddi/skfp/h/cmtdef.h
640
#define dump_smt(smc,sm,text)
drivers/net/fddi/skfp/h/cmtdef.h
651
#define PNMI_INIT(smc) /* Nothing */
drivers/net/fddi/skfp/h/cmtdef.h
658
#define SMT_PANIC(smc,nr,msg) smt_panic (smc, msg)
drivers/net/fddi/skfp/h/cmtdef.h
662
#define SMT_ERR_LOG(smc,nr,msg) SMT_PANIC (smc, nr, msg)
drivers/net/fddi/skfp/h/hwmtm.h
162
#define DB_P smc->debug
drivers/net/fddi/skfp/h/hwmtm.h
242
#define HWM_GET_TX_USED(smc,queue) (int) (smc)->hw.fp.tx_q[queue].tx_used
drivers/net/fddi/skfp/h/hwmtm.h
260
#define HWM_GET_CURR_TXD(smc,queue) (struct s_smt_fp_txd volatile *)\
drivers/net/fddi/skfp/h/hwmtm.h
261
(smc)->hw.fp.tx_q[queue].tx_curr_put
drivers/net/fddi/skfp/h/hwmtm.h
311
#define HWM_GET_RX_USED(smc) ((int)(smc)->hw.fp.rx_q[QUEUE_R1].rx_used)
drivers/net/fddi/skfp/h/hwmtm.h
325
#define HWM_GET_RX_FREE(smc) ((int)(smc)->hw.fp.rx_q[QUEUE_R1].rx_free-1)
drivers/net/fddi/skfp/h/hwmtm.h
340
#define HWM_GET_CURR_RXD(smc) (struct s_smt_fp_rxd volatile *)\
drivers/net/fddi/skfp/h/hwmtm.h
341
(smc)->hw.fp.rx_q[QUEUE_R1].rx_curr_put
drivers/net/fddi/skfp/h/hwmtm.h
358
#define HWM_RX_CHECK(smc,low_water) {\
drivers/net/fddi/skfp/h/hwmtm.h
359
if ((low_water) >= (smc)->hw.fp.rx_q[QUEUE_R1].rx_used) {\
drivers/net/fddi/skfp/h/hwmtm.h
360
mac_drv_fill_rxd(smc) ;\
drivers/net/fddi/skfp/h/hwmtm.h
364
#define HWM_RX_CHECK(smc,low_water) mac_drv_fill_rxd(smc)
drivers/net/fddi/skfp/h/osdef1st.h
48
#define SMT_PANIC(smc, nr, msg) printk(KERN_INFO "SMT PANIC: code: %d, msg: %s\n",nr,msg)
drivers/net/fddi/skfp/h/skfbi.h
697
#define ADDR(a) (char far *) smc->hw.iop+(a)
drivers/net/fddi/skfp/h/skfbi.h
698
#define ADDRS(smc,a) (char far *) (smc)->hw.iop+(a)
drivers/net/fddi/skfp/h/skfbi.h
700
#define ADDR(a) (((a)>>7) ? (outp(smc->hw.iop+B0_RAP,(a)>>7), \
drivers/net/fddi/skfp/h/skfbi.h
701
(smc->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0)))) : \
drivers/net/fddi/skfp/h/skfbi.h
702
(smc->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0))))
drivers/net/fddi/skfp/h/skfbi.h
703
#define ADDRS(smc,a) (((a)>>7) ? (outp((smc)->hw.iop+B0_RAP,(a)>>7), \
drivers/net/fddi/skfp/h/skfbi.h
704
((smc)->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0)))) : \
drivers/net/fddi/skfp/h/skfbi.h
705
((smc)->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0))))
drivers/net/fddi/skfp/h/skfbi.h
755
#define CLI_FBI(smc) outpd(ADDRS((smc),B0_IMSK),0)
drivers/net/fddi/skfp/h/skfbi.h
759
#define STI_FBI() outpd(ADDR(B0_IMSK),smc->hw.is_imask)
drivers/net/fddi/skfp/h/skfbi.h
761
#define STI_FBI(smc) outpd(ADDRS((smc),B0_IMSK),(smc)->hw.is_imask)
drivers/net/fddi/skfp/h/skfbi.h
765
#define STI_FBI_SMP(smc,iop) outpd((iop)+B0_IMSK,(smc)->hw.is_imask)
drivers/net/fddi/skfp/h/skfbiinc.h
84
#define DRV_PCM_STATE_CHANGE(smc,plc,p_state) /* nothing */
drivers/net/fddi/skfp/h/skfbiinc.h
89
#define DRV_RMT_INDICATION(smc,i) /* nothing */
drivers/net/fddi/skfp/h/smc.h
300
#define RS_SET(smc,bit) \
drivers/net/fddi/skfp/h/smc.h
301
ring_status_indication(smc,smc->srf.ring_status |= bit)
drivers/net/fddi/skfp/h/smc.h
302
#define RS_CLEAR(smc,bit) \
drivers/net/fddi/skfp/h/smc.h
303
ring_status_indication(smc,smc->srf.ring_status &= ~bit)
drivers/net/fddi/skfp/h/smc.h
310
#define AIX_EVENT(smc,opt0,opt1,opt2,opt3) /* nothing */
drivers/net/fddi/skfp/h/smc.h
468
void all_selection_criteria(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
469
void card_stop(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
470
void init_board(struct s_smc *smc, u_char *mac_addr);
drivers/net/fddi/skfp/h/smc.h
471
int init_fplus(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
472
void init_plc(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
473
int init_smt(struct s_smc *smc, const u_char *mac_addr);
drivers/net/fddi/skfp/h/smc.h
474
void mac1_irq(struct s_smc *smc, u_short stu, u_short stl);
drivers/net/fddi/skfp/h/smc.h
475
void mac2_irq(struct s_smc *smc, u_short code_s2u, u_short code_s2l);
drivers/net/fddi/skfp/h/smc.h
476
void mac3_irq(struct s_smc *smc, u_short code_s3u, u_short code_s3l);
drivers/net/fddi/skfp/h/smc.h
477
int pcm_status_twisted(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
478
void plc1_irq(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
479
void plc2_irq(struct s_smc *smc);
drivers/net/fddi/skfp/h/smc.h
480
void read_address(struct s_smc *smc, u_char *mac_addr);
drivers/net/fddi/skfp/h/smc.h
481
void timer_irq(struct s_smc *smc);
drivers/net/fddi/skfp/h/targetos.h
51
#define ADDR(a) (smc->hw.iop+(a))
drivers/net/fddi/skfp/h/targetos.h
53
#define ADDR(a) (((a)>>7) ? (outp(smc->hw.iop+B0_RAP,(a)>>7), (smc->hw.iop+( ((a)&0x7F) | ((a)>>7 ? 0x80:0)) )) : (smc->hw.iop+(((a)&0x7F)|((a)>>7 ? 0x80:0))))
drivers/net/fddi/skfp/hwmtm.c
1000
smc->os.hwm.pass_DB = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
1003
smc->os.hwm.pass_DB = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
1006
smc->os.hwm.pass_SMT = smc->os.hwm.pass_NSA = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
1007
smc->os.hwm.pass_DB = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
1008
smc->os.hwm.pass_llc_promisc = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
1009
mac_set_rx_mode(smc,RX_DISABLE_NSA) ;
drivers/net/fddi/skfp/hwmtm.c
101
extern void mac_drv_clear_rxd(struct s_smc *smc,
drivers/net/fddi/skfp/hwmtm.c
1012
smc->os.hwm.pass_llc_promisc = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
1015
smc->os.hwm.pass_llc_promisc = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
1024
mac_set_rx_mode(smc,mode) ;
drivers/net/fddi/skfp/hwmtm.c
1033
void process_receive(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
1051
smc->os.hwm.detec_count = 0 ;
drivers/net/fddi/skfp/hwmtm.c
1052
queue = smc->hw.fp.rx[QUEUE_R1] ;
drivers/net/fddi/skfp/hwmtm.c
1060
if (smc->os.hwm.leave_isr) {
drivers/net/fddi/skfp/hwmtm.c
1066
smc->os.hwm.rx_break = 1 ;
drivers/net/fddi/skfp/hwmtm.c
1069
smc->os.hwm.rx_break = 0 ;
drivers/net/fddi/skfp/hwmtm.c
1072
if (smc->os.hwm.rx_break) {
drivers/net/fddi/skfp/hwmtm.c
1092
SMT_PANIC(smc,HWM_E0009,HWM_E0009_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
1096
smc->hw.hw_state = STOPPED ;
drivers/net/fddi/skfp/hwmtm.c
1097
mac_drv_clear_rx_queue(smc) ;
drivers/net/fddi/skfp/hwmtm.c
1098
smc->hw.hw_state = STARTED ;
drivers/net/fddi/skfp/hwmtm.c
1099
mac_drv_fill_rxd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
1100
smc->os.hwm.detec_count = 0 ;
drivers/net/fddi/skfp/hwmtm.c
113
extern u_long mac_drv_virt2phys(struct s_smc *smc, void *virt);
drivers/net/fddi/skfp/hwmtm.c
114
extern u_long dma_master(struct s_smc *smc, void *virt, int len, int flag);
drivers/net/fddi/skfp/hwmtm.c
1160
dma_complete(smc,(union s_fp_descr volatile *)r,DMA_WR);
drivers/net/fddi/skfp/hwmtm.c
1162
smc->hw.fp.err_stats.err_valid++ ;
drivers/net/fddi/skfp/hwmtm.c
1163
smc->mib.m[MAC0].fddiMACCopied_Ct++ ;
drivers/net/fddi/skfp/hwmtm.c
1175
smc->hw.fp.err_stats.err_abort++ ;
drivers/net/fddi/skfp/hwmtm.c
1182
smc->hw.fp.err_stats.err_e_indicator++ ;
drivers/net/fddi/skfp/hwmtm.c
1186
smc->hw.fp.err_stats.err_crc++ ;
drivers/net/fddi/skfp/hwmtm.c
119
extern void dma_complete(struct s_smc *smc, volatile union s_fp_descr *descr,
drivers/net/fddi/skfp/hwmtm.c
1190
smc->hw.fp.err_stats.err_imp_frame++ ;
drivers/net/fddi/skfp/hwmtm.c
1196
smc->hw.fp.err_stats.err_too_long++ ;
drivers/net/fddi/skfp/hwmtm.c
1210
smc->os.hwm.rx_len_error++ ;
drivers/net/fddi/skfp/hwmtm.c
123
extern int mac_drv_rx_init(struct s_smc *smc, int len, int fc, char *look_ahead,
drivers/net/fddi/skfp/hwmtm.c
1237
if (!smc->os.hwm.pass_llc_promisc) {
drivers/net/fddi/skfp/hwmtm.c
1255
mac_drv_rx_complete(smc,rxd,frag_count,len) ;
drivers/net/fddi/skfp/hwmtm.c
1258
if (!(mb = smt_get_mbuf(smc))) {
drivers/net/fddi/skfp/hwmtm.c
1259
smc->hw.fp.err_stats.err_no_buf++ ;
drivers/net/fddi/skfp/hwmtm.c
1288
smc->hw.fp.err_stats.err_smt_frame++ ;
drivers/net/fddi/skfp/hwmtm.c
1291
if (smc->os.hwm.pass_SMT) {
drivers/net/fddi/skfp/hwmtm.c
1293
mac_drv_rx_complete(smc, rxd,
drivers/net/fddi/skfp/hwmtm.c
1298
mac_drv_requeue_rxd(smc,rxd,frag_count);
drivers/net/fddi/skfp/hwmtm.c
1301
smt_received_pack(smc,mb,(int)(rfsw>>25)) ;
drivers/net/fddi/skfp/hwmtm.c
1304
smc->hw.fp.err_stats.err_smt_frame++ ;
drivers/net/fddi/skfp/hwmtm.c
131
void process_receive(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
1310
if (smc->os.hwm.pass_NSA ||
drivers/net/fddi/skfp/hwmtm.c
1311
(smc->os.hwm.pass_SMT &&
drivers/net/fddi/skfp/hwmtm.c
1314
mac_drv_rx_complete(smc, rxd,
drivers/net/fddi/skfp/hwmtm.c
1319
mac_drv_requeue_rxd(smc,rxd,frag_count);
drivers/net/fddi/skfp/hwmtm.c
132
void fddi_isr(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
1322
smt_received_pack(smc,mb,(int)(rfsw>>25)) ;
drivers/net/fddi/skfp/hwmtm.c
1325
if (smc->os.hwm.pass_DB) {
drivers/net/fddi/skfp/hwmtm.c
1327
mac_drv_rx_complete(smc, rxd,
drivers/net/fddi/skfp/hwmtm.c
133
void smt_free_mbuf(struct s_smc *smc, SMbuf *mb);
drivers/net/fddi/skfp/hwmtm.c
1332
mac_drv_requeue_rxd(smc,rxd,frag_count);
drivers/net/fddi/skfp/hwmtm.c
1334
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
134
void init_driver_fplus(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
1341
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
1343
mac_drv_requeue_rxd(smc,rxd,frag_count) ;
drivers/net/fddi/skfp/hwmtm.c
1345
smc->hw.fp.err_stats.err_mac_frame++ ;
drivers/net/fddi/skfp/hwmtm.c
1347
smc->hw.fp.err_stats.err_imp_frame++ ;
drivers/net/fddi/skfp/hwmtm.c
135
void mac_drv_rx_mode(struct s_smc *smc, int mode);
drivers/net/fddi/skfp/hwmtm.c
136
void init_fddi_driver(struct s_smc *smc, u_char *mac_addr);
drivers/net/fddi/skfp/hwmtm.c
1360
mac_drv_requeue_rxd(smc,rxd,frag_count) ;
drivers/net/fddi/skfp/hwmtm.c
1367
mac_drv_all_receives_complete(smc) ;
drivers/net/fddi/skfp/hwmtm.c
137
void mac_drv_clear_tx_queue(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
1372
static void smt_to_llc(struct s_smc *smc, SMbuf *mb)
drivers/net/fddi/skfp/hwmtm.c
1377
smc->os.hwm.r.len = mb->sm_len ;
drivers/net/fddi/skfp/hwmtm.c
1378
smc->os.hwm.r.mb_pos = smtod(mb,char *) ;
drivers/net/fddi/skfp/hwmtm.c
1379
fc = *smc->os.hwm.r.mb_pos ;
drivers/net/fddi/skfp/hwmtm.c
138
void mac_drv_clear_rx_queue(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
1380
(void)mac_drv_rx_init(smc,(int)mb->sm_len,(int)fc,
drivers/net/fddi/skfp/hwmtm.c
1381
smc->os.hwm.r.mb_pos,(int)mb->sm_len) ;
drivers/net/fddi/skfp/hwmtm.c
1382
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
139
void hwm_tx_frag(struct s_smc *smc, char far *virt, u_long phys, int len,
drivers/net/fddi/skfp/hwmtm.c
1407
void hwm_rx_frag(struct s_smc *smc, char far *virt, u_long phys, int len,
drivers/net/fddi/skfp/hwmtm.c
141
void hwm_rx_frag(struct s_smc *smc, char far *virt, u_long phys, int len,
drivers/net/fddi/skfp/hwmtm.c
1415
r = smc->hw.fp.rx_q[QUEUE_R1].rx_curr_put ;
drivers/net/fddi/skfp/hwmtm.c
1426
smc->hw.fp.rx_q[QUEUE_R1].rx_free-- ;
drivers/net/fddi/skfp/hwmtm.c
1427
smc->hw.fp.rx_q[QUEUE_R1].rx_used++ ;
drivers/net/fddi/skfp/hwmtm.c
1428
smc->hw.fp.rx_q[QUEUE_R1].rx_curr_put = r->rxd_next ;
drivers/net/fddi/skfp/hwmtm.c
144
int mac_drv_init(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
145
int hwm_tx_init(struct s_smc *smc, u_char fc, int frag_count, int frame_len,
drivers/net/fddi/skfp/hwmtm.c
1455
void mac_drv_clear_rx_queue(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
1463
if (smc->hw.hw_state != STOPPED) {
drivers/net/fddi/skfp/hwmtm.c
1465
SMT_PANIC(smc,HWM_E0012,HWM_E0012_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
1469
queue = smc->hw.fp.rx[QUEUE_R1] ;
drivers/net/fddi/skfp/hwmtm.c
1498
dma_complete(smc,(union s_fp_descr volatile *)r,DMA_WR);
drivers/net/fddi/skfp/hwmtm.c
150
SMbuf* smt_get_mbuf(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
1503
mac_drv_clear_rxd(smc,queue->rx_curr_get,frag_count) ;
drivers/net/fddi/skfp/hwmtm.c
153
void mac_drv_debug_lev(struct s_smc *smc, int flag, int lev);
drivers/net/fddi/skfp/hwmtm.c
1542
int hwm_tx_init(struct s_smc *smc, u_char fc, int frag_count, int frame_len,
drivers/net/fddi/skfp/hwmtm.c
1546
smc->os.hwm.tx_p = smc->hw.fp.tx[frame_status & QUEUE_A0] ;
drivers/net/fddi/skfp/hwmtm.c
1547
smc->os.hwm.tx_descr = TX_DESCRIPTOR | (((u_long)(frame_len-1)&3)<<27) ;
drivers/net/fddi/skfp/hwmtm.c
1548
smc->os.hwm.tx_len = frame_len ;
drivers/net/fddi/skfp/hwmtm.c
1566
SMT_PANIC(smc,HWM_E0010,HWM_E0010_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
1569
if (!smc->hw.mac_ring_is_up) {
drivers/net/fddi/skfp/hwmtm.c
1574
if (frag_count > smc->os.hwm.tx_p->tx_free) {
drivers/net/fddi/skfp/hwmtm.c
1576
mac_drv_clear_txd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
1577
if (frag_count > smc->os.hwm.tx_p->tx_free) {
drivers/net/fddi/skfp/hwmtm.c
1589
NDD_TRACE("THiE",frame_status,smc->os.hwm.tx_p->tx_free,0) ;
drivers/net/fddi/skfp/hwmtm.c
1620
void hwm_tx_frag(struct s_smc *smc, char far *virt, u_long phys, int len,
drivers/net/fddi/skfp/hwmtm.c
1627
queue = smc->os.hwm.tx_p ;
drivers/net/fddi/skfp/hwmtm.c
1642
t->txd_txdscr = cpu_to_le32(smc->os.hwm.tx_descr) ;
drivers/net/fddi/skfp/hwmtm.c
1665
smc->mib.m[MAC0].fddiMACTransmit_Ct++ ;
drivers/net/fddi/skfp/hwmtm.c
1671
if(!(smc->os.hwm.tx_mb = smt_get_mbuf(smc))) {
drivers/net/fddi/skfp/hwmtm.c
1672
smc->hw.fp.err_stats.err_no_buf++ ;
drivers/net/fddi/skfp/hwmtm.c
1676
smc->os.hwm.tx_data =
drivers/net/fddi/skfp/hwmtm.c
1677
smtod(smc->os.hwm.tx_mb,char *) - 1 ;
drivers/net/fddi/skfp/hwmtm.c
1680
hwm_cpy_txd2mb(t,smc->os.hwm.tx_data,
drivers/net/fddi/skfp/hwmtm.c
1681
smc->os.hwm.tx_len) ;
drivers/net/fddi/skfp/hwmtm.c
1686
if (smc->os.hwm.tx_mb) {
drivers/net/fddi/skfp/hwmtm.c
1689
memcpy(smc->os.hwm.tx_data,virt,len) ;
drivers/net/fddi/skfp/hwmtm.c
1690
smc->os.hwm.tx_data += len ;
drivers/net/fddi/skfp/hwmtm.c
170
#define MA smc->hw.fddi_canon_addr.a
drivers/net/fddi/skfp/hwmtm.c
1702
hwm_cpy_txd2mb(t,smc->os.hwm.tx_data,
drivers/net/fddi/skfp/hwmtm.c
1703
smc->os.hwm.tx_len) ;
drivers/net/fddi/skfp/hwmtm.c
1706
smc->os.hwm.tx_data =
drivers/net/fddi/skfp/hwmtm.c
1707
smtod(smc->os.hwm.tx_mb,char *) - 1 ;
drivers/net/fddi/skfp/hwmtm.c
1708
*(char *)smc->os.hwm.tx_mb->sm_data =
drivers/net/fddi/skfp/hwmtm.c
1709
*smc->os.hwm.tx_data ;
drivers/net/fddi/skfp/hwmtm.c
1710
smc->os.hwm.tx_data++ ;
drivers/net/fddi/skfp/hwmtm.c
1711
smc->os.hwm.tx_mb->sm_len =
drivers/net/fddi/skfp/hwmtm.c
1712
smc->os.hwm.tx_len - 1 ;
drivers/net/fddi/skfp/hwmtm.c
1714
smt_received_pack(smc,smc->os.hwm.tx_mb,
drivers/net/fddi/skfp/hwmtm.c
1726
static void queue_llc_rx(struct s_smc *smc, SMbuf *mb)
drivers/net/fddi/skfp/hwmtm.c
1729
smc->os.hwm.queued_rx_frames++ ;
drivers/net/fddi/skfp/hwmtm.c
173
#define MA smc->hw.fddi_home_addr.a
drivers/net/fddi/skfp/hwmtm.c
1731
if (smc->os.hwm.llc_rx_pipe == NULL) {
drivers/net/fddi/skfp/hwmtm.c
1732
smc->os.hwm.llc_rx_pipe = mb ;
drivers/net/fddi/skfp/hwmtm.c
1735
smc->os.hwm.llc_rx_tail->sm_next = mb ;
drivers/net/fddi/skfp/hwmtm.c
1737
smc->os.hwm.llc_rx_tail = mb ;
drivers/net/fddi/skfp/hwmtm.c
1742
if (!smc->os.hwm.isr_flag) {
drivers/net/fddi/skfp/hwmtm.c
1743
smt_force_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
1750
static SMbuf *get_llc_rx(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
1754
if ((mb = smc->os.hwm.llc_rx_pipe)) {
drivers/net/fddi/skfp/hwmtm.c
1755
smc->os.hwm.queued_rx_frames-- ;
drivers/net/fddi/skfp/hwmtm.c
1756
smc->os.hwm.llc_rx_pipe = mb->sm_next ;
drivers/net/fddi/skfp/hwmtm.c
1766
static void queue_txd_mb(struct s_smc *smc, SMbuf *mb)
drivers/net/fddi/skfp/hwmtm.c
1769
smc->os.hwm.queued_txd_mb++ ;
drivers/net/fddi/skfp/hwmtm.c
1771
if (smc->os.hwm.txd_tx_pipe == NULL) {
drivers/net/fddi/skfp/hwmtm.c
1772
smc->os.hwm.txd_tx_pipe = mb ;
drivers/net/fddi/skfp/hwmtm.c
1775
smc->os.hwm.txd_tx_tail->sm_next = mb ;
drivers/net/fddi/skfp/hwmtm.c
1777
smc->os.hwm.txd_tx_tail = mb ;
drivers/net/fddi/skfp/hwmtm.c
1783
static SMbuf *get_txd_mb(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
1787
if ((mb = smc->os.hwm.txd_tx_pipe)) {
drivers/net/fddi/skfp/hwmtm.c
1788
smc->os.hwm.queued_txd_mb-- ;
drivers/net/fddi/skfp/hwmtm.c
1789
smc->os.hwm.txd_tx_pipe = mb->sm_next ;
drivers/net/fddi/skfp/hwmtm.c
1798
void smt_send_mbuf(struct s_smc *smc, SMbuf *mb, int fc)
drivers/net/fddi/skfp/hwmtm.c
1844
queue = smc->hw.fp.tx[QUEUE_A0] ;
drivers/net/fddi/skfp/hwmtm.c
1850
if ((smc->os.hwm.pass_NSA &&(fc == FC_SMT_NSA)) ||
drivers/net/fddi/skfp/hwmtm.c
1851
(smc->os.hwm.pass_SMT &&(fc == FC_SMT_INFO)))
drivers/net/fddi/skfp/hwmtm.c
1855
if (!smc->hw.mac_ring_is_up || frag_count > queue->tx_free) {
drivers/net/fddi/skfp/hwmtm.c
1862
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
1883
phys = dma_master(smc, (void far *)virt[i],
drivers/net/fddi/skfp/hwmtm.c
1902
smc->mib.m[MAC0].fddiMACTransmit_Ct++ ;
drivers/net/fddi/skfp/hwmtm.c
1903
queue_txd_mb(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
1908
queue_llc_rx(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
1915
mac_drv_clear_txd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
1933
static void mac_drv_clear_txd(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
1946
queue = smc->hw.fp.tx[i] ;
drivers/net/fddi/skfp/hwmtm.c
1969
dma_complete(smc,
drivers/net/fddi/skfp/hwmtm.c
1978
mb = get_txd_mb(smc) ;
drivers/net/fddi/skfp/hwmtm.c
1979
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
1984
mac_drv_tx_complete(smc,t2) ;
drivers/net/fddi/skfp/hwmtm.c
1988
mac_drv_tx_complete(smc,queue->tx_curr_get) ;
drivers/net/fddi/skfp/hwmtm.c
2023
void mac_drv_clear_tx_queue(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
2030
if (smc->hw.hw_state != STOPPED) {
drivers/net/fddi/skfp/hwmtm.c
2032
SMT_PANIC(smc,HWM_E0011,HWM_E0011_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
2037
queue = smc->hw.fp.tx[i] ;
drivers/net/fddi/skfp/hwmtm.c
2058
mac_drv_clear_txd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
2061
queue = smc->hw.fp.tx[i] ;
drivers/net/fddi/skfp/hwmtm.c
2115
void mac_drv_debug_lev(struct s_smc *smc, int flag, int lev)
drivers/net/fddi/skfp/hwmtm.c
251
int mac_drv_init(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
254
SMT_PANIC(smc,HWM_E0001,HWM_E0001_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
257
SMT_PANIC(smc,HWM_E0002,HWM_E0002_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
263
if (!(smc->os.hwm.descr_p = (union s_fp_descr volatile *)
drivers/net/fddi/skfp/hwmtm.c
264
mac_drv_get_desc_mem(smc,(u_int)
drivers/net/fddi/skfp/hwmtm.c
273
smc->os.hwm.mbuf_pool.mb_start=(SMbuf *)(&smc->os.hwm.mbuf_pool.mb[0]) ;
drivers/net/fddi/skfp/hwmtm.c
276
if (!(smc->os.hwm.mbuf_pool.mb_start = (SMbuf *) mac_drv_get_space(smc,
drivers/net/fddi/skfp/hwmtm.c
282
if (!(mb_start = (SMbuf *) mac_drv_get_space(smc,
drivers/net/fddi/skfp/hwmtm.c
301
void init_driver_fplus(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
303
smc->hw.fp.mdr2init = FM_LSB | FM_BMMODE | FM_ENNPRQ | FM_ENHSRQ | 3 ;
drivers/net/fddi/skfp/hwmtm.c
306
smc->hw.fp.mdr2init |= FM_CHKPAR | FM_PARITY ;
drivers/net/fddi/skfp/hwmtm.c
308
smc->hw.fp.mdr3init = FM_MENRQAUNLCK | FM_MENRS ;
drivers/net/fddi/skfp/hwmtm.c
312
smc->hw.fp.frselreg_init = FM_ENXMTADSWAP | FM_ENRCVADSWAP ;
drivers/net/fddi/skfp/hwmtm.c
316
static u_long init_descr_ring(struct s_smc *smc,
drivers/net/fddi/skfp/hwmtm.c
331
phys = mac_drv_virt2phys(smc,(void *)d1) ;
drivers/net/fddi/skfp/hwmtm.c
337
phys = mac_drv_virt2phys(smc,(void *)start) ;
drivers/net/fddi/skfp/hwmtm.c
347
static void init_txd_ring(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
356
ds = (struct s_smt_fp_txd volatile *) ((char *)smc->os.hwm.descr_p +
drivers/net/fddi/skfp/hwmtm.c
358
queue = smc->hw.fp.tx[QUEUE_A0] ;
drivers/net/fddi/skfp/hwmtm.c
360
(void)init_descr_ring(smc,(union s_fp_descr volatile *)ds,
drivers/net/fddi/skfp/hwmtm.c
372
queue = smc->hw.fp.tx[QUEUE_S] ;
drivers/net/fddi/skfp/hwmtm.c
374
(void)init_descr_ring(smc,(union s_fp_descr volatile *)ds,
drivers/net/fddi/skfp/hwmtm.c
384
static void init_rxd_ring(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
393
ds = (struct s_smt_fp_rxd volatile *) smc->os.hwm.descr_p ;
drivers/net/fddi/skfp/hwmtm.c
394
queue = smc->hw.fp.rx[QUEUE_R1] ;
drivers/net/fddi/skfp/hwmtm.c
396
(void)init_descr_ring(smc,(union s_fp_descr volatile *)ds,
drivers/net/fddi/skfp/hwmtm.c
414
void init_fddi_driver(struct s_smc *smc, u_char *mac_addr)
drivers/net/fddi/skfp/hwmtm.c
419
init_board(smc,mac_addr) ;
drivers/net/fddi/skfp/hwmtm.c
420
(void)init_fplus(smc) ;
drivers/net/fddi/skfp/hwmtm.c
426
mb = smc->os.hwm.mbuf_pool.mb_start ;
drivers/net/fddi/skfp/hwmtm.c
427
smc->os.hwm.mbuf_pool.mb_free = (SMbuf *)NULL ;
drivers/net/fddi/skfp/hwmtm.c
430
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
439
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
449
smc->os.hwm.llc_rx_pipe = smc->os.hwm.llc_rx_tail = (SMbuf *)NULL ;
drivers/net/fddi/skfp/hwmtm.c
450
smc->os.hwm.txd_tx_pipe = smc->os.hwm.txd_tx_tail = NULL ;
drivers/net/fddi/skfp/hwmtm.c
451
smc->os.hwm.pass_SMT = smc->os.hwm.pass_NSA = smc->os.hwm.pass_DB = 0 ;
drivers/net/fddi/skfp/hwmtm.c
452
smc->os.hwm.pass_llc_promisc = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
453
smc->os.hwm.queued_rx_frames = smc->os.hwm.queued_txd_mb = 0 ;
drivers/net/fddi/skfp/hwmtm.c
454
smc->os.hwm.detec_count = 0 ;
drivers/net/fddi/skfp/hwmtm.c
455
smc->os.hwm.rx_break = 0 ;
drivers/net/fddi/skfp/hwmtm.c
456
smc->os.hwm.rx_len_error = 0 ;
drivers/net/fddi/skfp/hwmtm.c
457
smc->os.hwm.isr_flag = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
462
i = 16 - ((long)smc->os.hwm.descr_p & 0xf) ;
drivers/net/fddi/skfp/hwmtm.c
465
smc->os.hwm.descr_p = (union s_fp_descr volatile *)
drivers/net/fddi/skfp/hwmtm.c
466
((char *)smc->os.hwm.descr_p+i) ;
drivers/net/fddi/skfp/hwmtm.c
468
DB_GEN(3, "pt to descr area = %p", smc->os.hwm.descr_p);
drivers/net/fddi/skfp/hwmtm.c
470
init_txd_ring(smc) ;
drivers/net/fddi/skfp/hwmtm.c
471
init_rxd_ring(smc) ;
drivers/net/fddi/skfp/hwmtm.c
472
mac_drv_fill_rxd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
474
init_plc(smc) ;
drivers/net/fddi/skfp/hwmtm.c
478
SMbuf *smt_get_mbuf(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
483
mb = smc->os.hwm.mbuf_pool.mb_free ;
drivers/net/fddi/skfp/hwmtm.c
489
smc->os.hwm.mbuf_pool.mb_free = mb->sm_next ;
drivers/net/fddi/skfp/hwmtm.c
500
void smt_free_mbuf(struct s_smc *smc, SMbuf *mb)
drivers/net/fddi/skfp/hwmtm.c
514
mb->sm_next = smc->os.hwm.mbuf_pool.mb_free ;
drivers/net/fddi/skfp/hwmtm.c
515
smc->os.hwm.mbuf_pool.mb_free = mb ;
drivers/net/fddi/skfp/hwmtm.c
523
SMT_PANIC(smc,HWM_E0003,HWM_E0003_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
546
void mac_drv_repair_descr(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
550
if (smc->hw.hw_state != STOPPED) {
drivers/net/fddi/skfp/hwmtm.c
552
SMT_PANIC(smc,HWM_E0013,HWM_E0013_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
559
phys = repair_txd_ring(smc,smc->hw.fp.tx[QUEUE_A0]) ;
drivers/net/fddi/skfp/hwmtm.c
561
if (smc->hw.fp.tx_q[QUEUE_A0].tx_used) {
drivers/net/fddi/skfp/hwmtm.c
564
phys = repair_txd_ring(smc,smc->hw.fp.tx[QUEUE_S]) ;
drivers/net/fddi/skfp/hwmtm.c
566
if (smc->hw.fp.tx_q[QUEUE_S].tx_used) {
drivers/net/fddi/skfp/hwmtm.c
573
phys = repair_rxd_ring(smc,smc->hw.fp.rx[QUEUE_R1]) ;
drivers/net/fddi/skfp/hwmtm.c
578
static u_long repair_txd_ring(struct s_smc *smc, struct s_smt_tx_queue *queue)
drivers/net/fddi/skfp/hwmtm.c
586
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/hwmtm.c
630
static u_long repair_rxd_ring(struct s_smc *smc, struct s_smt_rx_queue *queue)
drivers/net/fddi/skfp/hwmtm.c
638
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/hwmtm.c
70
static void queue_llc_rx(struct s_smc *smc, SMbuf *mb);
drivers/net/fddi/skfp/hwmtm.c
701
void fddi_isr(struct s_smc *smc)
drivers/net/fddi/skfp/hwmtm.c
71
static void smt_to_llc(struct s_smc *smc, SMbuf *mb);
drivers/net/fddi/skfp/hwmtm.c
712
if (smc->os.hwm.rx_break) {
drivers/net/fddi/skfp/hwmtm.c
713
mac_drv_fill_rxd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
714
if (smc->hw.fp.rx_q[QUEUE_R1].rx_used > 0) {
drivers/net/fddi/skfp/hwmtm.c
715
smc->os.hwm.rx_break = 0 ;
drivers/net/fddi/skfp/hwmtm.c
716
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
719
smc->os.hwm.detec_count = 0 ;
drivers/net/fddi/skfp/hwmtm.c
72
static void init_txd_ring(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
720
smt_force_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
724
smc->os.hwm.isr_flag = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
728
if (smc->os.hwm.leave_isr) {
drivers/net/fddi/skfp/hwmtm.c
729
smc->os.hwm.leave_isr = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
73
static void init_rxd_ring(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
730
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
74
static void queue_txd_mb(struct s_smc *smc, SMbuf *mb);
drivers/net/fddi/skfp/hwmtm.c
741
plc1_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
744
plc2_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
75
static u_long init_descr_ring(struct s_smc *smc, union s_fp_descr volatile *start,
drivers/net/fddi/skfp/hwmtm.c
750
mac1_irq(smc,stu,stl) ;
drivers/net/fddi/skfp/hwmtm.c
757
mac2_irq(smc,stu,stl) ;
drivers/net/fddi/skfp/hwmtm.c
763
mac3_irq(smc,stu,stl) ;
drivers/net/fddi/skfp/hwmtm.c
766
timer_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
77
static u_long repair_txd_ring(struct s_smc *smc, struct s_smt_tx_queue *queue);
drivers/net/fddi/skfp/hwmtm.c
773
if (++smc->os.hwm.detec_count > 4) {
drivers/net/fddi/skfp/hwmtm.c
777
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
78
static u_long repair_rxd_ring(struct s_smc *smc, struct s_smt_rx_queue *queue);
drivers/net/fddi/skfp/hwmtm.c
781
rtm_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
786
SMT_PANIC(smc,HWM_E0004,HWM_E0004_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
79
static SMbuf* get_llc_rx(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
791
SMT_PANIC(smc,HWM_E0005,HWM_E0005_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
796
SMT_PANIC(smc,HWM_E0006,HWM_E0006_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
80
static SMbuf* get_txd_mb(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
801
SMT_PANIC(smc,HWM_E0007,HWM_E0007_MSG) ;
drivers/net/fddi/skfp/hwmtm.c
81
static void mac_drv_clear_txd(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
816
mac_drv_clear_txd(smc) ;
drivers/net/fddi/skfp/hwmtm.c
817
llc_restart_tx(smc) ;
drivers/net/fddi/skfp/hwmtm.c
828
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
830
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
831
if (smc->os.hwm.leave_isr) {
drivers/net/fddi/skfp/hwmtm.c
835
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
841
while ((mb = get_llc_rx(smc))) {
drivers/net/fddi/skfp/hwmtm.c
842
smt_to_llc(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
848
while (!offDepth && (mb = get_llc_rx(smc))) {
drivers/net/fddi/skfp/hwmtm.c
849
smt_to_llc(smc,mb) ;
drivers/net/fddi/skfp/hwmtm.c
852
if (!offDepth && smc->os.hwm.rx_break) {
drivers/net/fddi/skfp/hwmtm.c
853
process_receive(smc) ;
drivers/net/fddi/skfp/hwmtm.c
856
if (smc->q.ev_get != smc->q.ev_put) {
drivers/net/fddi/skfp/hwmtm.c
858
ev_dispatcher(smc) ;
drivers/net/fddi/skfp/hwmtm.c
867
if (smc->os.hwm.leave_isr) {
drivers/net/fddi/skfp/hwmtm.c
876
if (smc->os.hwm.leave_isr && force_irq) {
drivers/net/fddi/skfp/hwmtm.c
877
smt_force_irq(smc) ;
drivers/net/fddi/skfp/hwmtm.c
880
smc->os.hwm.isr_flag = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
90
extern void* mac_drv_get_space(struct s_smc *smc, unsigned int size);
drivers/net/fddi/skfp/hwmtm.c
91
extern void* mac_drv_get_desc_mem(struct s_smc *smc, unsigned int size);
drivers/net/fddi/skfp/hwmtm.c
92
extern void mac_drv_fill_rxd(struct s_smc *smc);
drivers/net/fddi/skfp/hwmtm.c
93
extern void mac_drv_tx_complete(struct s_smc *smc,
drivers/net/fddi/skfp/hwmtm.c
95
extern void mac_drv_rx_complete(struct s_smc *smc,
drivers/net/fddi/skfp/hwmtm.c
98
extern void mac_drv_requeue_rxd(struct s_smc *smc,
drivers/net/fddi/skfp/hwmtm.c
984
void mac_drv_rx_mode(struct s_smc *smc, int mode)
drivers/net/fddi/skfp/hwmtm.c
988
smc->os.hwm.pass_SMT = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
991
smc->os.hwm.pass_SMT = FALSE ;
drivers/net/fddi/skfp/hwmtm.c
994
smc->os.hwm.pass_NSA = TRUE ;
drivers/net/fddi/skfp/hwmtm.c
997
smc->os.hwm.pass_NSA = FALSE ;
drivers/net/fddi/skfp/hwt.c
115
void hwt_init(struct s_smc *smc)
drivers/net/fddi/skfp/hwt.c
117
smc->hw.t_start = 0 ;
drivers/net/fddi/skfp/hwt.c
118
smc->hw.t_stop = 0 ;
drivers/net/fddi/skfp/hwt.c
119
smc->hw.timer_activ = FALSE ;
drivers/net/fddi/skfp/hwt.c
121
hwt_restart(smc) ;
drivers/net/fddi/skfp/hwt.c
138
void hwt_restart(struct s_smc *smc)
drivers/net/fddi/skfp/hwt.c
140
hwt_stop(smc) ;
drivers/net/fddi/skfp/hwt.c
156
u_long hwt_read(struct s_smc *smc)
drivers/net/fddi/skfp/hwt.c
161
if (smc->hw.timer_activ) {
drivers/net/fddi/skfp/hwt.c
162
hwt_stop(smc) ;
drivers/net/fddi/skfp/hwt.c
167
if ((tr > smc->hw.t_start) || (is & IS_TIMINT)) {
drivers/net/fddi/skfp/hwt.c
168
hwt_restart(smc) ;
drivers/net/fddi/skfp/hwt.c
169
smc->hw.t_stop = smc->hw.t_start ;
drivers/net/fddi/skfp/hwt.c
172
smc->hw.t_stop = smc->hw.t_start - tr ;
drivers/net/fddi/skfp/hwt.c
174
return smc->hw.t_stop;
drivers/net/fddi/skfp/hwt.c
191
u_long hwt_quick_read(struct s_smc *smc)
drivers/net/fddi/skfp/hwt.c
219
void hwt_wait_time(struct s_smc *smc, u_long start, long int duration)
drivers/net/fddi/skfp/hwt.c
228
if (smc->hw.timer_activ == FALSE ||
drivers/net/fddi/skfp/hwt.c
229
hwt_quick_read(smc) == hwt_quick_read(smc)) {
drivers/net/fddi/skfp/hwt.c
236
diff = (long)(start - hwt_quick_read(smc)) ;
drivers/net/fddi/skfp/hwt.c
247
if (hwt_quick_read(smc) >= start) {
drivers/net/fddi/skfp/hwt.c
253
if (hwt_quick_read(smc) < start) {
drivers/net/fddi/skfp/hwt.c
55
void hwt_start(struct s_smc *smc, u_long time)
drivers/net/fddi/skfp/hwt.c
62
smc->hw.t_start = time ;
drivers/net/fddi/skfp/hwt.c
63
smc->hw.t_stop = 0L ;
drivers/net/fddi/skfp/hwt.c
76
smc->hw.timer_activ = TRUE ;
drivers/net/fddi/skfp/hwt.c
93
void hwt_stop(struct s_smc *smc)
drivers/net/fddi/skfp/hwt.c
98
smc->hw.timer_activ = FALSE ;
drivers/net/fddi/skfp/pcmplc.c
1000
queue_event(smc,EVENT_CFM,CF_JOIN+np) ;
drivers/net/fddi/skfp/pcmplc.c
1001
plc_go_state(smc,np,PL_PCM_STOP) ;
drivers/net/fddi/skfp/pcmplc.c
1004
sm_ph_linestate(smc,np,(int) MIB2LS(mib->fddiPORTMaint_LS)) ;
drivers/net/fddi/skfp/pcmplc.c
1018
SMT_PANIC(smc,SMT_E0118, SMT_E0118_MSG) ;
drivers/net/fddi/skfp/pcmplc.c
1026
static void sm_ph_linestate(struct s_smc *smc, int phy, int ls)
drivers/net/fddi/skfp/pcmplc.c
1030
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
1066
static void lem_evaluate(struct s_smc *smc, struct s_phy *phy)
drivers/net/fddi/skfp/pcmplc.c
1132
smt_ler_alarm_check(smc,phy,cond) ;
drivers/net/fddi/skfp/pcmplc.c
1135
smt_srf_event(smc,SMT_COND_PORT_LER,
drivers/net/fddi/skfp/pcmplc.c
1155
smt_port_off_event(smc,phy->np);
drivers/net/fddi/skfp/pcmplc.c
1157
queue_event(smc,(int)(EVENT_PCM+phy->np),PC_START) ;
drivers/net/fddi/skfp/pcmplc.c
1165
void sm_lem_evaluate(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
1170
lem_evaluate(smc,&smc->y[np]) ;
drivers/net/fddi/skfp/pcmplc.c
1173
static void lem_check_lct(struct s_smc *smc, struct s_phy *phy)
drivers/net/fddi/skfp/pcmplc.c
1188
if (lem->lem_errors >= smc->s.lct_short)
drivers/net/fddi/skfp/pcmplc.c
1192
if (lem->lem_errors >= smc->s.lct_medium)
drivers/net/fddi/skfp/pcmplc.c
1196
if (lem->lem_errors >= smc->s.lct_long)
drivers/net/fddi/skfp/pcmplc.c
1200
if (lem->lem_errors >= smc->s.lct_extended)
drivers/net/fddi/skfp/pcmplc.c
1217
static void sm_ph_lem_start(struct s_smc *smc, int np, int threshold)
drivers/net/fddi/skfp/pcmplc.c
1219
struct lem_counter *lem = &smc->y[np].lem ;
drivers/net/fddi/skfp/pcmplc.c
1235
static void sm_ph_lem_stop(struct s_smc *smc, int np)
drivers/net/fddi/skfp/pcmplc.c
1237
struct lem_counter *lem = &smc->y[np].lem ;
drivers/net/fddi/skfp/pcmplc.c
1252
static void pc_rcode_actions(struct s_smc *smc, int bit, struct s_phy *phy)
drivers/net/fddi/skfp/pcmplc.c
1282
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/pcmplc.c
1293
all_selection_criteria (smc);
drivers/net/fddi/skfp/pcmplc.c
1301
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/pcmplc.c
1331
phy->t_next[7] = smc->s.pcm_lc_short ;
drivers/net/fddi/skfp/pcmplc.c
1335
phy->t_next[7] = smc->s.pcm_lc_medium ;
drivers/net/fddi/skfp/pcmplc.c
1339
phy->t_next[7] = smc->s.pcm_lc_long ;
drivers/net/fddi/skfp/pcmplc.c
1343
phy->t_next[7] = smc->s.pcm_lc_extended ;
drivers/net/fddi/skfp/pcmplc.c
1346
if (phy->t_next[7] > smc->s.pcm_lc_medium) {
drivers/net/fddi/skfp/pcmplc.c
1347
start_pcm_timer0(smc,phy->t_next[7],PC_TIMEOUT_LCT,phy);
drivers/net/fddi/skfp/pcmplc.c
1350
phy->t_next[9] = smc->s.pcm_t_next_9 ;
drivers/net/fddi/skfp/pcmplc.c
1363
queue_event(smc,(int)(EVENT_PCM+phy->np),PC_START) ;
drivers/net/fddi/skfp/pcmplc.c
1389
static void pc_tcode_actions(struct s_smc *smc, const int bit, struct s_phy *phy)
drivers/net/fddi/skfp/pcmplc.c
1419
policy = smc->mib.fddiSMTConnectionPolicy ;
drivers/net/fddi/skfp/pcmplc.c
1466
smt_srf_event(smc,SMT_EVENT_PORT_CONNECTION,
drivers/net/fddi/skfp/pcmplc.c
1509
lem_check_lct(smc,phy) ;
drivers/net/fddi/skfp/pcmplc.c
1523
((smc->s.sas == SMT_DAS) && (phy->wc_flag))) {
drivers/net/fddi/skfp/pcmplc.c
1524
queue_event(smc,EVENT_PCM+np,PC_START) ;
drivers/net/fddi/skfp/pcmplc.c
1528
switch (smc->s.sas) {
drivers/net/fddi/skfp/pcmplc.c
1535
(smc->y[PB].mib->fddiPORTConnectState !=
drivers/net/fddi/skfp/pcmplc.c
1567
int pcm_status_twisted(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
1570
if (smc->s.sas != SMT_DAS)
drivers/net/fddi/skfp/pcmplc.c
1572
if (smc->y[PA].twisted && (smc->y[PA].mib->fddiPORTPCMState == PC8_ACTIVE))
drivers/net/fddi/skfp/pcmplc.c
1574
if (smc->y[PB].twisted && (smc->y[PB].mib->fddiPORTPCMState == PC8_ACTIVE))
drivers/net/fddi/skfp/pcmplc.c
1586
void pcm_status_state(struct s_smc *smc, int np, int *type, int *state,
drivers/net/fddi/skfp/pcmplc.c
1589
struct s_phy *phy = &smc->y[np] ;
drivers/net/fddi/skfp/pcmplc.c
1610
int pcm_rooted_station(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
1615
if (smc->y[n].mib->fddiPORTPCMState == PC8_ACTIVE &&
drivers/net/fddi/skfp/pcmplc.c
1616
smc->y[n].mib->fddiPORTNeighborType == TM)
drivers/net/fddi/skfp/pcmplc.c
1625
void plc_irq(struct s_smc *smc, int np, unsigned int cmd)
drivers/net/fddi/skfp/pcmplc.c
1628
struct s_phy *phy = &smc->y[np] ;
drivers/net/fddi/skfp/pcmplc.c
1636
if (np >= smc->s.numphys) {
drivers/net/fddi/skfp/pcmplc.c
1684
queue_event(smc,EVENT_ECM,EC_DISCONNECT) ;
drivers/net/fddi/skfp/pcmplc.c
1689
SMT_ERR_LOG(smc,SMT_E0136, SMT_E0136_MSG) ;
drivers/net/fddi/skfp/pcmplc.c
1694
drv_reset_indication(smc) ;
drivers/net/fddi/skfp/pcmplc.c
1764
DB_PCMN(1, "PLC %d: MDcF = %x", np, smc->e.DisconnectFlag);
drivers/net/fddi/skfp/pcmplc.c
1765
if (smc->e.DisconnectFlag == FALSE) {
drivers/net/fddi/skfp/pcmplc.c
1767
queue_event(smc,EVENT_PCM+np,PC_START) ;
drivers/net/fddi/skfp/pcmplc.c
1779
queue_event(smc,EVENT_PCM+np,PC_SIGNAL) ;
drivers/net/fddi/skfp/pcmplc.c
1787
queue_event(smc,EVENT_PCM+np,PC_JOIN) ;
drivers/net/fddi/skfp/pcmplc.c
1793
np, smc->mib.fddiSMTECMState);
drivers/net/fddi/skfp/pcmplc.c
1795
smc->e.trace_prop |= ENTITY_BIT(ENTITY_PHY(np)) ;
drivers/net/fddi/skfp/pcmplc.c
1796
queue_event(smc,EVENT_ECM,EC_TRACE_PROP) ;
drivers/net/fddi/skfp/pcmplc.c
1805
if (smc->e.path_test == PT_PASSED) {
drivers/net/fddi/skfp/pcmplc.c
1807
get_pcmstate(smc, np),
drivers/net/fddi/skfp/pcmplc.c
1810
smc->e.path_test = PT_PENDING ;
drivers/net/fddi/skfp/pcmplc.c
1811
queue_event(smc,EVENT_ECM,EC_PATH_TEST) ;
drivers/net/fddi/skfp/pcmplc.c
1820
queue_event(smc, EVENT_PCM + np, PC_START);
drivers/net/fddi/skfp/pcmplc.c
1846
void pcm_get_state(struct s_smc *smc, struct smt_state *state)
drivers/net/fddi/skfp/pcmplc.c
1856
for (i = 0, phy = smc->y, pcs = state->pcm_state ; i < NUMPHYS ;
drivers/net/fddi/skfp/pcmplc.c
1866
pcs->pcm_ls_rx = LS2MIB(sm_pm_get_ls(smc,i)) ;
drivers/net/fddi/skfp/pcmplc.c
1880
int get_pcm_state(struct s_smc *smc, int np)
drivers/net/fddi/skfp/pcmplc.c
1884
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
1902
char *get_linestate(struct s_smc *smc, int np)
drivers/net/fddi/skfp/pcmplc.c
1906
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
191
static void pcm_fsm(struct s_smc *smc, struct s_phy *phy, int cmd);
drivers/net/fddi/skfp/pcmplc.c
192
static void pc_rcode_actions(struct s_smc *smc, int bit, struct s_phy *phy);
drivers/net/fddi/skfp/pcmplc.c
1924
char *get_pcmstate(struct s_smc *smc, int np)
drivers/net/fddi/skfp/pcmplc.c
1928
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
193
static void pc_tcode_actions(struct s_smc *smc, const int bit, struct s_phy *phy);
drivers/net/fddi/skfp/pcmplc.c
1946
void list_phy(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
195
static void plc_init(struct s_smc *smc, int p);
drivers/net/fddi/skfp/pcmplc.c
1952
plc = &smc->y[np].plc ;
drivers/net/fddi/skfp/pcmplc.c
1957
plc->parity_err,plc->b_tpc,get_linestate(smc,np)) ;
drivers/net/fddi/skfp/pcmplc.c
196
static void sm_ph_lem_start(struct s_smc *smc, int np, int threshold);
drivers/net/fddi/skfp/pcmplc.c
1961
plc->phyinv,plc->b_qls,get_pcmstate(smc,np)) ;
drivers/net/fddi/skfp/pcmplc.c
1968
printf("\tLEM_err : %ld\n",smc->y[np].lem.lem_errors) ;
drivers/net/fddi/skfp/pcmplc.c
197
static void sm_ph_lem_stop(struct s_smc *smc, int np);
drivers/net/fddi/skfp/pcmplc.c
1974
void pcm_lem_dump(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
198
static void sm_ph_linestate(struct s_smc *smc, int phy, int ls);
drivers/net/fddi/skfp/pcmplc.c
1984
for (i = 0,phy = smc->y ; i < NUMPHYS ; i++,phy++) {
drivers/net/fddi/skfp/pcmplc.c
1985
if (!plc_is_installed(smc,i))
drivers/net/fddi/skfp/pcmplc.c
1989
entostring(smc,ENTITY_PHY(i)),
drivers/net/fddi/skfp/pcmplc.c
199
static void real_init_plc(struct s_smc *smc);
drivers/net/fddi/skfp/pcmplc.c
205
static void start_pcm_timer0(struct s_smc *smc, u_long value, int event,
drivers/net/fddi/skfp/pcmplc.c
209
smt_timer_start(smc,&phy->pcm_timer0,value,
drivers/net/fddi/skfp/pcmplc.c
216
static void stop_pcm_timer0(struct s_smc *smc, struct s_phy *phy)
drivers/net/fddi/skfp/pcmplc.c
219
smt_timer_stop(smc,&phy->pcm_timer0) ;
drivers/net/fddi/skfp/pcmplc.c
226
void pcm_init(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
233
for (np = 0,phy = smc->y ; np < NUMPHYS ; np++,phy++) {
drivers/net/fddi/skfp/pcmplc.c
238
switch (smc->s.sas) {
drivers/net/fddi/skfp/pcmplc.c
256
smc->y[PA].mib->fddiPORTPCMState = PC0_OFF ;
drivers/net/fddi/skfp/pcmplc.c
258
smc->y[PB].mib->fddiPORTPCMState = PC0_OFF ;
drivers/net/fddi/skfp/pcmplc.c
387
real_init_plc(smc) ;
drivers/net/fddi/skfp/pcmplc.c
390
void init_plc(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
392
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
403
static void real_init_plc(struct s_smc *smc)
drivers/net/fddi/skfp/pcmplc.c
408
plc_init(smc,p) ;
drivers/net/fddi/skfp/pcmplc.c
411
static void plc_init(struct s_smc *smc, int p)
drivers/net/fddi/skfp/pcmplc.c
431
if (smc->y[p].pmd_scramble) {
drivers/net/fddi/skfp/pcmplc.c
454
plc_clear_irq(smc,p) ;
drivers/net/fddi/skfp/pcmplc.c
465
if ((smc->s.sas == SMT_SAS) && (p == PS)) {
drivers/net/fddi/skfp/pcmplc.c
474
static void plc_go_state(struct s_smc *smc, int p, int state)
drivers/net/fddi/skfp/pcmplc.c
479
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
490
int sm_pm_get_ls(struct s_smc *smc, int phy)
drivers/net/fddi/skfp/pcmplc.c
495
if (!plc_is_installed(smc,phy))
drivers/net/fddi/skfp/pcmplc.c
51
struct s_smc * smc, int type, int index
drivers/net/fddi/skfp/pcmplc.c
523
static int plc_send_bits(struct s_smc *smc, struct s_phy *phy, int len)
drivers/net/fddi/skfp/pcmplc.c
529
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pcmplc.c
547
if (smc->debug.d_plc & 0x80)
drivers/net/fddi/skfp/pcmplc.c
560
void plc_config_mux(struct s_smc *smc, int mux)
drivers/net/fddi/skfp/pcmplc.c
562
if (smc->s.sas != SMT_DAS)
drivers/net/fddi/skfp/pcmplc.c
58
struct s_smc *smc ,
drivers/net/fddi/skfp/pcmplc.c
584
void pcm(struct s_smc *smc, const int np, int event)
drivers/net/fddi/skfp/pcmplc.c
595
if ((np != PS) && (smc->s.sas == SMT_SAS))
drivers/net/fddi/skfp/pcmplc.c
598
phy = &smc->y[np] ;
drivers/net/fddi/skfp/pcmplc.c
608
pcm_fsm(smc,phy,event) ;
drivers/net/fddi/skfp/pcmplc.c
628
smt_srf_event(smc,SMT_EVENT_PORT_PATH_CHANGE,
drivers/net/fddi/skfp/pcmplc.c
641
snmp_fddi_trap (smc, 1, (int) mib->fddiPORTIndex );
drivers/net/fddi/skfp/pcmplc.c
644
snmp_fddi_trap (smc, 2, (int) mib->fddiPORTIndex );
drivers/net/fddi/skfp/pcmplc.c
648
snmp_fddi_trap (smc, 3, (int) mib->fddiPORTIndex );
drivers/net/fddi/skfp/pcmplc.c
651
snmp_fddi_trap (smc, 4, (int) mib->fddiPORTIndex );
drivers/net/fddi/skfp/pcmplc.c
656
pcm_state_change(smc,np,state) ;
drivers/net/fddi/skfp/pcmplc.c
662
static void pcm_fsm(struct s_smc *smc, struct s_phy *phy, int cmd)
drivers/net/fddi/skfp/pcmplc.c
683
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/pcmplc.c
685
smt_get_port_event_word(smc));
drivers/net/fddi/skfp/pcmplc.c
696
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/pcmplc.c
698
smt_get_port_event_word(smc));
drivers/net/fddi/skfp/pcmplc.c
702
stop_pcm_timer0(smc,phy) ;
drivers/net/fddi/skfp/pcmplc.c
710
stop_pcm_timer0(smc,phy) ;
drivers/net/fddi/skfp/pcmplc.c
714
sm_ph_lem_stop(smc,np) ; /* disable LEM */
drivers/net/fddi/skfp/pcmplc.c
717
queue_event(smc,EVENT_CFM,CF_JOIN+np) ;
drivers/net/fddi/skfp/pcmplc.c
718
plc_go_state(smc,np,PL_PCM_STOP) ;
drivers/net/fddi/skfp/pcmplc.c
731
stop_pcm_timer0(smc,phy) ;
drivers/net/fddi/skfp/pcmplc.c
733
plc_go_state(smc,np,0) ;
drivers/net/fddi/skfp/pcmplc.c
736
sm_ph_lem_stop(smc,np) ; /* disable LEM */
drivers/net/fddi/skfp/pcmplc.c
742
plc_go_state(smc,np,PL_PCM_STOP) ;
drivers/net/fddi/skfp/pcmplc.c
749
plc_go_state(smc,np,PL_PCM_STOP) ;
drivers/net/fddi/skfp/pcmplc.c
755
queue_event(smc,EVENT_CFM,CF_JOIN+np) ;
drivers/net/fddi/skfp/pcmplc.c
760
pc_tcode_actions(smc,i,phy) ;
drivers/net/fddi/skfp/pcmplc.c
782
if (plc_send_bits(smc,phy,3)) {
drivers/net/fddi/skfp/pcmplc.c
802
plc_go_state(smc,np,PL_PCM_START) ;
drivers/net/fddi/skfp/pcmplc.c
819
(void) plc_send_bits(smc,phy,3) ;
drivers/net/fddi/skfp/pcmplc.c
834
plc_go_state(smc,np,PL_PCM_TRACE) ;
drivers/net/fddi/skfp/pcmplc.c
853
pc_rcode_actions(smc,i,phy) ;
drivers/net/fddi/skfp/pcmplc.c
854
pc_tcode_actions(smc,3,phy) ;
drivers/net/fddi/skfp/pcmplc.c
859
if (plc_send_bits(smc,phy,1)) {
drivers/net/fddi/skfp/pcmplc.c
864
pc_rcode_actions(smc,3,phy) ;
drivers/net/fddi/skfp/pcmplc.c
866
pc_tcode_actions(smc,i,phy) ;
drivers/net/fddi/skfp/pcmplc.c
871
if (plc_send_bits(smc,phy,3)) {
drivers/net/fddi/skfp/pcmplc.c
877
pc_rcode_actions(smc,i,phy) ;
drivers/net/fddi/skfp/pcmplc.c
882
sm_ph_lem_start(smc,np,(int)smc->s.lct_short) ; /* enable LEM */
drivers/net/fddi/skfp/pcmplc.c
890
pc_tcode_actions(smc,7,phy) ;
drivers/net/fddi/skfp/pcmplc.c
898
if (plc_send_bits(smc,phy,1)) {
drivers/net/fddi/skfp/pcmplc.c
904
pc_rcode_actions(smc,7,phy) ;
drivers/net/fddi/skfp/pcmplc.c
906
plc_go_state(smc,np,PL_PCM_STOP) ;
drivers/net/fddi/skfp/pcmplc.c
911
pc_tcode_actions(smc,i,phy) ;
drivers/net/fddi/skfp/pcmplc.c
916
if (plc_send_bits(smc,phy,2)) {
drivers/net/fddi/skfp/pcmplc.c
922
pc_rcode_actions(smc,i,phy) ;
drivers/net/fddi/skfp/pcmplc.c
933
if (smc->s.sas == SMT_DAS && np == PB &&
drivers/net/fddi/skfp/pcmplc.c
934
(smc->y[PA].pc_mode == PM_TREE ||
drivers/net/fddi/skfp/pcmplc.c
935
smc->y[PB].pc_mode == PM_TREE)) {
drivers/net/fddi/skfp/pcmplc.c
952
queue_event(smc,EVENT_CFM,CF_JOIN+np) ;
drivers/net/fddi/skfp/pcmplc.c
972
sm_ph_lem_start(smc,(int)phy->np,LCT_LEM_MAX) ;
drivers/net/fddi/skfp/pcmplc.c
993
stop_pcm_timer0(smc,phy) ;
drivers/net/fddi/skfp/pcmplc.c
997
sm_ph_lem_stop(smc,np) ; /* disable LEM */
drivers/net/fddi/skfp/pmf.c
1025
SMT_PANIC(smc,SMT_E0119, SMT_E0119_MSG) ;
drivers/net/fddi/skfp/pmf.c
1067
static int smt_set_para(struct s_smc *smc, struct smt_para *pa, int index,
drivers/net/fddi/skfp/pmf.c
1096
mib = &smc->mib ;
drivers/net/fddi/skfp/pmf.c
1106
mib_m = &smc->mib.m[mac] ;
drivers/net/fddi/skfp/pmf.c
1115
mib_a = &smc->mib.a[path] ;
drivers/net/fddi/skfp/pmf.c
1121
if (port < 0 || port >= smt_mib_phys(smc)) {
drivers/net/fddi/skfp/pmf.c
1124
mib_p = &smc->mib.p[port_to_mib(smc,port)] ;
drivers/net/fddi/skfp/pmf.c
1284
SMT_PANIC(smc,SMT_E0120, SMT_E0120_MSG) ;
drivers/net/fddi/skfp/pmf.c
1325
if (set && smc->mib.fddiESSPayload != long_val) {
drivers/net/fddi/skfp/pmf.c
1326
smc->ess.raf_act_timer_poll = TRUE ;
drivers/net/fddi/skfp/pmf.c
1327
smc->mib.fddiESSPayload = long_val ;
drivers/net/fddi/skfp/pmf.c
1333
if (set && smc->mib.fddiESSPayload &&
drivers/net/fddi/skfp/pmf.c
1334
smc->mib.fddiESSOverhead != long_val) {
drivers/net/fddi/skfp/pmf.c
1335
smc->ess.raf_act_timer_poll = TRUE ;
drivers/net/fddi/skfp/pmf.c
1336
smc->mib.fddiESSOverhead = long_val ;
drivers/net/fddi/skfp/pmf.c
1391
queue_event(smc,EVENT_RMT,RM_ENABLE_FLAG) ;
drivers/net/fddi/skfp/pmf.c
1403
ess_para_change(smc) ;
drivers/net/fddi/skfp/pmf.c
1416
ess_para_change(smc) ;
drivers/net/fddi/skfp/pmf.c
1425
rtm_set_timer(smc) ;
drivers/net/fddi/skfp/pmf.c
1447
if (set && smt_set_mac_opvalues(smc)) {
drivers/net/fddi/skfp/pmf.c
1448
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/pmf.c
1449
smc->sm.please_reconnect = 1 ;
drivers/net/fddi/skfp/pmf.c
1450
queue_event(smc,EVENT_ECM,EC_DISCONNECT) ;
drivers/net/fddi/skfp/pmf.c
1483
if (smt_action(smc,SMT_STATION_ACTION, (int) word_val, 0))
drivers/net/fddi/skfp/pmf.c
1487
if (smt_action(smc,SMT_PORT_ACTION, (int) word_val,
drivers/net/fddi/skfp/pmf.c
1488
port_to_mib(smc,port)))
drivers/net/fddi/skfp/pmf.c
1523
static int smt_mib_phys(struct s_smc *smc)
drivers/net/fddi/skfp/pmf.c
1526
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pmf.c
1530
if (smc->s.sas == SMT_SAS)
drivers/net/fddi/skfp/pmf.c
1536
static int port_to_mib(struct s_smc *smc, int p)
drivers/net/fddi/skfp/pmf.c
1539
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pmf.c
1543
if (smc->s.sas == SMT_SAS)
drivers/net/fddi/skfp/pmf.c
1552
void dump_smt(struct s_smc *smc, struct smt_header *sm, char *text)
drivers/net/fddi/skfp/pmf.c
1563
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/pmf.c
1566
if (smc->debug.d_smtf < 2)
drivers/net/fddi/skfp/pmf.c
27
static int smt_authorize(struct s_smc *smc, struct smt_header *sm);
drivers/net/fddi/skfp/pmf.c
273
void smt_pmf_received_pack(struct s_smc *smc, SMbuf *mb, int local)
drivers/net/fddi/skfp/pmf.c
28
static int smt_check_set_count(struct s_smc *smc, struct smt_header *sm);
drivers/net/fddi/skfp/pmf.c
281
dump_smt(smc,sm,"PMF Received") ;
drivers/net/fddi/skfp/pmf.c
287
smt_start_watchdog(smc) ;
drivers/net/fddi/skfp/pmf.c
291
reply = smt_build_pmf_response(smc,sm,
drivers/net/fddi/skfp/pmf.c
296
dump_smt(smc,sm,"PMF Reply") ;
drivers/net/fddi/skfp/pmf.c
298
smt_send_frame(smc,reply,FC_SMT_INFO,local) ;
drivers/net/fddi/skfp/pmf.c
30
static int smt_mib_phys(struct s_smc *smc);
drivers/net/fddi/skfp/pmf.c
303
static SMbuf *smt_build_pmf_response(struct s_smc *smc, struct smt_header *req,
drivers/net/fddi/skfp/pmf.c
31
static int smt_set_para(struct s_smc *smc, struct smt_para *pa, int index,
drivers/net/fddi/skfp/pmf.c
322
if (!(mb = smt_get_mbuf(smc)))
drivers/net/fddi/skfp/pmf.c
33
void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para,
drivers/net/fddi/skfp/pmf.c
347
if (!local && smt_authorize(smc,req))
drivers/net/fddi/skfp/pmf.c
349
else if (smt_check_set_count(smc,req))
drivers/net/fddi/skfp/pmf.c
35
static SMbuf *smt_build_pmf_response(struct s_smc *smc, struct smt_header *req,
drivers/net/fddi/skfp/pmf.c
356
smt_add_para(smc,&pcon,(u_short) SMT_P_REASON,0,0) ;
drivers/net/fddi/skfp/pmf.c
357
smt_add_para(smc,&pcon,(u_short) SMT_P1033,0,0) ;
drivers/net/fddi/skfp/pmf.c
360
smt_add_para(smc,&pcon,(u_short) SMT_P1035,0,0) ;
drivers/net/fddi/skfp/pmf.c
361
smt_add_para(smc,&pcon,(u_short) SMT_P1036,0,0) ;
drivers/net/fddi/skfp/pmf.c
37
static int port_to_mib(struct s_smc *smc, int p);
drivers/net/fddi/skfp/pmf.c
400
if (smc->s.sas == SMT_SAS)
drivers/net/fddi/skfp/pmf.c
428
smt_add_para(smc,&pcon,pt->p_num,
drivers/net/fddi/skfp/pmf.c
442
smt_add_para(smc,&pcon,pa->p_type,
drivers/net/fddi/skfp/pmf.c
446
st = smt_set_para(smc,pa,index,local,1);
drivers/net/fddi/skfp/pmf.c
450
smt_add_para(smc,&pcon,pa->p_type,
drivers/net/fddi/skfp/pmf.c
459
smt_add_para(smc,&pcon,pa->p_type,
drivers/net/fddi/skfp/pmf.c
482
smc->mib.fddiSMTSetCount.count++ ;
drivers/net/fddi/skfp/pmf.c
483
smt_set_timestamp(smc,smc->mib.fddiSMTSetCount.timestamp) ;
drivers/net/fddi/skfp/pmf.c
484
smc->mib.fddiSMTLastSetStationId = req->smt_sid ;
drivers/net/fddi/skfp/pmf.c
485
smt_add_para(smc,&set_pcon,(u_short) SMT_P1035,0,0) ;
drivers/net/fddi/skfp/pmf.c
486
smt_add_para(smc,&set_pcon,(u_short) SMT_P1036,0,0) ;
drivers/net/fddi/skfp/pmf.c
491
static int smt_authorize(struct s_smc *smc, struct smt_header *sm)
drivers/net/fddi/skfp/pmf.c
500
p = (char *) &smc->mib.fddiPRPMFStation ;
drivers/net/fddi/skfp/pmf.c
505
(char *) &smc->mib.fddiPRPMFStation,8))
drivers/net/fddi/skfp/pmf.c
511
p = (char *) smc->mib.fddiPRPMFPasswd ;
drivers/net/fddi/skfp/pmf.c
515
pa = (struct smt_para *) sm_to_para(smc,sm,SMT_P_AUTHOR) ;
drivers/net/fddi/skfp/pmf.c
520
if (memcmp((char *)(pa+1),(char *)smc->mib.fddiPRPMFPasswd,8))
drivers/net/fddi/skfp/pmf.c
526
static int smt_check_set_count(struct s_smc *smc, struct smt_header *sm)
drivers/net/fddi/skfp/pmf.c
531
pa = (struct smt_para *) sm_to_para(smc,sm,SMT_P1035) ;
drivers/net/fddi/skfp/pmf.c
534
if ((smc->mib.fddiSMTSetCount.count != sc->count) ||
drivers/net/fddi/skfp/pmf.c
535
memcmp((char *) smc->mib.fddiSMTSetCount.timestamp,
drivers/net/fddi/skfp/pmf.c
542
void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para,
drivers/net/fddi/skfp/pmf.c
604
mib_addr = (char *) (&smc->mib) ;
drivers/net/fddi/skfp/pmf.c
611
mib_addr = (char *) (&smc->mib.m[mac]) ;
drivers/net/fddi/skfp/pmf.c
619
mib_addr = (char *) (&smc->mib.a[path]) ;
drivers/net/fddi/skfp/pmf.c
622
if (port < 0 || port >= smt_mib_phys(smc)) {
drivers/net/fddi/skfp/pmf.c
626
mib_addr = (char *) (&smc->mib.p[port_to_mib(smc,port)]) ;
drivers/net/fddi/skfp/pmf.c
661
mac_update_counter(smc) ;
drivers/net/fddi/skfp/pmf.c
665
sm_pm_get_ls(smc,port_to_mib(smc,port))) ;
drivers/net/fddi/skfp/pmf.c
672
smt_set_timestamp(smc,smc->mib.fddiSMTTimeStamp) ;
drivers/net/fddi/skfp/pmf.c
680
if (smc->s.sas == SMT_SAS)
drivers/net/fddi/skfp/pmf.c
695
sp_len = cem_build_path(smc,to,path) ;
drivers/net/fddi/skfp/pmf.c
702
sp->p1048_flag = smc->mib.fddiSMTPeerWrapFlag ;
drivers/net/fddi/skfp/pmf.c
703
sp->p1048_cf_state = smc->mib.fddiSMTCF_State ;
drivers/net/fddi/skfp/pmf.c
712
smc->mib.m[MAC0].fddiMACDuplicateAddressCond ;
drivers/net/fddi/skfp/queue.c
100
SMT_PANIC(smc,SMT_E0121, SMT_E0121_MSG) ;
drivers/net/fddi/skfp/queue.c
104
if (++ev == &smc->q.ev_queue[MAX_EVENT])
drivers/net/fddi/skfp/queue.c
105
ev = smc->q.ev_queue ;
drivers/net/fddi/skfp/queue.c
108
smc->q.ev_get = ev;
drivers/net/fddi/skfp/queue.c
119
u_short smt_online(struct s_smc *smc, int on)
drivers/net/fddi/skfp/queue.c
121
queue_event(smc,EVENT_ECM,on ? EC_CONNECT : EC_DISCONNECT) ;
drivers/net/fddi/skfp/queue.c
122
ev_dispatcher(smc) ;
drivers/net/fddi/skfp/queue.c
123
return smc->mib.fddiSMTCF_State;
drivers/net/fddi/skfp/queue.c
133
void do_smt_flag(struct s_smc *smc, char *flag, int value)
drivers/net/fddi/skfp/queue.c
138
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/queue.c
141
deb = &smc->debug;
drivers/net/fddi/skfp/queue.c
26
void ev_init(struct s_smc *smc)
drivers/net/fddi/skfp/queue.c
28
smc->q.ev_put = smc->q.ev_get = smc->q.ev_queue ;
drivers/net/fddi/skfp/queue.c
34
void queue_event(struct s_smc *smc, int class, int event)
drivers/net/fddi/skfp/queue.c
37
smc->q.ev_put->class = class ;
drivers/net/fddi/skfp/queue.c
38
smc->q.ev_put->event = event ;
drivers/net/fddi/skfp/queue.c
39
if (++smc->q.ev_put == &smc->q.ev_queue[MAX_EVENT])
drivers/net/fddi/skfp/queue.c
40
smc->q.ev_put = smc->q.ev_queue ;
drivers/net/fddi/skfp/queue.c
42
if (smc->q.ev_put == smc->q.ev_get) {
drivers/net/fddi/skfp/queue.c
43
SMT_ERR_LOG(smc,SMT_E0137, SMT_E0137_MSG) ;
drivers/net/fddi/skfp/queue.c
50
void timer_event(struct s_smc *smc, u_long token)
drivers/net/fddi/skfp/queue.c
55
queue_event(smc,EV_T_CLASS(token),EV_T_EVENT(token));
drivers/net/fddi/skfp/queue.c
65
void ev_dispatcher(struct s_smc *smc)
drivers/net/fddi/skfp/queue.c
70
ev = smc->q.ev_get ;
drivers/net/fddi/skfp/queue.c
71
PRINTF("dispatch get %x put %x\n",ev,smc->q.ev_put) ;
drivers/net/fddi/skfp/queue.c
72
while (ev != smc->q.ev_put) {
drivers/net/fddi/skfp/queue.c
76
ecm(smc,(int)ev->event) ;
drivers/net/fddi/skfp/queue.c
79
cfm(smc,(int)ev->event) ;
drivers/net/fddi/skfp/queue.c
82
rmt(smc,(int)ev->event) ;
drivers/net/fddi/skfp/queue.c
85
smt_event(smc,(int)ev->event) ;
drivers/net/fddi/skfp/queue.c
89
timer_test_event(smc,(int)ev->event) ;
drivers/net/fddi/skfp/queue.c
97
pcm(smc,class - EVENT_PCMA,(int)ev->event) ;
drivers/net/fddi/skfp/rmt.c
100
static void stop_rmt_timer1(struct s_smc *smc);
drivers/net/fddi/skfp/rmt.c
101
static void stop_rmt_timer2(struct s_smc *smc);
drivers/net/fddi/skfp/rmt.c
102
static void rmt_dup_actions(struct s_smc *smc);
drivers/net/fddi/skfp/rmt.c
103
static void rmt_reinsert_actions(struct s_smc *smc);
drivers/net/fddi/skfp/rmt.c
104
static void rmt_leave_actions(struct s_smc *smc);
drivers/net/fddi/skfp/rmt.c
105
static void rmt_new_dup_actions(struct s_smc *smc);
drivers/net/fddi/skfp/rmt.c
115
void rmt_init(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
117
smc->mib.m[MAC0].fddiMACRMTState = ACTIONS(RM0_ISOLATED) ;
drivers/net/fddi/skfp/rmt.c
118
smc->r.dup_addr_test = DA_NONE ;
drivers/net/fddi/skfp/rmt.c
119
smc->r.da_flag = 0 ;
drivers/net/fddi/skfp/rmt.c
120
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = FALSE ;
drivers/net/fddi/skfp/rmt.c
121
smc->r.sm_ma_avail = FALSE ;
drivers/net/fddi/skfp/rmt.c
122
smc->r.loop_avail = 0 ;
drivers/net/fddi/skfp/rmt.c
123
smc->r.bn_flag = 0 ;
drivers/net/fddi/skfp/rmt.c
124
smc->r.jm_flag = 0 ;
drivers/net/fddi/skfp/rmt.c
125
smc->r.no_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
137
void rmt(struct s_smc *smc, int event)
drivers/net/fddi/skfp/rmt.c
143
smc->mib.m[MAC0].fddiMACRMTState & AFLAG ? "ACTIONS " : "",
drivers/net/fddi/skfp/rmt.c
144
rmt_states[smc->mib.m[MAC0].fddiMACRMTState & ~AFLAG],
drivers/net/fddi/skfp/rmt.c
146
state = smc->mib.m[MAC0].fddiMACRMTState ;
drivers/net/fddi/skfp/rmt.c
147
rmt_fsm(smc,event) ;
drivers/net/fddi/skfp/rmt.c
149
} while (state != smc->mib.m[MAC0].fddiMACRMTState) ;
drivers/net/fddi/skfp/rmt.c
150
rmt_state_change(smc,(int)smc->mib.m[MAC0].fddiMACRMTState) ;
drivers/net/fddi/skfp/rmt.c
156
static void rmt_fsm(struct s_smc *smc, int cmd)
drivers/net/fddi/skfp/rmt.c
161
if (!smc->r.rm_join && !smc->r.rm_loop &&
drivers/net/fddi/skfp/rmt.c
162
smc->mib.m[MAC0].fddiMACRMTState != ACTIONS(RM0_ISOLATED) &&
drivers/net/fddi/skfp/rmt.c
163
smc->mib.m[MAC0].fddiMACRMTState != RM0_ISOLATED) {
drivers/net/fddi/skfp/rmt.c
164
RS_SET(smc,RS_NORINGOP) ;
drivers/net/fddi/skfp/rmt.c
165
rmt_indication(smc,0) ;
drivers/net/fddi/skfp/rmt.c
170
switch(smc->mib.m[MAC0].fddiMACRMTState) {
drivers/net/fddi/skfp/rmt.c
172
stop_rmt_timer0(smc) ;
drivers/net/fddi/skfp/rmt.c
173
stop_rmt_timer1(smc) ;
drivers/net/fddi/skfp/rmt.c
174
stop_rmt_timer2(smc) ;
drivers/net/fddi/skfp/rmt.c
179
sm_ma_control(smc,MA_OFFLINE) ;
drivers/net/fddi/skfp/rmt.c
180
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = FALSE ;
drivers/net/fddi/skfp/rmt.c
181
smc->r.loop_avail = FALSE ;
drivers/net/fddi/skfp/rmt.c
182
smc->r.sm_ma_avail = FALSE ;
drivers/net/fddi/skfp/rmt.c
183
smc->r.no_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
189
if (smc->r.rm_join || smc->r.rm_loop) {
drivers/net/fddi/skfp/rmt.c
196
sm_ma_control(smc,MA_RESET) ;
drivers/net/fddi/skfp/rmt.c
202
start_rmt_timer0(smc,smc->s.rmt_t_non_op,RM_TIMEOUT_NON_OP) ;
drivers/net/fddi/skfp/rmt.c
203
stop_rmt_timer1(smc) ;
drivers/net/fddi/skfp/rmt.c
204
stop_rmt_timer2(smc) ;
drivers/net/fddi/skfp/rmt.c
205
sm_ma_control(smc,MA_BEACON) ;
drivers/net/fddi/skfp/rmt.c
207
RS_SET(smc,RS_NORINGOP) ;
drivers/net/fddi/skfp/rmt.c
208
smc->r.sm_ma_avail = FALSE ;
drivers/net/fddi/skfp/rmt.c
209
rmt_indication(smc,0) ;
drivers/net/fddi/skfp/rmt.c
215
RS_SET(smc,RS_RINGOPCHANGE) ;
drivers/net/fddi/skfp/rmt.c
221
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
222
smc->r.no_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
228
stop_rmt_timer0(smc) ;
drivers/net/fddi/skfp/rmt.c
229
stop_rmt_timer1(smc) ;
drivers/net/fddi/skfp/rmt.c
230
stop_rmt_timer2(smc) ;
drivers/net/fddi/skfp/rmt.c
231
smc->r.no_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
232
if (smc->r.rm_loop)
drivers/net/fddi/skfp/rmt.c
233
smc->r.loop_avail = TRUE ;
drivers/net/fddi/skfp/rmt.c
234
if (smc->r.rm_join) {
drivers/net/fddi/skfp/rmt.c
235
smc->r.sm_ma_avail = TRUE ;
drivers/net/fddi/skfp/rmt.c
236
if (smc->mib.m[MAC0].fddiMACMA_UnitdataEnable)
drivers/net/fddi/skfp/rmt.c
237
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = TRUE;
drivers/net/fddi/skfp/rmt.c
239
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = FALSE;
drivers/net/fddi/skfp/rmt.c
242
RS_CLEAR(smc,RS_NORINGOP) ;
drivers/net/fddi/skfp/rmt.c
243
RS_SET(smc,RS_RINGOPCHANGE) ;
drivers/net/fddi/skfp/rmt.c
244
rmt_indication(smc,1) ;
drivers/net/fddi/skfp/rmt.c
245
smt_stat_counter(smc,0) ;
drivers/net/fddi/skfp/rmt.c
251
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = FALSE ;
drivers/net/fddi/skfp/rmt.c
252
smc->r.loop_avail = FALSE ;
drivers/net/fddi/skfp/rmt.c
253
RS_SET(smc,RS_RINGOPCHANGE) ;
drivers/net/fddi/skfp/rmt.c
259
if (smc->mib.m[MAC0].fddiMACMA_UnitdataEnable)
drivers/net/fddi/skfp/rmt.c
260
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = TRUE ;
drivers/net/fddi/skfp/rmt.c
262
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = FALSE ;
drivers/net/fddi/skfp/rmt.c
265
else if (smc->r.dup_addr_test == DA_FAILED) {
drivers/net/fddi/skfp/rmt.c
266
smc->mib.m[MAC0].fddiMACMA_UnitdataAvailable = FALSE ;
drivers/net/fddi/skfp/rmt.c
267
smc->r.loop_avail = FALSE ;
drivers/net/fddi/skfp/rmt.c
268
smc->r.da_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
274
start_rmt_timer0(smc,smc->s.mac_d_max*2,RM_TIMEOUT_D_MAX) ;
drivers/net/fddi/skfp/rmt.c
275
start_rmt_timer1(smc,smc->s.rmt_t_stuck,RM_TIMEOUT_T_STUCK) ;
drivers/net/fddi/skfp/rmt.c
276
start_rmt_timer2(smc,smc->s.rmt_t_poll,RM_TIMEOUT_POLL) ;
drivers/net/fddi/skfp/rmt.c
277
sm_mac_check_beacon_claim(smc) ;
drivers/net/fddi/skfp/rmt.c
283
start_rmt_timer2(smc,smc->s.rmt_t_poll,RM_TIMEOUT_POLL);
drivers/net/fddi/skfp/rmt.c
284
sm_mac_check_beacon_claim(smc) ;
drivers/net/fddi/skfp/rmt.c
288
smc->r.timer0_exp = TRUE ;
drivers/net/fddi/skfp/rmt.c
297
start_rmt_timer0(smc,
drivers/net/fddi/skfp/rmt.c
298
smc->s.mac_d_max*2,
drivers/net/fddi/skfp/rmt.c
308
&& smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
309
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
312
else if (cmd == RM_TRT_EXP && !smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
319
if ((tx = sm_mac_get_tx_state(smc)) == 4 || tx == 5) {
drivers/net/fddi/skfp/rmt.c
321
smc->r.bn_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
328
start_rmt_timer1(smc,smc->s.rmt_t_stuck,
drivers/net/fddi/skfp/rmt.c
338
tx, smc->r.bn_flag);
drivers/net/fddi/skfp/rmt.c
341
else if (cmd == RM_MY_CLAIM && smc->r.timer0_exp) {
drivers/net/fddi/skfp/rmt.c
342
rmt_new_dup_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
347
else if (cmd == RM_MY_BEACON && smc->r.timer0_exp) {
drivers/net/fddi/skfp/rmt.c
348
rmt_new_dup_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
354
rmt_new_dup_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
360
smc->r.rm_join && smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
366
start_rmt_timer0(smc,smc->s.rmt_t_announce,RM_TIMEOUT_ANNOUNCE);
drivers/net/fddi/skfp/rmt.c
367
start_rmt_timer1(smc,smc->s.rmt_t_stuck,RM_TIMEOUT_T_STUCK) ;
drivers/net/fddi/skfp/rmt.c
368
start_rmt_timer2(smc,smc->s.rmt_t_poll,RM_TIMEOUT_POLL) ;
drivers/net/fddi/skfp/rmt.c
369
sm_mac_check_beacon_claim(smc) ;
drivers/net/fddi/skfp/rmt.c
375
start_rmt_timer2(smc,smc->s.rmt_t_poll,RM_TIMEOUT_POLL);
drivers/net/fddi/skfp/rmt.c
376
sm_mac_check_beacon_claim(smc) ;
drivers/net/fddi/skfp/rmt.c
380
if (!smc->r.da_flag) {
drivers/net/fddi/skfp/rmt.c
386
smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
387
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
390
else if (cmd == RM_TRT_EXP && !smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
397
if ((tx = sm_mac_get_tx_state(smc)) == 4 || tx == 5) {
drivers/net/fddi/skfp/rmt.c
399
smc->r.bn_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
406
start_rmt_timer1(smc,smc->s.rmt_t_stuck,
drivers/net/fddi/skfp/rmt.c
416
tx, smc->r.bn_flag);
drivers/net/fddi/skfp/rmt.c
419
else if (cmd == RM_TIMEOUT_ANNOUNCE && !smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
420
rmt_dup_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
424
smc->r.no_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
430
smc->r.rm_join && smc->r.bn_flag) {
drivers/net/fddi/skfp/rmt.c
436
stop_rmt_timer0(smc) ;
drivers/net/fddi/skfp/rmt.c
437
stop_rmt_timer1(smc) ;
drivers/net/fddi/skfp/rmt.c
438
stop_rmt_timer2(smc) ;
drivers/net/fddi/skfp/rmt.c
444
if (smc->r.dup_addr_test == DA_PASSED) {
drivers/net/fddi/skfp/rmt.c
445
smc->r.da_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
451
smc->r.jm_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
452
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
458
start_rmt_timer0(smc,smc->s.rmt_t_direct,RM_TIMEOUT_T_DIRECT) ;
drivers/net/fddi/skfp/rmt.c
459
stop_rmt_timer1(smc) ;
drivers/net/fddi/skfp/rmt.c
460
start_rmt_timer2(smc,smc->s.rmt_t_poll,RM_TIMEOUT_POLL) ;
drivers/net/fddi/skfp/rmt.c
461
sm_ma_control(smc,MA_DIRECTED) ;
drivers/net/fddi/skfp/rmt.c
462
RS_SET(smc,RS_BEACON) ;
drivers/net/fddi/skfp/rmt.c
469
start_rmt_timer2(smc,smc->s.rmt_t_poll,RM_TIMEOUT_POLL);
drivers/net/fddi/skfp/rmt.c
470
sm_mac_check_beacon_claim(smc) ;
drivers/net/fddi/skfp/rmt.c
477
restart_trt_for_dbcn(smc) ;
drivers/net/fddi/skfp/rmt.c
482
!smc->r.da_flag) {
drivers/net/fddi/skfp/rmt.c
483
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
489
smc->r.da_flag) {
drivers/net/fddi/skfp/rmt.c
490
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
501
stop_rmt_timer0(smc) ;
drivers/net/fddi/skfp/rmt.c
502
stop_rmt_timer1(smc) ;
drivers/net/fddi/skfp/rmt.c
503
stop_rmt_timer2(smc) ;
drivers/net/fddi/skfp/rmt.c
504
smc->e.trace_prop |= ENTITY_BIT(ENTITY_MAC) ;
drivers/net/fddi/skfp/rmt.c
505
queue_event(smc,EVENT_ECM,EC_TRACE_PROP) ;
drivers/net/fddi/skfp/rmt.c
512
SMT_PANIC(smc,SMT_E0122, SMT_E0122_MSG) ;
drivers/net/fddi/skfp/rmt.c
52
#define GO_STATE(x) (smc->mib.m[MAC0].fddiMACRMTState = (x)|AFLAG)
drivers/net/fddi/skfp/rmt.c
521
static void rmt_dup_actions(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
523
if (smc->r.jm_flag) {
drivers/net/fddi/skfp/rmt.c
526
if (smc->s.rmt_dup_mac_behavior) {
drivers/net/fddi/skfp/rmt.c
527
SMT_ERR_LOG(smc,SMT_E0138, SMT_E0138_MSG) ;
drivers/net/fddi/skfp/rmt.c
528
rmt_reinsert_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
53
#define ACTIONS_DONE() (smc->mib.m[MAC0].fddiMACRMTState &= ~AFLAG)
drivers/net/fddi/skfp/rmt.c
531
SMT_ERR_LOG(smc,SMT_E0135, SMT_E0135_MSG) ;
drivers/net/fddi/skfp/rmt.c
532
rmt_leave_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
540
static void rmt_reinsert_actions(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
542
queue_event(smc,EVENT_ECM,EC_DISCONNECT) ;
drivers/net/fddi/skfp/rmt.c
543
queue_event(smc,EVENT_ECM,EC_CONNECT) ;
drivers/net/fddi/skfp/rmt.c
549
static void rmt_new_dup_actions(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
551
smc->r.da_flag = TRUE ;
drivers/net/fddi/skfp/rmt.c
552
smc->r.bn_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
553
smc->r.jm_flag = FALSE ;
drivers/net/fddi/skfp/rmt.c
560
if (smc->s.rmt_dup_mac_behavior) {
drivers/net/fddi/skfp/rmt.c
561
SMT_ERR_LOG(smc,SMT_E0138, SMT_E0138_MSG) ;
drivers/net/fddi/skfp/rmt.c
562
rmt_reinsert_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
565
SMT_ERR_LOG(smc,SMT_E0135, SMT_E0135_MSG) ;
drivers/net/fddi/skfp/rmt.c
566
rmt_leave_actions(smc) ;
drivers/net/fddi/skfp/rmt.c
574
static void rmt_leave_actions(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
576
queue_event(smc,EVENT_ECM,EC_DISCONNECT) ;
drivers/net/fddi/skfp/rmt.c
587
static void start_rmt_timer0(struct s_smc *smc, u_long value, int event)
drivers/net/fddi/skfp/rmt.c
589
smc->r.timer0_exp = FALSE ; /* clear timer event flag */
drivers/net/fddi/skfp/rmt.c
590
smt_timer_start(smc,&smc->r.rmt_timer0,value,EV_TOKEN(EVENT_RMT,event));
drivers/net/fddi/skfp/rmt.c
597
static void start_rmt_timer1(struct s_smc *smc, u_long value, int event)
drivers/net/fddi/skfp/rmt.c
599
smc->r.timer1_exp = FALSE ; /* clear timer event flag */
drivers/net/fddi/skfp/rmt.c
600
smt_timer_start(smc,&smc->r.rmt_timer1,value,EV_TOKEN(EVENT_RMT,event));
drivers/net/fddi/skfp/rmt.c
607
static void start_rmt_timer2(struct s_smc *smc, u_long value, int event)
drivers/net/fddi/skfp/rmt.c
609
smc->r.timer2_exp = FALSE ; /* clear timer event flag */
drivers/net/fddi/skfp/rmt.c
610
smt_timer_start(smc,&smc->r.rmt_timer2,value,EV_TOKEN(EVENT_RMT,event));
drivers/net/fddi/skfp/rmt.c
617
static void stop_rmt_timer0(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
619
if (smc->r.rmt_timer0.tm_active)
drivers/net/fddi/skfp/rmt.c
620
smt_timer_stop(smc,&smc->r.rmt_timer0) ;
drivers/net/fddi/skfp/rmt.c
627
static void stop_rmt_timer1(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
629
if (smc->r.rmt_timer1.tm_active)
drivers/net/fddi/skfp/rmt.c
630
smt_timer_stop(smc,&smc->r.rmt_timer1) ;
drivers/net/fddi/skfp/rmt.c
637
static void stop_rmt_timer2(struct s_smc *smc)
drivers/net/fddi/skfp/rmt.c
639
if (smc->r.rmt_timer2.tm_active)
drivers/net/fddi/skfp/rmt.c
640
smt_timer_stop(smc,&smc->r.rmt_timer2) ;
drivers/net/fddi/skfp/rmt.c
95
static void rmt_fsm(struct s_smc *smc, int cmd);
drivers/net/fddi/skfp/rmt.c
96
static void start_rmt_timer0(struct s_smc *smc, u_long value, int event);
drivers/net/fddi/skfp/rmt.c
97
static void start_rmt_timer1(struct s_smc *smc, u_long value, int event);
drivers/net/fddi/skfp/rmt.c
98
static void start_rmt_timer2(struct s_smc *smc, u_long value, int event);
drivers/net/fddi/skfp/rmt.c
99
static void stop_rmt_timer0(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
1047
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
1048
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
1107
static void send_queued_packets(struct s_smc *smc)
drivers/net/fddi/skfp/skfddi.c
1109
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
112
static void send_queued_packets(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
1137
if (!smc->ess.sync_bw_available)
drivers/net/fddi/skfp/skfddi.c
114
static void ResetAdapter(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
1142
if (smc->mib.fddiESSSynchTxMode) {
drivers/net/fddi/skfp/skfddi.c
1149
frame_status = hwm_tx_init(smc, fc, 1, skb->len, queue);
drivers/net/fddi/skfp/skfddi.c
1175
CheckSourceAddress(skb->data, smc->hw.fddi_canon_addr.a);
drivers/net/fddi/skfp/skfddi.c
1177
txd = (struct s_smt_fp_txd *) HWM_GET_CURR_TXD(smc, queue);
drivers/net/fddi/skfp/skfddi.c
118
void *mac_drv_get_space(struct s_smc *smc, u_int size);
drivers/net/fddi/skfp/skfddi.c
1185
hwm_tx_frag(smc, skb->data, dma_address, skb->len,
drivers/net/fddi/skfp/skfddi.c
119
void *mac_drv_get_desc_mem(struct s_smc *smc, u_int size);
drivers/net/fddi/skfp/skfddi.c
120
unsigned long mac_drv_virt2phys(struct s_smc *smc, void *virt);
drivers/net/fddi/skfp/skfddi.c
121
unsigned long dma_master(struct s_smc *smc, void *virt, int len, int flag);
drivers/net/fddi/skfp/skfddi.c
122
void dma_complete(struct s_smc *smc, volatile union s_fp_descr *descr,
drivers/net/fddi/skfp/skfddi.c
1234
static void ResetAdapter(struct s_smc *smc)
drivers/net/fddi/skfp/skfddi.c
124
void mac_drv_tx_complete(struct s_smc *smc, volatile struct s_smt_fp_txd *txd);
drivers/net/fddi/skfp/skfddi.c
1241
card_stop(smc); // Stop all activity.
drivers/net/fddi/skfp/skfddi.c
1244
mac_drv_clear_tx_queue(smc);
drivers/net/fddi/skfp/skfddi.c
1245
mac_drv_clear_rx_queue(smc);
drivers/net/fddi/skfp/skfddi.c
1249
smt_reset_defaults(smc, 1); // Initialize the SMT module.
drivers/net/fddi/skfp/skfddi.c
125
void llc_restart_tx(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
1251
init_smt(smc, (smc->os.dev)->dev_addr); // Initialize the hardware.
drivers/net/fddi/skfp/skfddi.c
1253
smt_online(smc, 1); // Insert into the ring again.
drivers/net/fddi/skfp/skfddi.c
1257
skfp_ctl_set_multicast_list_wo_lock(smc->os.dev);
drivers/net/fddi/skfp/skfddi.c
126
void mac_drv_rx_complete(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
drivers/net/fddi/skfp/skfddi.c
1279
void llc_restart_tx(struct s_smc *smc)
drivers/net/fddi/skfp/skfddi.c
128
void mac_drv_requeue_rxd(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
drivers/net/fddi/skfp/skfddi.c
1281
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
1287
send_queued_packets(smc);
drivers/net/fddi/skfp/skfddi.c
130
void mac_drv_fill_rxd(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
1309
void *mac_drv_get_space(struct s_smc *smc, unsigned int size)
drivers/net/fddi/skfp/skfddi.c
131
void mac_drv_clear_rxd(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
drivers/net/fddi/skfp/skfddi.c
1314
virt = (void *) (smc->os.SharedMemAddr + smc->os.SharedMemHeap);
drivers/net/fddi/skfp/skfddi.c
1316
if ((smc->os.SharedMemHeap + size) > smc->os.SharedMemSize) {
drivers/net/fddi/skfp/skfddi.c
1320
smc->os.SharedMemHeap += size; // Move heap pointer.
drivers/net/fddi/skfp/skfddi.c
1325
(smc->os.SharedMemDMA +
drivers/net/fddi/skfp/skfddi.c
1326
((char *) virt - (char *)smc->os.SharedMemAddr)));
drivers/net/fddi/skfp/skfddi.c
133
int mac_drv_rx_init(struct s_smc *smc, int len, int fc, char *look_ahead,
drivers/net/fddi/skfp/skfddi.c
1349
void *mac_drv_get_desc_mem(struct s_smc *smc, unsigned int size)
drivers/net/fddi/skfp/skfddi.c
1358
virt = mac_drv_get_space(smc, size);
drivers/net/fddi/skfp/skfddi.c
1366
if (!mac_drv_get_space(smc, size)) {
drivers/net/fddi/skfp/skfddi.c
1387
unsigned long mac_drv_virt2phys(struct s_smc *smc, void *virt)
drivers/net/fddi/skfp/skfddi.c
1389
return smc->os.SharedMemDMA +
drivers/net/fddi/skfp/skfddi.c
139
extern int mac_drv_init(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
1390
((char *) virt - (char *)smc->os.SharedMemAddr);
drivers/net/fddi/skfp/skfddi.c
140
extern void hwm_tx_frag(struct s_smc *smc, char far * virt, u_long phys,
drivers/net/fddi/skfp/skfddi.c
142
extern int hwm_tx_init(struct s_smc *smc, u_char fc, int frag_count,
drivers/net/fddi/skfp/skfddi.c
1422
u_long dma_master(struct s_smc * smc, void *virt, int len, int flag)
drivers/net/fddi/skfp/skfddi.c
1424
return smc->os.SharedMemDMA +
drivers/net/fddi/skfp/skfddi.c
1425
((char *) virt - (char *)smc->os.SharedMemAddr);
drivers/net/fddi/skfp/skfddi.c
144
extern void fddi_isr(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
145
extern void hwm_rx_frag(struct s_smc *smc, char far * virt, u_long phys,
drivers/net/fddi/skfp/skfddi.c
1450
void dma_complete(struct s_smc *smc, volatile union s_fp_descr *descr, int flag)
drivers/net/fddi/skfp/skfddi.c
1465
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
147
extern void mac_drv_rx_mode(struct s_smc *smc, int mode);
drivers/net/fddi/skfp/skfddi.c
148
extern void mac_drv_clear_rx_queue(struct s_smc *smc);
drivers/net/fddi/skfp/skfddi.c
149
extern void enable_tx_irq(struct s_smc *smc, u_short queue);
drivers/net/fddi/skfp/skfddi.c
1495
void mac_drv_tx_complete(struct s_smc *smc, volatile struct s_smt_fp_txd *txd)
drivers/net/fddi/skfp/skfddi.c
1509
dma_unmap_single(&(&smc->os.pdev)->dev, txd->txd_os.dma_addr,
drivers/net/fddi/skfp/skfddi.c
1513
smc->os.MacStat.gen.tx_packets++; // Count transmitted packets.
drivers/net/fddi/skfp/skfddi.c
1514
smc->os.MacStat.gen.tx_bytes+=skb->len; // Count bytes
drivers/net/fddi/skfp/skfddi.c
1563
void mac_drv_rx_complete(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
drivers/net/fddi/skfp/skfddi.c
1566
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
1582
smc->os.MacStat.gen.rx_errors++;
drivers/net/fddi/skfp/skfddi.c
1635
smc->os.MacStat.gen.rx_packets++; // Count indicated receive
drivers/net/fddi/skfp/skfddi.c
1637
smc->os.MacStat.gen.rx_bytes+=len; // Count bytes.
drivers/net/fddi/skfp/skfddi.c
1642
smc->os.MacStat.gen.multicast++;
drivers/net/fddi/skfp/skfddi.c
1652
HWM_RX_CHECK(smc, RX_LOW_WATERMARK);
drivers/net/fddi/skfp/skfddi.c
1657
mac_drv_requeue_rxd(smc, rxd, frag_count);
drivers/net/fddi/skfp/skfddi.c
1658
smc->os.MacStat.gen.rx_errors++; // Count receive packets
drivers/net/fddi/skfp/skfddi.c
1682
void mac_drv_requeue_rxd(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
drivers/net/fddi/skfp/skfddi.c
1696
MaxFrameSize = smc->os.MaxFrameSize;
drivers/net/fddi/skfp/skfddi.c
1700
rxd = HWM_GET_CURR_RXD(smc);
drivers/net/fddi/skfp/skfddi.c
1713
b_addr = dma_map_single(&(&smc->os.pdev)->dev,
drivers/net/fddi/skfp/skfddi.c
1721
v_addr = smc->os.LocalRxBuffer;
drivers/net/fddi/skfp/skfddi.c
1722
b_addr = smc->os.LocalRxBufferDMA;
drivers/net/fddi/skfp/skfddi.c
1728
b_addr = dma_map_single(&(&smc->os.pdev)->dev, v_addr,
drivers/net/fddi/skfp/skfddi.c
1732
hwm_rx_frag(smc, v_addr, b_addr, MaxFrameSize,
drivers/net/fddi/skfp/skfddi.c
1756
void mac_drv_fill_rxd(struct s_smc *smc)
drivers/net/fddi/skfp/skfddi.c
1769
MaxFrameSize = smc->os.MaxFrameSize;
drivers/net/fddi/skfp/skfddi.c
1771
while (HWM_GET_RX_FREE(smc) > 0) {
drivers/net/fddi/skfp/skfddi.c
1774
rxd = HWM_GET_CURR_RXD(smc);
drivers/net/fddi/skfp/skfddi.c
1781
b_addr = dma_map_single(&(&smc->os.pdev)->dev, v_addr,
drivers/net/fddi/skfp/skfddi.c
1791
v_addr = smc->os.LocalRxBuffer;
drivers/net/fddi/skfp/skfddi.c
1792
b_addr = smc->os.LocalRxBufferDMA;
drivers/net/fddi/skfp/skfddi.c
1798
hwm_rx_frag(smc, v_addr, b_addr, MaxFrameSize,
drivers/net/fddi/skfp/skfddi.c
1821
void mac_drv_clear_rxd(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
drivers/net/fddi/skfp/skfddi.c
1836
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
1879
int mac_drv_rx_init(struct s_smc *smc, int len, int fc,
drivers/net/fddi/skfp/skfddi.c
1904
skb->protocol = fddi_type_trans(skb, smc->os.dev);
drivers/net/fddi/skfp/skfddi.c
1926
void smt_timer_poll(struct s_smc *smc)
drivers/net/fddi/skfp/skfddi.c
1944
void ring_status_indication(struct s_smc *smc, u_long status)
drivers/net/fddi/skfp/skfddi.c
2018
void smt_stat_counter(struct s_smc *smc, int stat)
drivers/net/fddi/skfp/skfddi.c
2029
smc->os.MacStat.gen.rx_errors++;
drivers/net/fddi/skfp/skfddi.c
2054
void cfm_state_change(struct s_smc *smc, int c_state)
drivers/net/fddi/skfp/skfddi.c
207
struct s_smc *smc; /* board pointer */
drivers/net/fddi/skfp/skfddi.c
2112
void ecm_state_change(struct s_smc *smc, int e_state)
drivers/net/fddi/skfp/skfddi.c
2167
void rmt_state_change(struct s_smc *smc, int r_state)
drivers/net/fddi/skfp/skfddi.c
2219
void drv_reset_indication(struct s_smc *smc)
drivers/net/fddi/skfp/skfddi.c
2223
smc->os.ResetRequested = TRUE; // Set flag.
drivers/net/fddi/skfp/skfddi.c
264
smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
265
smc->os.dev = dev;
drivers/net/fddi/skfp/skfddi.c
266
smc->os.bus_type = SK_BUS_TYPE_PCI;
drivers/net/fddi/skfp/skfddi.c
267
smc->os.pdev = *pdev;
drivers/net/fddi/skfp/skfddi.c
268
smc->os.QueueSkb = MAX_TX_QUEUE_LEN;
drivers/net/fddi/skfp/skfddi.c
269
smc->os.MaxFrameSize = MAX_FRAME_SIZE;
drivers/net/fddi/skfp/skfddi.c
270
smc->os.dev = dev;
drivers/net/fddi/skfp/skfddi.c
271
smc->hw.slot = -1;
drivers/net/fddi/skfp/skfddi.c
272
smc->hw.iop = mem;
drivers/net/fddi/skfp/skfddi.c
273
smc->os.ResetRequested = FALSE;
drivers/net/fddi/skfp/skfddi.c
274
skb_queue_head_init(&smc->os.SendSkbQueue);
drivers/net/fddi/skfp/skfddi.c
299
if (smc->os.SharedMemAddr)
drivers/net/fddi/skfp/skfddi.c
300
dma_free_coherent(&pdev->dev, smc->os.SharedMemSize,
drivers/net/fddi/skfp/skfddi.c
301
smc->os.SharedMemAddr,
drivers/net/fddi/skfp/skfddi.c
302
smc->os.SharedMemDMA);
drivers/net/fddi/skfp/skfddi.c
304
smc->os.LocalRxBuffer, smc->os.LocalRxBufferDMA);
drivers/net/fddi/skfp/skfddi.c
382
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
383
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
392
smc->hw.irq = dev->irq;
drivers/net/fddi/skfp/skfddi.c
429
card_stop(smc); // Reset adapter.
drivers/net/fddi/skfp/skfddi.c
432
if (mac_drv_init(smc) != 0) {
drivers/net/fddi/skfp/skfddi.c
436
read_address(smc, NULL);
drivers/net/fddi/skfp/skfddi.c
437
pr_debug("HW-Addr: %pMF\n", smc->hw.fddi_canon_addr.a);
drivers/net/fddi/skfp/skfddi.c
438
eth_hw_addr_set(dev, smc->hw.fddi_canon_addr.a);
drivers/net/fddi/skfp/skfddi.c
440
smt_reset_defaults(smc, 0);
drivers/net/fddi/skfp/skfddi.c
484
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
504
read_address(smc, NULL);
drivers/net/fddi/skfp/skfddi.c
505
eth_hw_addr_set(dev, smc->hw.fddi_canon_addr.a);
drivers/net/fddi/skfp/skfddi.c
507
init_smt(smc, NULL);
drivers/net/fddi/skfp/skfddi.c
508
smt_online(smc, 1);
drivers/net/fddi/skfp/skfddi.c
512
mac_clear_multicast(smc);
drivers/net/fddi/skfp/skfddi.c
515
mac_drv_rx_mode(smc, RX_DISABLE_PROMISC);
drivers/net/fddi/skfp/skfddi.c
551
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
552
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
555
smt_reset_defaults(smc, 1);
drivers/net/fddi/skfp/skfddi.c
556
card_stop(smc);
drivers/net/fddi/skfp/skfddi.c
557
mac_drv_clear_tx_queue(smc);
drivers/net/fddi/skfp/skfddi.c
558
mac_drv_clear_rx_queue(smc);
drivers/net/fddi/skfp/skfddi.c
609
struct s_smc *smc; /* private board structure pointer */
drivers/net/fddi/skfp/skfddi.c
612
smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
613
bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
621
if ((inpd(ISR_A) & smc->hw.is_imask) == 0) { // IRQ?
drivers/net/fddi/skfp/skfddi.c
629
fddi_isr(smc);
drivers/net/fddi/skfp/skfddi.c
631
if (smc->os.ResetRequested) {
drivers/net/fddi/skfp/skfddi.c
632
ResetAdapter(smc);
drivers/net/fddi/skfp/skfddi.c
633
smc->os.ResetRequested = FALSE;
drivers/net/fddi/skfp/skfddi.c
839
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
840
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
852
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
857
mac_drv_rx_mode(smc, RX_ENABLE_PROMISC);
drivers/net/fddi/skfp/skfddi.c
862
mac_drv_rx_mode(smc, RX_DISABLE_PROMISC);
drivers/net/fddi/skfp/skfddi.c
866
mac_clear_multicast(smc);
drivers/net/fddi/skfp/skfddi.c
867
mac_drv_rx_mode(smc, RX_DISABLE_ALLMULTI);
drivers/net/fddi/skfp/skfddi.c
870
mac_drv_rx_mode(smc, RX_ENABLE_ALLMULTI);
drivers/net/fddi/skfp/skfddi.c
878
mac_add_multicast(smc,
drivers/net/fddi/skfp/skfddi.c
888
mac_drv_rx_mode(smc, RX_ENABLE_ALLMULTI);
drivers/net/fddi/skfp/skfddi.c
897
mac_update_multicast(smc);
drivers/net/fddi/skfp/skfddi.c
923
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
925
skfddi_priv *bp = &smc->os;
drivers/net/fddi/skfp/skfddi.c
931
ResetAdapter(smc);
drivers/net/fddi/skfp/skfddi.c
963
struct s_smc *smc = netdev_priv(dev);
drivers/net/fddi/skfp/skfddi.c
964
skfddi_priv *lp = &smc->os;
drivers/net/fddi/skfp/smt.c
1001
if (!(mb = smt_build_frame(smc,SMT_ECF,type,SMT_ECF_LEN + len)))
drivers/net/fddi/skfp/smt.c
1005
smt_fill_echo(smc,&ecf->ec_echo,tid,len) ; /* set ECHO */
drivers/net/fddi/skfp/smt.c
1008
smc->mib.priv.fddiPRIVECF_Req_Tx++ ;
drivers/net/fddi/skfp/smt.c
1009
smt_send_frame(smc,mb,fc,0) ;
drivers/net/fddi/skfp/smt.c
1016
static void smt_send_sif_config(struct s_smc *smc, struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
102
static void hwm_conv_can(struct s_smc *smc, char *data, int len);
drivers/net/fddi/skfp/smt.c
1024
if (!(mb = smt_build_frame(smc,SMT_SIF_CONFIG,SMT_REPLY,
drivers/net/fddi/skfp/smt.c
1029
smt_fill_timestamp(smc,&sif->ts) ; /* set time stamp */
drivers/net/fddi/skfp/smt.c
1030
smt_fill_sde(smc,&sif->sde) ; /* set station descriptor */
drivers/net/fddi/skfp/smt.c
1031
smt_fill_version(smc,&sif->version) ; /* set version information */
drivers/net/fddi/skfp/smt.c
1032
smt_fill_state(smc,&sif->state) ; /* set state information */
drivers/net/fddi/skfp/smt.c
1033
smt_fill_policy(smc,&sif->policy) ; /* set station policy */
drivers/net/fddi/skfp/smt.c
1034
smt_fill_latency(smc,&sif->latency); /* set station latency */
drivers/net/fddi/skfp/smt.c
1035
smt_fill_neighbor(smc,&sif->neighbor); /* set station neighbor */
drivers/net/fddi/skfp/smt.c
1036
smt_fill_setcount(smc,&sif->setcount) ; /* set count */
drivers/net/fddi/skfp/smt.c
1037
len = smt_fill_path(smc,&sif->path); /* set station path descriptor*/
drivers/net/fddi/skfp/smt.c
104
#define hwm_conv_can(smc,data,len)
drivers/net/fddi/skfp/smt.c
1041
dump_smt(smc,(struct smt_header *)sif,"SIF Configuration Reply") ;
drivers/net/fddi/skfp/smt.c
1042
smt_send_frame(smc,mb,FC_SMT_INFO,local) ;
drivers/net/fddi/skfp/smt.c
1049
static void smt_send_sif_operation(struct s_smc *smc, struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
1061
if (smc->s.sas == SMT_SAS)
drivers/net/fddi/skfp/smt.c
1065
if (!(mb = smt_build_frame(smc,SMT_SIF_OPER,SMT_REPLY,
drivers/net/fddi/skfp/smt.c
1069
smt_fill_timestamp(smc,&sif->ts) ; /* set time stamp */
drivers/net/fddi/skfp/smt.c
1070
smt_fill_mac_status(smc,&sif->status) ; /* set mac status */
drivers/net/fddi/skfp/smt.c
1071
smt_fill_mac_counter(smc,&sif->mc) ; /* set mac counter field */
drivers/net/fddi/skfp/smt.c
1072
smt_fill_mac_fnc(smc,&sif->fnc) ; /* set frame not copied counter */
drivers/net/fddi/skfp/smt.c
1073
smt_fill_manufacturer(smc,&sif->man) ; /* set manufacturer field */
drivers/net/fddi/skfp/smt.c
1074
smt_fill_user(smc,&sif->user) ; /* set user field */
drivers/net/fddi/skfp/smt.c
1075
smt_fill_setcount(smc,&sif->setcount) ; /* set count */
drivers/net/fddi/skfp/smt.c
108
static inline int is_my_addr(const struct s_smc *smc,
drivers/net/fddi/skfp/smt.c
1080
smt_fill_lem(smc,sif->lem,PS) ;
drivers/net/fddi/skfp/smt.c
1084
smt_fill_lem(smc,&sif->lem[i],i) ;
drivers/net/fddi/skfp/smt.c
1090
dump_smt(smc,(struct smt_header *)sif,"SIF Operation Reply") ;
drivers/net/fddi/skfp/smt.c
1091
smt_send_frame(smc,mb,FC_SMT_INFO,local) ;
drivers/net/fddi/skfp/smt.c
1097
SMbuf *smt_build_frame(struct s_smc *smc, int class, int type,
drivers/net/fddi/skfp/smt.c
1104
if (!smc->r.sm_ma_avail) {
drivers/net/fddi/skfp/smt.c
1108
if (!(mb = smt_get_mbuf(smc)))
drivers/net/fddi/skfp/smt.c
112
*(short *)(&smc->mib.m[MAC0].fddiMACSMTAddress.a[0])
drivers/net/fddi/skfp/smt.c
1127
smt->smt_tid = smt_get_tid(smc) ; /* set transaction ID */
drivers/net/fddi/skfp/smt.c
114
*(short *)(&smc->mib.m[MAC0].fddiMACSMTAddress.a[2])
drivers/net/fddi/skfp/smt.c
1147
static void smt_fill_una(struct s_smc *smc, struct smt_p_una *una)
drivers/net/fddi/skfp/smt.c
1151
una->una_node = smc->mib.m[MAC0].fddiMACUpstreamNbr ;
drivers/net/fddi/skfp/smt.c
1157
static void smt_fill_sde(struct s_smc *smc, struct smt_p_sde *sde)
drivers/net/fddi/skfp/smt.c
116
*(short *)(&smc->mib.m[MAC0].fddiMACSMTAddress.a[4])) ;
drivers/net/fddi/skfp/smt.c
1160
sde->sde_non_master = smc->mib.fddiSMTNonMaster_Ct ;
drivers/net/fddi/skfp/smt.c
1161
sde->sde_master = smc->mib.fddiSMTMaster_Ct ;
drivers/net/fddi/skfp/smt.c
1173
static void smt_fill_state(struct s_smc *smc, struct smt_p_state *state)
drivers/net/fddi/skfp/smt.c
1183
if (smc->mib.fddiSMTPeerWrapFlag) {
drivers/net/fddi/skfp/smt.c
1187
if (cfm_status_unattached(smc)) {
drivers/net/fddi/skfp/smt.c
1191
if ((twist = pcm_status_twisted(smc)) & 1) {
drivers/net/fddi/skfp/smt.c
1200
if (pcm_rooted_station(smc))
drivers/net/fddi/skfp/smt.c
1202
if (smc->mib.a[0].fddiPATHSbaPayload != 0)
drivers/net/fddi/skfp/smt.c
1206
((smc->mib.m[MAC0].fddiMACDA_Flag ? SMT_ST_MY_DUPA : 0 ) |
drivers/net/fddi/skfp/smt.c
1207
(smc->mib.m[MAC0].fddiMACUNDA_Flag ? SMT_ST_UNA_DUPA : 0)) ;
drivers/net/fddi/skfp/smt.c
1213
static void smt_fill_timestamp(struct s_smc *smc, struct smt_p_timestamp *ts)
drivers/net/fddi/skfp/smt.c
1217
smt_set_timestamp(smc,ts->ts_time) ;
drivers/net/fddi/skfp/smt.c
1220
void smt_set_timestamp(struct s_smc *smc, u_char *p)
drivers/net/fddi/skfp/smt.c
1239
p[6] = (u_char)(smc->sm.uniq_ticks>>8) ;
drivers/net/fddi/skfp/smt.c
1240
p[7] = (u_char)smc->sm.uniq_ticks ;
drivers/net/fddi/skfp/smt.c
1244
if (utime != smc->sm.uniq_time) {
drivers/net/fddi/skfp/smt.c
1245
smc->sm.uniq_ticks = 0 ;
drivers/net/fddi/skfp/smt.c
1247
smc->sm.uniq_ticks++ ;
drivers/net/fddi/skfp/smt.c
1248
smc->sm.uniq_time = utime ;
drivers/net/fddi/skfp/smt.c
1254
static void smt_fill_policy(struct s_smc *smc, struct smt_p_policy *policy)
drivers/net/fddi/skfp/smt.c
1271
in = smc->mib.fddiSMTConnectionPolicy ;
drivers/net/fddi/skfp/smt.c
1278
policy->pl_config = smc->mib.fddiSMTConfigPolicy ;
drivers/net/fddi/skfp/smt.c
1285
static void smt_fill_latency(struct s_smc *smc, struct smt_p_latency *latency)
drivers/net/fddi/skfp/smt.c
1289
latency->lt_phyout_idx1 = phy_index(smc,0) ;
drivers/net/fddi/skfp/smt.c
1295
if (smc->s.sas == SMT_DAS) {
drivers/net/fddi/skfp/smt.c
1296
latency->lt_phyout_idx2 = phy_index(smc,1) ;
drivers/net/fddi/skfp/smt.c
1308
static void smt_fill_neighbor(struct s_smc *smc, struct smt_p_neighbor *neighbor)
drivers/net/fddi/skfp/smt.c
1313
neighbor->nb_mac_index = mac_index(smc,1) ;
drivers/net/fddi/skfp/smt.c
1314
neighbor->nb_una = smc->mib.m[MAC0].fddiMACUpstreamNbr ;
drivers/net/fddi/skfp/smt.c
1315
neighbor->nb_dna = smc->mib.m[MAC0].fddiMACDownstreamNbr ;
drivers/net/fddi/skfp/smt.c
1324
#define ALLPHYS ((smc->s.sas == SMT_SAS) ? 1 : 2)
drivers/net/fddi/skfp/smt.c
1327
static int smt_fill_path(struct s_smc *smc, struct smt_p_path *path)
drivers/net/fddi/skfp/smt.c
1349
if (smc->s.sas == SMT_SAS)
drivers/net/fddi/skfp/smt.c
1352
pcm_status_state(smc,physp,&type,&state,&remote,&mac) ;
drivers/net/fddi/skfp/smt.c
1362
phy->phy_resource_idx = phy_con_resource_index(smc,p) ;
drivers/net/fddi/skfp/smt.c
1367
pd_mac->mac_addr = smc->mib.m[MAC0].fddiMACSMTAddress ;
drivers/net/fddi/skfp/smt.c
1368
pd_mac->mac_resource_idx = mac_con_resource_index(smc,1) ;
drivers/net/fddi/skfp/smt.c
1375
static void smt_fill_mac_status(struct s_smc *smc, struct smt_p_mac_status *st)
drivers/net/fddi/skfp/smt.c
1380
st->st_mac_index = mac_index(smc,1) ;
drivers/net/fddi/skfp/smt.c
1382
mac_update_counter(smc) ;
drivers/net/fddi/skfp/smt.c
1387
st->st_t_req = smc->mib.m[MAC0].fddiMACT_Req ;
drivers/net/fddi/skfp/smt.c
1388
st->st_t_neg = smc->mib.m[MAC0].fddiMACT_Neg ;
drivers/net/fddi/skfp/smt.c
1389
st->st_t_max = smc->mib.m[MAC0].fddiMACT_Max ;
drivers/net/fddi/skfp/smt.c
1390
st->st_tvx_value = smc->mib.m[MAC0].fddiMACTvxValue ;
drivers/net/fddi/skfp/smt.c
1391
st->st_t_min = smc->mib.m[MAC0].fddiMACT_Min ;
drivers/net/fddi/skfp/smt.c
1393
st->st_sba = smc->mib.a[PATH0].fddiPATHSbaPayload ;
drivers/net/fddi/skfp/smt.c
1394
st->st_frame_ct = smc->mib.m[MAC0].fddiMACFrame_Ct ;
drivers/net/fddi/skfp/smt.c
1395
st->st_error_ct = smc->mib.m[MAC0].fddiMACError_Ct ;
drivers/net/fddi/skfp/smt.c
1396
st->st_lost_ct = smc->mib.m[MAC0].fddiMACLost_Ct ;
drivers/net/fddi/skfp/smt.c
1402
static void smt_fill_lem(struct s_smc *smc, struct smt_p_lem *lem, int phy)
drivers/net/fddi/skfp/smt.c
1406
mib = smc->y[phy].mib ;
drivers/net/fddi/skfp/smt.c
1410
lem->lem_phy_index = phy_index(smc,phy) ;
drivers/net/fddi/skfp/smt.c
1424
static void smt_fill_version(struct s_smc *smc, struct smt_p_version *vers)
drivers/net/fddi/skfp/smt.c
1426
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
1443
static void smt_fill_fsc(struct s_smc *smc, struct smt_p_fsc *fsc)
drivers/net/fddi/skfp/smt.c
1445
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
1463
static void smt_fill_mac_counter(struct s_smc *smc, struct smt_p_mac_counter *mc)
drivers/net/fddi/skfp/smt.c
1467
mc->mc_index = mac_index(smc,1) ;
drivers/net/fddi/skfp/smt.c
1468
mc->mc_receive_ct = smc->mib.m[MAC0].fddiMACCopied_Ct ;
drivers/net/fddi/skfp/smt.c
1469
mc->mc_transmit_ct = smc->mib.m[MAC0].fddiMACTransmit_Ct ;
drivers/net/fddi/skfp/smt.c
147
void smt_agent_init(struct s_smc *smc)
drivers/net/fddi/skfp/smt.c
1475
static void smt_fill_mac_fnc(struct s_smc *smc, struct smt_p_mac_fnc *fnc)
drivers/net/fddi/skfp/smt.c
1479
fnc->nc_index = mac_index(smc,1) ;
drivers/net/fddi/skfp/smt.c
1480
fnc->nc_counter = smc->mib.m[MAC0].fddiMACNotCopied_Ct ;
drivers/net/fddi/skfp/smt.c
1487
static void smt_fill_manufacturer(struct s_smc *smc,
drivers/net/fddi/skfp/smt.c
1492
(char *) smc->mib.fddiSMTManufacturerData,
drivers/net/fddi/skfp/smt.c
1499
static void smt_fill_user(struct s_smc *smc, struct smp_p_user *user)
drivers/net/fddi/skfp/smt.c
1503
(char *) smc->mib.fddiSMTUserData,
drivers/net/fddi/skfp/smt.c
1510
static void smt_fill_setcount(struct s_smc *smc, struct smt_p_setcount *setcount)
drivers/net/fddi/skfp/smt.c
1512
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
1514
setcount->count = smc->mib.fddiSMTSetCount.count ;
drivers/net/fddi/skfp/smt.c
1516
(char *)smc->mib.fddiSMTSetCount.timestamp,8) ;
drivers/net/fddi/skfp/smt.c
1522
static void smt_fill_echo(struct s_smc *smc, struct smt_p_echo *echo, u_long seed,
drivers/net/fddi/skfp/smt.c
1527
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
154
smc->mib.m[MAC0].fddiMACSMTAddress = smc->hw.fddi_home_addr ;
drivers/net/fddi/skfp/smt.c
1540
static void smt_clear_una_dna(struct s_smc *smc)
drivers/net/fddi/skfp/smt.c
1542
smc->mib.m[MAC0].fddiMACUpstreamNbr = SMT_Unknown ;
drivers/net/fddi/skfp/smt.c
1543
smc->mib.m[MAC0].fddiMACDownstreamNbr = SMT_Unknown ;
drivers/net/fddi/skfp/smt.c
1546
static void smt_clear_old_una_dna(struct s_smc *smc)
drivers/net/fddi/skfp/smt.c
1548
smc->mib.m[MAC0].fddiMACOldUpstreamNbr = SMT_Unknown ;
drivers/net/fddi/skfp/smt.c
1549
smc->mib.m[MAC0].fddiMACOldDownstreamNbr = SMT_Unknown ;
drivers/net/fddi/skfp/smt.c
1552
u_long smt_get_tid(struct s_smc *smc)
drivers/net/fddi/skfp/smt.c
1555
while ((tid = ++(smc->sm.smt_tid) ^ SMT_TID_MAGIC) == 0)
drivers/net/fddi/skfp/smt.c
159
smc->mib.fddiSMTStationId.sid_oem[0] = 0 ;
drivers/net/fddi/skfp/smt.c
160
smc->mib.fddiSMTStationId.sid_oem[1] = 0 ;
drivers/net/fddi/skfp/smt.c
161
driver_get_bia(smc,&smc->mib.fddiSMTStationId.sid_node) ;
drivers/net/fddi/skfp/smt.c
163
smc->mib.fddiSMTStationId.sid_node.a[i] =
drivers/net/fddi/skfp/smt.c
164
bitrev8(smc->mib.fddiSMTStationId.sid_node.a[i]);
drivers/net/fddi/skfp/smt.c
1642
int smt_check_para(struct s_smc *smc, struct smt_header *sm,
drivers/net/fddi/skfp/smt.c
1647
if (!sm_to_para(smc,sm,(int) *p)) {
drivers/net/fddi/skfp/smt.c
1656
void *sm_to_para(struct s_smc *smc, struct smt_header *sm, int para)
drivers/net/fddi/skfp/smt.c
166
smc->mib.fddiSMTManufacturerData[0] =
drivers/net/fddi/skfp/smt.c
1663
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
167
smc->mib.fddiSMTStationId.sid_node.a[0] ;
drivers/net/fddi/skfp/smt.c
168
smc->mib.fddiSMTManufacturerData[1] =
drivers/net/fddi/skfp/smt.c
169
smc->mib.fddiSMTStationId.sid_node.a[1] ;
drivers/net/fddi/skfp/smt.c
1691
void fddi_send_antc(struct s_smc *smc, struct fddi_addr *dest)
drivers/net/fddi/skfp/smt.c
1693
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
170
smc->mib.fddiSMTManufacturerData[2] =
drivers/net/fddi/skfp/smt.c
1709
smt->smt_source = smc->mib.m[MAC0].fddiMACSMTAddress ;
drivers/net/fddi/skfp/smt.c
171
smc->mib.fddiSMTStationId.sid_node.a[2] ;
drivers/net/fddi/skfp/smt.c
1710
smt_send_mbuf(smc,mb,FC_ASYNC_LLC) ;
drivers/net/fddi/skfp/smt.c
1718
static int mac_index(struct s_smc *smc, int mac)
drivers/net/fddi/skfp/smt.c
172
smc->sm.smt_tid = 0 ;
drivers/net/fddi/skfp/smt.c
1722
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
1725
return (smc->s.sas == SMT_SAS) ? 2 : 3;
drivers/net/fddi/skfp/smt.c
173
smc->mib.m[MAC0].fddiMACDupAddressTest = DA_NONE ;
drivers/net/fddi/skfp/smt.c
1732
static int phy_index(struct s_smc *smc, int phy)
drivers/net/fddi/skfp/smt.c
1734
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
174
smc->mib.m[MAC0].fddiMACUNDA_Flag = FALSE ;
drivers/net/fddi/skfp/smt.c
1741
static int mac_con_resource_index(struct s_smc *smc, int mac)
drivers/net/fddi/skfp/smt.c
1744
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
1746
return entity_to_index(smc, cem_get_downstream(smc, ENTITY_MAC));
drivers/net/fddi/skfp/smt.c
1749
switch (smc->mib.fddiSMTCF_State) {
drivers/net/fddi/skfp/smt.c
1758
return smc->s.sas == SMT_SAS ? 2 : 3;
drivers/net/fddi/skfp/smt.c
176
smt_clear_una_dna(smc) ;
drivers/net/fddi/skfp/smt.c
1765
static int phy_con_resource_index(struct s_smc *smc, int phy)
drivers/net/fddi/skfp/smt.c
1768
return entity_to_index(smc, cem_get_downstream(smc, ENTITY_PHY(phy))) ;
drivers/net/fddi/skfp/smt.c
177
smt_clear_old_una_dna(smc) ;
drivers/net/fddi/skfp/smt.c
1770
switch (smc->mib.fddiSMTCF_State) {
drivers/net/fddi/skfp/smt.c
1787
static int entity_to_index(struct s_smc *smc, int e)
drivers/net/fddi/skfp/smt.c
1790
return mac_index(smc, 1);
drivers/net/fddi/skfp/smt.c
1792
return phy_index(smc, e - ENTITY_PHY(0));
drivers/net/fddi/skfp/smt.c
180
smc->sm.pend[i] = 0 ;
drivers/net/fddi/skfp/smt.c
181
smc->sm.please_reconnect = 0 ;
drivers/net/fddi/skfp/smt.c
182
smc->sm.uniq_ticks = 0 ;
drivers/net/fddi/skfp/smt.c
1906
int smt_action(struct s_smc *smc, int class, int code, int index)
drivers/net/fddi/skfp/smt.c
1915
smc->mib.fddiSMTRemoteDisconnectFlag = FALSE ;
drivers/net/fddi/skfp/smt.c
1916
queue_event(smc,EVENT_ECM,EC_CONNECT) ;
drivers/net/fddi/skfp/smt.c
1919
queue_event(smc,EVENT_ECM,EC_DISCONNECT) ;
drivers/net/fddi/skfp/smt.c
1920
smc->mib.fddiSMTRemoteDisconnectFlag = TRUE ;
drivers/net/fddi/skfp/smt.c
1921
RS_SET(smc,RS_DISCONNECT) ;
drivers/net/fddi/skfp/smt.c
1922
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/smt.c
1924
smt_get_event_word(smc));
drivers/net/fddi/skfp/smt.c
1927
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/smt.c
1929
smt_get_event_word(smc));
drivers/net/fddi/skfp/smt.c
193
void smt_agent_task(struct s_smc *smc)
drivers/net/fddi/skfp/smt.c
1932
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/smt.c
1934
smt_get_event_word(smc));
drivers/net/fddi/skfp/smt.c
1937
if (smc->y[PA].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/smt.c
1938
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/smt.c
1939
queue_event(smc,EVENT_PCM+PA,PC_DISABLE) ;
drivers/net/fddi/skfp/smt.c
1943
if (smc->y[PB].pc_mode == PM_PEER) {
drivers/net/fddi/skfp/smt.c
1944
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/smt.c
1945
queue_event(smc,EVENT_PCM+PB,PC_DISABLE) ;
drivers/net/fddi/skfp/smt.c
195
smt_timer_start(smc,&smc->sm.smt_timer, (u_long)1000000L,
drivers/net/fddi/skfp/smt.c
1950
if (smc->mib.p[port].fddiPORTMy_Type != TM)
drivers/net/fddi/skfp/smt.c
1952
RS_SET(smc,RS_EVENT) ;
drivers/net/fddi/skfp/smt.c
1953
queue_event(smc,EVENT_PCM+port,PC_DISABLE) ;
drivers/net/fddi/skfp/smt.c
1980
queue_event(smc,EVENT_PCM+index,event) ;
drivers/net/fddi/skfp/smt.c
1992
static void hwm_conv_can(struct s_smc *smc, char *data, int len)
drivers/net/fddi/skfp/smt.c
1996
SK_UNUSED(smc) ;
drivers/net/fddi/skfp/smt.c
201
void smt_emulate_token_ct(struct s_smc *smc, int mac_index)
drivers/net/fddi/skfp/smt.c
208
count = ((time - smc->sm.last_tok_time[mac_index]) *
drivers/net/fddi/skfp/smt.c
217
if (smc->hw.mac_ring_is_up){
drivers/net/fddi/skfp/smt.c
218
smc->mib.m[mac_index].fddiMACToken_Ct += count;
drivers/net/fddi/skfp/smt.c
222
smc->sm.last_tok_time[mac_index] = time;
drivers/net/fddi/skfp/smt.c
228
void smt_event(struct s_smc *smc, int event)
drivers/net/fddi/skfp/smt.c
236
if (smc->sm.please_reconnect) {
drivers/net/fddi/skfp/smt.c
237
smc->sm.please_reconnect -- ;
drivers/net/fddi/skfp/smt.c
238
if (smc->sm.please_reconnect == 0) {
drivers/net/fddi/skfp/smt.c
240
queue_event(smc,EVENT_ECM,EC_CONNECT) ;
drivers/net/fddi/skfp/smt.c
253
smt_timer_poll(smc) ;
drivers/net/fddi/skfp/smt.c
254
smt_start_watchdog(smc) ;
drivers/net/fddi/skfp/smt.c
258
ess_timer_poll(smc) ;
drivers/net/fddi/skfp/smt.c
262
sba_timer_poll(smc) ;
drivers/net/fddi/skfp/smt.c
265
smt_srf_event(smc,0,0,0) ;
drivers/net/fddi/skfp/smt.c
271
if (time - smc->sm.smt_last_lem >= TICKS_PER_SECOND*8) {
drivers/net/fddi/skfp/smt.c
285
sm_lem_evaluate(smc) ;
drivers/net/fddi/skfp/smt.c
286
smc->sm.smt_last_lem = time ;
drivers/net/fddi/skfp/smt.c
292
mac_update_counter(smc) ;
drivers/net/fddi/skfp/smt.c
293
mib = smc->mib.m ;
drivers/net/fddi/skfp/smt.c
309
smt_srf_event(smc,SMT_COND_MAC_FRAME_ERROR,
drivers/net/fddi/skfp/smt.c
327
smt_srf_event(smc,SMT_COND_MAC_NOT_COPIED,
drivers/net/fddi/skfp/smt.c
343
phy = &smc->y[port] ;
drivers/net/fddi/skfp/smt.c
355
smt_srf_event(smc,SMT_COND_PORT_EB_ERROR,
drivers/net/fddi/skfp/smt.c
370
if (time - smc->sm.smt_last_notify >= (u_long)
drivers/net/fddi/skfp/smt.c
371
(smc->mib.fddiSMTTT_Notify * TICKS_PER_SECOND) ) {
drivers/net/fddi/skfp/smt.c
378
if (!smc->sm.pend[SMT_TID_NIF])
drivers/net/fddi/skfp/smt.c
379
smc->sm.pend[SMT_TID_NIF] = smt_get_tid(smc) ;
drivers/net/fddi/skfp/smt.c
380
smt_send_nif(smc,&fddi_broadcast, FC_SMT_NSA,
drivers/net/fddi/skfp/smt.c
381
smc->sm.pend[SMT_TID_NIF], SMT_REQUEST,0) ;
drivers/net/fddi/skfp/smt.c
382
smc->sm.smt_last_notify = time ;
drivers/net/fddi/skfp/smt.c
388
if (smc->sm.smt_tvu &&
drivers/net/fddi/skfp/smt.c
389
time - smc->sm.smt_tvu > 228*TICKS_PER_SECOND) {
drivers/net/fddi/skfp/smt.c
391
smc->sm.smt_tvu = 0 ;
drivers/net/fddi/skfp/smt.c
393
if (!is_equal(&smc->mib.m[MAC0].fddiMACUpstreamNbr,
drivers/net/fddi/skfp/smt.c
396
smc->mib.m[MAC0].fddiMACOldUpstreamNbr=
drivers/net/fddi/skfp/smt.c
397
smc->mib.m[MAC0].fddiMACUpstreamNbr ;
drivers/net/fddi/skfp/smt.c
399
smc->mib.m[MAC0].fddiMACUpstreamNbr = SMT_Unknown ;
drivers/net/fddi/skfp/smt.c
400
smc->mib.m[MAC0].fddiMACUNDA_Flag = FALSE ;
drivers/net/fddi/skfp/smt.c
407
update_dac(smc,0) ;
drivers/net/fddi/skfp/smt.c
408
smt_srf_event(smc, SMT_EVENT_MAC_NEIGHBOR_CHANGE,
drivers/net/fddi/skfp/smt.c
411
if (smc->sm.smt_tvd &&
drivers/net/fddi/skfp/smt.c
412
time - smc->sm.smt_tvd > 228*TICKS_PER_SECOND) {
drivers/net/fddi/skfp/smt.c
414
smc->sm.smt_tvd = 0 ;
drivers/net/fddi/skfp/smt.c
415
if (!is_equal(&smc->mib.m[MAC0].fddiMACDownstreamNbr,
drivers/net/fddi/skfp/smt.c
418
smc->mib.m[MAC0].fddiMACOldDownstreamNbr=
drivers/net/fddi/skfp/smt.c
419
smc->mib.m[MAC0].fddiMACDownstreamNbr ;
drivers/net/fddi/skfp/smt.c
421
smc->mib.m[MAC0].fddiMACDownstreamNbr = SMT_Unknown ;
drivers/net/fddi/skfp/smt.c
422
smt_srf_event(smc, SMT_EVENT_MAC_NEIGHBOR_CHANGE,
drivers/net/fddi/skfp/smt.c
434
if (time - smc->sm.last_tok_time[i] > 2*TICKS_PER_SECOND ){
drivers/net/fddi/skfp/smt.c
435
smt_emulate_token_ct( smc, i );
drivers/net/fddi/skfp/smt.c
440
smt_timer_start(smc,&smc->sm.smt_timer, (u_long)1000000L,
drivers/net/fddi/skfp/smt.c
460
void smt_received_pack(struct s_smc *smc, SMbuf *mb, int fs)
drivers/net/fddi/skfp/smt.c
475
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
479
smc->mib.m[MAC0].fddiMACSMTCopied_Ct++ ;
drivers/net/fddi/skfp/smt.c
482
hwm_conv_can(smc,(char *)sm,12) ;
drivers/net/fddi/skfp/smt.c
485
if (is_individual(&sm->smt_dest) && !is_my_addr(smc,&sm->smt_dest)) {
drivers/net/fddi/skfp/smt.c
486
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
491
if (is_my_addr(smc,&sm->smt_source) && !local) {
drivers/net/fddi/skfp/smt.c
492
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
510
smc->sba.sm = sm ;
drivers/net/fddi/skfp/smt.c
511
sba(smc,NIF) ;
drivers/net/fddi/skfp/smt.c
521
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
530
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
54
static int mac_index(struct s_smc *smc, int mac);
drivers/net/fddi/skfp/smt.c
55
static int phy_index(struct s_smc *smc, int phy);
drivers/net/fddi/skfp/smt.c
553
smt_send_rdf(smc,mb,m_fc(mb),SMT_RDF_VERSION,local) ;
drivers/net/fddi/skfp/smt.c
554
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
56
static int mac_con_resource_index(struct s_smc *smc, int mac);
drivers/net/fddi/skfp/smt.c
560
smt_send_rdf(smc,mb,m_fc(mb),SMT_RDF_LENGTH,local) ;
drivers/net/fddi/skfp/smt.c
561
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
566
if (smt_check_para(smc,sm,plist_nif)) {
drivers/net/fddi/skfp/smt.c
57
static int phy_con_resource_index(struct s_smc *smc, int phy);
drivers/net/fddi/skfp/smt.c
579
&smc->mib.m[MAC0].fddiMACUpstreamNbr,
drivers/net/fddi/skfp/smt.c
58
static void smt_send_rdf(struct s_smc *smc, SMbuf *rej, int fc, int reason,
drivers/net/fddi/skfp/smt.c
583
if (!is_equal(&smc->mib.m[MAC0].
drivers/net/fddi/skfp/smt.c
586
smc->mib.m[MAC0].fddiMACOldUpstreamNbr=
drivers/net/fddi/skfp/smt.c
587
smc->mib.m[MAC0].fddiMACUpstreamNbr ;
drivers/net/fddi/skfp/smt.c
590
smc->mib.m[MAC0].fddiMACUpstreamNbr =
drivers/net/fddi/skfp/smt.c
592
smt_srf_event(smc,
drivers/net/fddi/skfp/smt.c
595
smt_echo_test(smc,0) ;
drivers/net/fddi/skfp/smt.c
597
smc->sm.smt_tvu = smt_get_time() ;
drivers/net/fddi/skfp/smt.c
599
sm_to_para(smc,sm,SMT_P_STATE) ;
drivers/net/fddi/skfp/smt.c
60
static void smt_send_nif(struct s_smc *smc, const struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
601
smc->mib.m[MAC0].fddiMACUNDA_Flag =
drivers/net/fddi/skfp/smt.c
604
update_dac(smc,1) ;
drivers/net/fddi/skfp/smt.c
613
smt_send_nif(smc,&sm->smt_source,
drivers/net/fddi/skfp/smt.c
62
static void smt_send_ecf(struct s_smc *smc, struct fddi_addr *dest, int fc,
drivers/net/fddi/skfp/smt.c
623
smc->sm.pend[SMT_TID_NIF] = 0 ;
drivers/net/fddi/skfp/smt.c
625
smc->mib.m[MAC0].fddiMACDupAddressTest =
drivers/net/fddi/skfp/smt.c
627
smc->r.dup_addr_test = DA_FAILED ;
drivers/net/fddi/skfp/smt.c
628
queue_event(smc,EVENT_RMT,RM_DUP_ADDR) ;
drivers/net/fddi/skfp/smt.c
629
smc->mib.m[MAC0].fddiMACDA_Flag = TRUE ;
drivers/net/fddi/skfp/smt.c
630
update_dac(smc,1) ;
drivers/net/fddi/skfp/smt.c
633
if (sm->smt_tid == smc->sm.pend[SMT_TID_NIF]) {
drivers/net/fddi/skfp/smt.c
634
smc->sm.pend[SMT_TID_NIF] = 0 ;
drivers/net/fddi/skfp/smt.c
637
&smc->mib.m[MAC0].fddiMACDownstreamNbr,
drivers/net/fddi/skfp/smt.c
64
static void smt_echo_test(struct s_smc *smc, int dna);
drivers/net/fddi/skfp/smt.c
640
if (!is_equal(&smc->mib.m[MAC0].
drivers/net/fddi/skfp/smt.c
643
smc->mib.m[MAC0].fddiMACOldDownstreamNbr =
drivers/net/fddi/skfp/smt.c
644
smc->mib.m[MAC0].fddiMACDownstreamNbr ;
drivers/net/fddi/skfp/smt.c
647
smc->mib.m[MAC0].fddiMACDownstreamNbr =
drivers/net/fddi/skfp/smt.c
649
smt_srf_event(smc,
drivers/net/fddi/skfp/smt.c
65
static void smt_send_sif_config(struct s_smc *smc, struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
652
smt_echo_test(smc,1) ;
drivers/net/fddi/skfp/smt.c
654
smc->mib.m[MAC0].fddiMACDA_Flag = FALSE ;
drivers/net/fddi/skfp/smt.c
655
update_dac(smc,1) ;
drivers/net/fddi/skfp/smt.c
656
smc->sm.smt_tvd = smt_get_time() ;
drivers/net/fddi/skfp/smt.c
657
smc->mib.m[MAC0].fddiMACDupAddressTest =
drivers/net/fddi/skfp/smt.c
659
if (smc->r.dup_addr_test != DA_PASSED) {
drivers/net/fddi/skfp/smt.c
660
smc->r.dup_addr_test = DA_PASSED ;
drivers/net/fddi/skfp/smt.c
661
queue_event(smc,EVENT_RMT,RM_DUP_ADDR) ;
drivers/net/fddi/skfp/smt.c
665
smc->sm.pend[SMT_TID_NIF_TEST]) {
drivers/net/fddi/skfp/smt.c
67
static void smt_send_sif_operation(struct s_smc *smc, struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
670
smc->sm.pend[SMT_TID_NIF], sm->smt_tid);
drivers/net/fddi/skfp/smt.c
683
smt_send_sif_config(smc,&sm->smt_source,sm->smt_tid,local) ;
drivers/net/fddi/skfp/smt.c
690
smt_send_sif_operation(smc,&sm->smt_source,sm->smt_tid,local) ;
drivers/net/fddi/skfp/smt.c
695
smc->mib.priv.fddiPRIVECF_Reply_Rx++ ;
drivers/net/fddi/skfp/smt.c
698
if (sm_to_para(smc,sm,SMT_P_ECHODATA) == NULL) {
drivers/net/fddi/skfp/smt.c
702
if (sm->smt_tid == smc->sm.pend[SMT_TID_ECF]) {
drivers/net/fddi/skfp/smt.c
705
else if (sm->smt_tid == smc->sm.pend[SMT_TID_ECF_UNA]) {
drivers/net/fddi/skfp/smt.c
708
else if (sm->smt_tid == smc->sm.pend[SMT_TID_ECF_DNA]) {
drivers/net/fddi/skfp/smt.c
713
smc->sm.pend[SMT_TID_ECF],
drivers/net/fddi/skfp/smt.c
718
smc->mib.priv.fddiPRIVECF_Req_Rx++ ;
drivers/net/fddi/skfp/smt.c
720
if (sm->smt_len && !sm_to_para(smc,sm,SMT_P_ECHODATA)) {
drivers/net/fddi/skfp/smt.c
722
smt_send_rdf(smc,mb,m_fc(mb),SMT_RDF_LENGTH,
drivers/net/fddi/skfp/smt.c
73
static void smt_fill_una(struct s_smc *smc, struct smt_p_una *una);
drivers/net/fddi/skfp/smt.c
732
dump_smt(smc,sm,"ECF REPLY") ;
drivers/net/fddi/skfp/smt.c
733
smc->mib.priv.fddiPRIVECF_Reply_Tx++ ;
drivers/net/fddi/skfp/smt.c
734
smt_send_frame(smc,mb,FC_SMT_INFO,local) ;
drivers/net/fddi/skfp/smt.c
74
static void smt_fill_sde(struct s_smc *smc, struct smt_p_sde *sde);
drivers/net/fddi/skfp/smt.c
746
fs = ess_raf_received_pack(smc,mb,sm,fs) ;
drivers/net/fddi/skfp/smt.c
75
static void smt_fill_state(struct s_smc *smc, struct smt_p_state *state);
drivers/net/fddi/skfp/smt.c
751
sba_raf_received_pack(smc,sm,fs) ;
drivers/net/fddi/skfp/smt.c
755
smc->mib.priv.fddiPRIVRDF_Rx++ ;
drivers/net/fddi/skfp/smt.c
76
static void smt_fill_timestamp(struct s_smc *smc, struct smt_p_timestamp *ts);
drivers/net/fddi/skfp/smt.c
760
smt_send_rdf(smc,mb,m_fc(mb),SMT_RDF_CLASS,local) ;
drivers/net/fddi/skfp/smt.c
769
smc->mib.priv.fddiPRIVPMF_Get_Rx++ ;
drivers/net/fddi/skfp/smt.c
77
static void smt_fill_policy(struct s_smc *smc, struct smt_p_policy *policy);
drivers/net/fddi/skfp/smt.c
771
smc->mib.priv.fddiPRIVPMF_Set_Rx++ ;
drivers/net/fddi/skfp/smt.c
78
static void smt_fill_latency(struct s_smc *smc, struct smt_p_latency *latency);
drivers/net/fddi/skfp/smt.c
780
smt_pmf_received_pack(smc,mb, local) ;
drivers/net/fddi/skfp/smt.c
783
dump_smt(smc,sm,"SRF received") ;
drivers/net/fddi/skfp/smt.c
79
static void smt_fill_neighbor(struct s_smc *smc, struct smt_p_neighbor *neighbor);
drivers/net/fddi/skfp/smt.c
796
smt_send_rdf(smc,mb,m_fc(mb),SMT_RDF_CLASS,local) ;
drivers/net/fddi/skfp/smt.c
80
static int smt_fill_path(struct s_smc *smc, struct smt_p_path *path);
drivers/net/fddi/skfp/smt.c
803
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
806
static void update_dac(struct s_smc *smc, int report)
drivers/net/fddi/skfp/smt.c
81
static void smt_fill_mac_status(struct s_smc *smc, struct smt_p_mac_status *st);
drivers/net/fddi/skfp/smt.c
810
cond = ( smc->mib.m[MAC0].fddiMACUNDA_Flag |
drivers/net/fddi/skfp/smt.c
811
smc->mib.m[MAC0].fddiMACDA_Flag) != 0 ;
drivers/net/fddi/skfp/smt.c
812
if (report && (cond != smc->mib.m[MAC0].fddiMACDuplicateAddressCond))
drivers/net/fddi/skfp/smt.c
813
smt_srf_event(smc, SMT_COND_MAC_DUP_ADDR,INDEX_MAC,cond) ;
drivers/net/fddi/skfp/smt.c
815
smc->mib.m[MAC0].fddiMACDuplicateAddressCond = cond ;
drivers/net/fddi/skfp/smt.c
82
static void smt_fill_lem(struct s_smc *smc, struct smt_p_lem *lem, int phy);
drivers/net/fddi/skfp/smt.c
824
void smt_send_frame(struct s_smc *smc, SMbuf *mb, int fc, int local)
drivers/net/fddi/skfp/smt.c
83
static void smt_fill_version(struct s_smc *smc, struct smt_p_version *vers);
drivers/net/fddi/skfp/smt.c
830
if (!smc->r.sm_ma_avail && !local) {
drivers/net/fddi/skfp/smt.c
831
smt_free_mbuf(smc,mb) ;
drivers/net/fddi/skfp/smt.c
835
sm->smt_source = smc->mib.m[MAC0].fddiMACSMTAddress ;
drivers/net/fddi/skfp/smt.c
836
sm->smt_sid = smc->mib.fddiSMTStationId ;
drivers/net/fddi/skfp/smt.c
839
hwm_conv_can(smc,(char *)sm,12) ; /* convert SA and DA */
drivers/net/fddi/skfp/smt.c
84
static void smt_fill_fsc(struct s_smc *smc, struct smt_p_fsc *fsc);
drivers/net/fddi/skfp/smt.c
840
smc->mib.m[MAC0].fddiMACSMTTransmit_Ct++ ;
drivers/net/fddi/skfp/smt.c
841
smt_send_mbuf(smc,mb,local ? FC_SMT_LOC : fc) ;
drivers/net/fddi/skfp/smt.c
847
static void smt_send_rdf(struct s_smc *smc, SMbuf *rej, int fc, int reason,
drivers/net/fddi/skfp/smt.c
85
static void smt_fill_mac_counter(struct s_smc *smc, struct smt_p_mac_counter *mc);
drivers/net/fddi/skfp/smt.c
86
static void smt_fill_mac_fnc(struct s_smc *smc, struct smt_p_mac_fnc *fnc);
drivers/net/fddi/skfp/smt.c
87
static void smt_fill_manufacturer(struct s_smc *smc,
drivers/net/fddi/skfp/smt.c
873
if (!(mb=smt_build_frame(smc,SMT_RDF,SMT_REPLY,sizeof(struct smt_rdf))))
drivers/net/fddi/skfp/smt.c
89
static void smt_fill_user(struct s_smc *smc, struct smp_p_user *user);
drivers/net/fddi/skfp/smt.c
90
static void smt_fill_setcount(struct s_smc *smc, struct smt_p_setcount *setcount);
drivers/net/fddi/skfp/smt.c
91
static void smt_fill_echo(struct s_smc *smc, struct smt_p_echo *echo, u_long seed,
drivers/net/fddi/skfp/smt.c
916
dump_smt(smc,(struct smt_header *)rdf,"RDF") ;
drivers/net/fddi/skfp/smt.c
917
smc->mib.priv.fddiPRIVRDF_Tx++ ;
drivers/net/fddi/skfp/smt.c
918
smt_send_frame(smc,mb,FC_SMT_INFO,local) ;
drivers/net/fddi/skfp/smt.c
924
static void smt_send_nif(struct s_smc *smc, const struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
934
if (!(mb = smt_build_frame(smc,SMT_NIF,type,sizeof(struct smt_nif))))
drivers/net/fddi/skfp/smt.c
937
smt_fill_una(smc,&nif->una) ; /* set UNA */
drivers/net/fddi/skfp/smt.c
938
smt_fill_sde(smc,&nif->sde) ; /* set station descriptor */
drivers/net/fddi/skfp/smt.c
939
smt_fill_state(smc,&nif->state) ; /* set state information */
drivers/net/fddi/skfp/smt.c
94
static void smt_clear_una_dna(struct s_smc *smc);
drivers/net/fddi/skfp/smt.c
941
smt_fill_fsc(smc,&nif->fsc) ; /* set frame status cap. */
drivers/net/fddi/skfp/smt.c
945
dump_smt(smc,(struct smt_header *)nif,"NIF") ;
drivers/net/fddi/skfp/smt.c
946
smt_send_frame(smc,mb,fc,local) ;
drivers/net/fddi/skfp/smt.c
95
static void smt_clear_old_una_dna(struct s_smc *smc);
drivers/net/fddi/skfp/smt.c
953
static void smt_send_nif_request(struct s_smc *smc, struct fddi_addr *dest)
drivers/net/fddi/skfp/smt.c
955
smc->sm.pend[SMT_TID_NIF_TEST] = smt_get_tid(smc) ;
drivers/net/fddi/skfp/smt.c
956
smt_send_nif(smc,dest, FC_SMT_INFO, smc->sm.pend[SMT_TID_NIF_TEST],
drivers/net/fddi/skfp/smt.c
963
static void smt_send_ecf_request(struct s_smc *smc, struct fddi_addr *dest,
drivers/net/fddi/skfp/smt.c
966
smc->sm.pend[SMT_TID_ECF] = smt_get_tid(smc) ;
drivers/net/fddi/skfp/smt.c
967
smt_send_ecf(smc,dest, FC_SMT_INFO, smc->sm.pend[SMT_TID_ECF],
drivers/net/fddi/skfp/smt.c
975
static void smt_echo_test(struct s_smc *smc, int dna)
drivers/net/fddi/skfp/smt.c
979
smc->sm.pend[dna ? SMT_TID_ECF_DNA : SMT_TID_ECF_UNA] =
drivers/net/fddi/skfp/smt.c
980
tid = smt_get_tid(smc) ;
drivers/net/fddi/skfp/smt.c
981
smt_send_ecf(smc, dna ?
drivers/net/fddi/skfp/smt.c
982
&smc->mib.m[MAC0].fddiMACDownstreamNbr :
drivers/net/fddi/skfp/smt.c
983
&smc->mib.m[MAC0].fddiMACUpstreamNbr,
drivers/net/fddi/skfp/smt.c
99
static void update_dac(struct s_smc *smc, int report);
drivers/net/fddi/skfp/smt.c
990
static void smt_send_ecf(struct s_smc *smc, struct fddi_addr *dest, int fc,
drivers/net/fddi/skfp/smtdef.c
125
smc->ess.sync_bw_available = FALSE ;
drivers/net/fddi/skfp/smtdef.c
126
smc->mib.fddiESSPayload = 0 ;
drivers/net/fddi/skfp/smtdef.c
127
smc->mib.fddiESSOverhead = 0 ;
drivers/net/fddi/skfp/smtdef.c
128
smc->mib.fddiESSMaxTNeg = (u_long)(- MS2BCLK(25)) ;
drivers/net/fddi/skfp/smtdef.c
129
smc->mib.fddiESSMinSegmentSize = 1 ;
drivers/net/fddi/skfp/smtdef.c
130
smc->mib.fddiESSCategory = SB_STATIC ;
drivers/net/fddi/skfp/smtdef.c
131
smc->mib.fddiESSSynchTxMode = FALSE ;
drivers/net/fddi/skfp/smtdef.c
132
smc->ess.raf_act_timer_poll = FALSE ;
drivers/net/fddi/skfp/smtdef.c
133
smc->ess.timer_count = 7 ; /* first RAF alc req after 3s */
drivers/net/fddi/skfp/smtdef.c
135
smc->ess.local_sba_active = FALSE ;
drivers/net/fddi/skfp/smtdef.c
136
smc->ess.sba_reply_pend = NULL ;
drivers/net/fddi/skfp/smtdef.c
139
smt_init_sba(smc,level) ;
drivers/net/fddi/skfp/smtdef.c
144
smc->hw.pci_fix_value = 0 ;
drivers/net/fddi/skfp/smtdef.c
156
static void smt_init_mib(struct s_smc *smc, int level)
drivers/net/fddi/skfp/smtdef.c
163
mib = &smc->mib ;
drivers/net/fddi/skfp/smtdef.c
169
memset(((char *)smc)+
drivers/net/fddi/skfp/smtdef.c
252
smc->y[port].mib = NULL;
drivers/net/fddi/skfp/smtdef.c
273
(void) smt_set_mac_opvalues(smc) ;
drivers/net/fddi/skfp/smtdef.c
276
int smt_set_mac_opvalues(struct s_smc *smc)
drivers/net/fddi/skfp/smtdef.c
281
st = set_min_max(1,smc->mib.m[MAC0].fddiMACTvxValueMIB,
drivers/net/fddi/skfp/smtdef.c
282
smc->mib.a[PATH0].fddiPATHTVXLowerBound,
drivers/net/fddi/skfp/smtdef.c
283
&smc->mib.m[MAC0].fddiMACTvxValue) ;
drivers/net/fddi/skfp/smtdef.c
284
st |= set_min_max(0,smc->mib.m[MAC0].fddiMACT_MaxMIB,
drivers/net/fddi/skfp/smtdef.c
285
smc->mib.a[PATH0].fddiPATHT_MaxLowerBound,
drivers/net/fddi/skfp/smtdef.c
286
&smc->mib.m[MAC0].fddiMACT_Max) ;
drivers/net/fddi/skfp/smtdef.c
287
st |= (st2 = set_min_max(0,smc->mib.m[MAC0].fddiMACT_ReqMIB,
drivers/net/fddi/skfp/smtdef.c
288
smc->mib.a[PATH0].fddiPATHMaxT_Req,
drivers/net/fddi/skfp/smtdef.c
289
&smc->mib.m[MAC0].fddiMACT_Req)) ;
drivers/net/fddi/skfp/smtdef.c
294
AIX_EVENT(smc, (u_long) FDDI_RING_STATUS, (u_long)
drivers/net/fddi/skfp/smtdef.c
296
smt_get_event_word(smc));
drivers/net/fddi/skfp/smtdef.c
301
void smt_fixup_mib(struct s_smc *smc)
drivers/net/fddi/skfp/smtdef.c
304
switch (smc->s.sas) {
drivers/net/fddi/skfp/smtdef.c
306
smc->mib.fddiSMTNonMaster_Ct = 1 ;
drivers/net/fddi/skfp/smtdef.c
309
smc->mib.fddiSMTNonMaster_Ct = 2 ;
drivers/net/fddi/skfp/smtdef.c
312
smc->mib.fddiSMTNonMaster_Ct = 0 ;
drivers/net/fddi/skfp/smtdef.c
315
smc->mib.fddiSMTMaster_Ct = NUMPHYS - smc->mib.fddiSMTNonMaster_Ct ;
drivers/net/fddi/skfp/smtdef.c
317
switch (smc->s.sas) {
drivers/net/fddi/skfp/smtdef.c
319
smc->mib.fddiSMTNonMaster_Ct = 1 ;
drivers/net/fddi/skfp/smtdef.c
322
smc->mib.fddiSMTNonMaster_Ct = 2 ;
drivers/net/fddi/skfp/smtdef.c
325
smc->mib.fddiSMTMaster_Ct = 0 ;
drivers/net/fddi/skfp/smtdef.c
67
void smt_reset_defaults(struct s_smc *smc, int level);
drivers/net/fddi/skfp/smtdef.c
68
static void smt_init_mib(struct s_smc *smc, int level);
drivers/net/fddi/skfp/smtdef.c
74
void smt_reset_defaults(struct s_smc *smc, int level)
drivers/net/fddi/skfp/smtdef.c
81
smt_init_mib(smc,level) ;
drivers/net/fddi/skfp/smtdef.c
83
smc->os.smc_version = SMC_VERSION ;
drivers/net/fddi/skfp/smtdef.c
86
smc->sm.last_tok_time[i] = smt_boot_time ;
drivers/net/fddi/skfp/smtdef.c
87
smt = &smc->s ;
drivers/net/fddi/skfp/smtinit.c
100
ecm_init(smc) ; /* ECM state machine */
drivers/net/fddi/skfp/smtinit.c
101
cfm_init(smc) ; /* CFM state machine */
drivers/net/fddi/skfp/smtinit.c
102
rmt_init(smc) ; /* RMT state machine */
drivers/net/fddi/skfp/smtinit.c
105
pcm(smc,p,0) ; /* PCM A state machine */
drivers/net/fddi/skfp/smtinit.c
107
ecm(smc,0) ; /* ECM state machine */
drivers/net/fddi/skfp/smtinit.c
108
cfm(smc,0) ; /* CFM state machine */
drivers/net/fddi/skfp/smtinit.c
109
rmt(smc,0) ; /* RMT state machine */
drivers/net/fddi/skfp/smtinit.c
111
smt_agent_task(smc) ; /* NIF FSM etc */
drivers/net/fddi/skfp/smtinit.c
113
PNMI_INIT(smc) ; /* PNMI initialization */
drivers/net/fddi/skfp/smtinit.c
22
void init_fddi_driver(struct s_smc *smc, const u_char *mac_addr);
drivers/net/fddi/skfp/smtinit.c
30
#define OEMID(smc,i) oem_id[i]
drivers/net/fddi/skfp/smtinit.c
33
#define OEMID(smc,i) smc->hw.oem_id->oi_mark[i]
drivers/net/fddi/skfp/smtinit.c
43
static void set_oem_spec_val(struct s_smc *smc)
drivers/net/fddi/skfp/smtinit.c
47
mib = &smc->mib ;
drivers/net/fddi/skfp/smtinit.c
52
if (OEMID(smc,0) == 'I') {
drivers/net/fddi/skfp/smtinit.c
60
int init_smt(struct s_smc *smc, const u_char *mac_addr)
drivers/net/fddi/skfp/smtinit.c
84
smc->y[p].mib = & smc->mib.p[p] ;
drivers/net/fddi/skfp/smtinit.c
87
set_oem_spec_val(smc) ;
drivers/net/fddi/skfp/smtinit.c
88
(void) smt_set_mac_opvalues(smc) ;
drivers/net/fddi/skfp/smtinit.c
89
init_fddi_driver(smc,mac_addr) ; /* HW driver */
drivers/net/fddi/skfp/smtinit.c
90
smt_fixup_mib(smc) ; /* update values that depend on s.sas */
drivers/net/fddi/skfp/smtinit.c
92
ev_init(smc) ; /* event queue */
drivers/net/fddi/skfp/smtinit.c
94
smt_init_evc(smc) ; /* evcs in MIB */
drivers/net/fddi/skfp/smtinit.c
96
smt_timer_init(smc) ; /* timer package */
drivers/net/fddi/skfp/smtinit.c
97
smt_agent_init(smc) ; /* SMT frame manager */
drivers/net/fddi/skfp/smtinit.c
99
pcm_init(smc) ; /* PCM state machine */
drivers/net/fddi/skfp/smttimer.c
102
void smt_force_irq(struct s_smc *smc)
drivers/net/fddi/skfp/smttimer.c
104
smt_timer_start(smc,&smc->t.st_fast,32L, EV_TOKEN(EVENT_SMT,SM_FAST));
drivers/net/fddi/skfp/smttimer.c
107
void smt_timer_done(struct s_smc *smc)
drivers/net/fddi/skfp/smttimer.c
109
timer_done(smc,1) ;
drivers/net/fddi/skfp/smttimer.c
112
static void timer_done(struct s_smc *smc, int restart)
drivers/net/fddi/skfp/smttimer.c
120
delta = hwt_read(smc) ;
drivers/net/fddi/skfp/smttimer.c
121
last = &smc->t.st_queue ;
drivers/net/fddi/skfp/smttimer.c
122
tm = smc->t.st_queue ;
drivers/net/fddi/skfp/smttimer.c
137
next = smc->t.st_queue ;
drivers/net/fddi/skfp/smttimer.c
138
smc->t.st_queue = tm ;
drivers/net/fddi/skfp/smttimer.c
142
timer_event(smc,tm->tm_token) ;
drivers/net/fddi/skfp/smttimer.c
145
if (restart && smc->t.st_queue)
drivers/net/fddi/skfp/smttimer.c
146
hwt_start(smc,smc->t.st_queue->tm_delta) ;
drivers/net/fddi/skfp/smttimer.c
21
static void timer_done(struct s_smc *smc, int restart);
drivers/net/fddi/skfp/smttimer.c
23
void smt_timer_init(struct s_smc *smc)
drivers/net/fddi/skfp/smttimer.c
25
smc->t.st_queue = NULL;
drivers/net/fddi/skfp/smttimer.c
26
smc->t.st_fast.tm_active = FALSE ;
drivers/net/fddi/skfp/smttimer.c
27
smc->t.st_fast.tm_next = NULL;
drivers/net/fddi/skfp/smttimer.c
28
hwt_init(smc) ;
drivers/net/fddi/skfp/smttimer.c
31
void smt_timer_stop(struct s_smc *smc, struct smt_timer *timer)
drivers/net/fddi/skfp/smttimer.c
40
if (smc->t.st_queue == timer && !timer->tm_next) {
drivers/net/fddi/skfp/smttimer.c
41
hwt_stop(smc) ;
drivers/net/fddi/skfp/smttimer.c
43
for (prev = &smc->t.st_queue ; (tm = *prev) ; prev = &tm->tm_next ) {
drivers/net/fddi/skfp/smttimer.c
54
void smt_timer_start(struct s_smc *smc, struct smt_timer *timer, u_long time,
drivers/net/fddi/skfp/smttimer.c
64
smt_timer_stop(smc,timer) ;
drivers/net/fddi/skfp/smttimer.c
65
timer->tm_smc = smc ;
drivers/net/fddi/skfp/smttimer.c
68
if (!smc->t.st_queue) {
drivers/net/fddi/skfp/smttimer.c
69
smc->t.st_queue = timer ;
drivers/net/fddi/skfp/smttimer.c
72
hwt_start(smc,time) ;
drivers/net/fddi/skfp/smttimer.c
78
timer_done(smc,0) ;
drivers/net/fddi/skfp/smttimer.c
84
for (prev = &smc->t.st_queue ; (tm = *prev) ; prev = &tm->tm_next ) {
drivers/net/fddi/skfp/smttimer.c
99
hwt_start(smc,smc->t.st_queue->tm_delta) ;
drivers/net/fddi/skfp/srf.c
100
smc->evcs[1].evc_cond_state =
drivers/net/fddi/skfp/srf.c
101
&smc->mib.m[MAC0].fddiMACDuplicateAddressCond ;
drivers/net/fddi/skfp/srf.c
102
smc->evcs[2].evc_cond_state =
drivers/net/fddi/skfp/srf.c
103
&smc->mib.m[MAC0].fddiMACFrameErrorFlag ;
drivers/net/fddi/skfp/srf.c
104
smc->evcs[3].evc_cond_state =
drivers/net/fddi/skfp/srf.c
105
&smc->mib.m[MAC0].fddiMACNotCopiedFlag ;
drivers/net/fddi/skfp/srf.c
110
smc->evcs[4].evc_multiple = &smc->mib.m[MAC0].fddiMACMultiple_N ;
drivers/net/fddi/skfp/srf.c
111
smc->evcs[5].evc_multiple = &smc->mib.m[MAC0].fddiMACMultiple_P ;
drivers/net/fddi/skfp/srf.c
118
smc->evcs[offset + 0*NUMPHYS].evc_cond_state =
drivers/net/fddi/skfp/srf.c
119
&smc->mib.p[i].fddiPORTLerFlag ;
drivers/net/fddi/skfp/srf.c
120
smc->evcs[offset + 1*NUMPHYS].evc_cond_state =
drivers/net/fddi/skfp/srf.c
121
&smc->mib.p[i].fddiPORTEB_Condition ;
drivers/net/fddi/skfp/srf.c
126
smc->evcs[offset + 2*NUMPHYS].evc_multiple =
drivers/net/fddi/skfp/srf.c
127
&smc->mib.p[i].fddiPORTMultiple_U ;
drivers/net/fddi/skfp/srf.c
128
smc->evcs[offset + 3*NUMPHYS].evc_multiple =
drivers/net/fddi/skfp/srf.c
129
&smc->mib.p[i].fddiPORTMultiple_P ;
drivers/net/fddi/skfp/srf.c
133
for (i = 0, evc = smc->evcs ; i < MAX_EVCS ; i++, evc++) {
drivers/net/fddi/skfp/srf.c
136
SMT_PANIC(smc,SMT_E0128, SMT_E0128_MSG) ;
drivers/net/fddi/skfp/srf.c
142
SMT_PANIC(smc,SMT_E0129, SMT_E0129_MSG) ;
drivers/net/fddi/skfp/srf.c
148
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
149
smc->srf.sr_state = SR0_WAIT ;
drivers/net/fddi/skfp/srf.c
152
static struct s_srf_evc *smt_get_evc(struct s_smc *smc, int code, int index)
drivers/net/fddi/skfp/srf.c
157
for (i = 0, evc = smc->evcs ; i < MAX_EVCS ; i++, evc++) {
drivers/net/fddi/skfp/srf.c
176
void smt_srf_event(struct s_smc *smc, int code, int index, int cond)
drivers/net/fddi/skfp/srf.c
186
RS_SET(smc,RS_DUPADDR) ;
drivers/net/fddi/skfp/srf.c
192
if (!(evc = smt_get_evc(smc,code,index))) {
drivers/net/fddi/skfp/srf.c
207
smt_set_timestamp(smc,smc->mib.fddiSMTTransitionTimeStamp) ;
drivers/net/fddi/skfp/srf.c
213
smc->srf.any_report = TRUE ;
drivers/net/fddi/skfp/srf.c
229
smc->srf.any_report = TRUE ;
drivers/net/fddi/skfp/srf.c
233
snmp_srf_event(smc,evc) ;
drivers/net/fddi/skfp/srf.c
236
tsr = smt_get_time() - smc->srf.TSR ;
drivers/net/fddi/skfp/srf.c
238
switch (smc->srf.sr_state) {
drivers/net/fddi/skfp/srf.c
242
smc->srf.SRThreshold = THRESHOLD_2 ;
drivers/net/fddi/skfp/srf.c
243
smc->srf.sr_state = SR1_HOLDOFF ;
drivers/net/fddi/skfp/srf.c
248
smc->srf.sr_state = SR1_HOLDOFF ;
drivers/net/fddi/skfp/srf.c
253
smc->srf.sr_state = SR1_HOLDOFF ;
drivers/net/fddi/skfp/srf.c
258
smc->srf.SRThreshold = THRESHOLD_2 ;
drivers/net/fddi/skfp/srf.c
259
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
260
smt_send_srf(smc) ;
drivers/net/fddi/skfp/srf.c
265
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
266
smt_send_srf(smc) ;
drivers/net/fddi/skfp/srf.c
271
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
272
smt_send_srf(smc) ;
drivers/net/fddi/skfp/srf.c
276
if (smc->srf.any_report && (u_long) tsr >=
drivers/net/fddi/skfp/srf.c
277
smc->srf.SRThreshold) {
drivers/net/fddi/skfp/srf.c
278
smc->srf.SRThreshold *= 2 ;
drivers/net/fddi/skfp/srf.c
279
if (smc->srf.SRThreshold > THRESHOLD_32)
drivers/net/fddi/skfp/srf.c
280
smc->srf.SRThreshold = THRESHOLD_32 ;
drivers/net/fddi/skfp/srf.c
281
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
282
smt_send_srf(smc) ;
drivers/net/fddi/skfp/srf.c
286
if (!smc->mib.fddiSMTStatRptPolicy) {
drivers/net/fddi/skfp/srf.c
287
smc->srf.sr_state = SR2_DISABLED ;
drivers/net/fddi/skfp/srf.c
294
smc->srf.sr_state = SR0_WAIT ;
drivers/net/fddi/skfp/srf.c
295
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
296
smt_send_srf(smc) ;
drivers/net/fddi/skfp/srf.c
301
smc->srf.SRThreshold = THRESHOLD_2 ;
drivers/net/fddi/skfp/srf.c
307
if (!smc->mib.fddiSMTStatRptPolicy) {
drivers/net/fddi/skfp/srf.c
308
smc->srf.sr_state = SR2_DISABLED ;
drivers/net/fddi/skfp/srf.c
313
if (smc->mib.fddiSMTStatRptPolicy) {
drivers/net/fddi/skfp/srf.c
314
smc->srf.sr_state = SR0_WAIT ;
drivers/net/fddi/skfp/srf.c
315
smc->srf.TSR = smt_get_time() ;
drivers/net/fddi/skfp/srf.c
316
smc->srf.SRThreshold = THRESHOLD_2 ;
drivers/net/fddi/skfp/srf.c
317
clear_all_rep(smc) ;
drivers/net/fddi/skfp/srf.c
32
static void clear_all_rep(struct s_smc *smc);
drivers/net/fddi/skfp/srf.c
324
static void clear_all_rep(struct s_smc *smc)
drivers/net/fddi/skfp/srf.c
329
for (i = 0, evc = smc->evcs ; i < MAX_EVCS ; i++, evc++) {
drivers/net/fddi/skfp/srf.c
33
static void clear_reported(struct s_smc *smc);
drivers/net/fddi/skfp/srf.c
334
smc->srf.any_report = FALSE ;
drivers/net/fddi/skfp/srf.c
337
static void clear_reported(struct s_smc *smc)
drivers/net/fddi/skfp/srf.c
34
static void smt_send_srf(struct s_smc *smc);
drivers/net/fddi/skfp/srf.c
342
smc->srf.any_report = FALSE ;
drivers/net/fddi/skfp/srf.c
343
for (i = 0, evc = smc->evcs ; i < MAX_EVCS ; i++, evc++) {
drivers/net/fddi/skfp/srf.c
348
smc->srf.any_report = TRUE ;
drivers/net/fddi/skfp/srf.c
35
static struct s_srf_evc *smt_get_evc(struct s_smc *smc, int code, int index);
drivers/net/fddi/skfp/srf.c
360
static void smt_send_srf(struct s_smc *smc)
drivers/net/fddi/skfp/srf.c
37
#define MAX_EVCS ARRAY_SIZE(smc->evcs)
drivers/net/fddi/skfp/srf.c
376
if (!smc->r.sm_ma_avail)
drivers/net/fddi/skfp/srf.c
378
if (!(mb = smt_build_frame(smc,SMT_SRF,SMT_ANNOUNCE,0)))
drivers/net/fddi/skfp/srf.c
381
RS_SET(smc,RS_SOFTERROR) ;
drivers/net/fddi/skfp/srf.c
394
smt_add_para(smc,&pcon,(u_short) SMT_P1033,0,0) ;
drivers/net/fddi/skfp/srf.c
395
smt_add_para(smc,&pcon,(u_short) SMT_P1034,0,0) ;
drivers/net/fddi/skfp/srf.c
397
for (i = 0, evc = smc->evcs ; i < MAX_EVCS ; i++, evc++) {
drivers/net/fddi/skfp/srf.c
399
smt_add_para(smc,&pcon,evc->evc_para,
drivers/net/fddi/skfp/srf.c
408
smc->srf.sr_state, smc->srf.SRThreshold / TICKS_PER_SECOND);
drivers/net/fddi/skfp/srf.c
410
dump_smt(smc,smt,"SRF Send") ;
drivers/net/fddi/skfp/srf.c
412
smt_send_frame(smc,mb,FC_SMT_INFO,0) ;
drivers/net/fddi/skfp/srf.c
413
clear_reported(smc) ;
drivers/net/fddi/skfp/srf.c
63
void smt_init_evc(struct s_smc *smc)
drivers/net/fddi/skfp/srf.c
73
memset((char *)smc->evcs,0,sizeof(smc->evcs)) ;
drivers/net/fddi/skfp/srf.c
75
evc = smc->evcs ;
drivers/net/fddi/skfp/srf.c
92
if ((unsigned int) (evc - smc->evcs) > MAX_EVCS) {
drivers/net/fddi/skfp/srf.c
93
SMT_PANIC(smc,SMT_E0127, SMT_E0127_MSG) ;
drivers/net/fddi/skfp/srf.c
99
smc->evcs[0].evc_cond_state = &smc->mib.fddiSMTPeerWrapFlag ;
drivers/power/reset/macsmc-reboot.c
103
if (apple_smc_write_u32_atomic(reboot->smc, SMC_KEY(MBSE), SMC_KEY(off1)) < 0) {
drivers/power/reset/macsmc-reboot.c
119
if (apple_smc_write_u32_atomic(reboot->smc, SMC_KEY(MBSE), SMC_KEY(phra)) < 0) {
drivers/power/reset/macsmc-reboot.c
151
if (apple_smc_write_u32(reboot->smc, SMC_KEY(MBSE), val) < 0)
drivers/power/reset/macsmc-reboot.c
204
struct apple_smc *smc = dev_get_drvdata(pdev->dev.parent);
drivers/power/reset/macsmc-reboot.c
213
reboot->smc = smc;
drivers/power/reset/macsmc-reboot.c
39
struct apple_smc *smc;
drivers/power/reset/macsmc-reboot.c
93
apple_smc_enter_atomic(reboot->smc);
drivers/rtc/rtc-macsmc.c
103
rtc->smc = smc;
drivers/rtc/rtc-macsmc.c
25
struct apple_smc *smc;
drivers/rtc/rtc-macsmc.c
39
ret = apple_smc_read(rtc->smc, SMC_KEY(CLKM), &ctr, RTC_BYTES);
drivers/rtc/rtc-macsmc.c
69
ret = apple_smc_read(rtc->smc, SMC_KEY(CLKM), &ctr, RTC_BYTES);
drivers/rtc/rtc-macsmc.c
87
struct apple_smc *smc = dev_get_drvdata(pdev->dev.parent);
drivers/tee/optee/optee_private.h
252
struct optee_smc smc;
drivers/tee/optee/smc_abi.c
1060
value = get_async_notif_value(optee->smc.invoke_fn,
drivers/tee/optee/smc_abi.c
1102
optee->smc.notif_irq = irq;
drivers/tee/optee/smc_abi.c
1113
queue_work(optee->smc.notif_pcpu_wq,
drivers/tee/optee/smc_abi.c
1114
&optee->smc.notif_pcpu_work);
drivers/tee/optee/smc_abi.c
1123
struct optee *optee = container_of(optee_smc, struct optee, smc);
drivers/tee/optee/smc_abi.c
1145
INIT_WORK(&optee->smc.notif_pcpu_work, notif_pcpu_irq_work_fn);
drivers/tee/optee/smc_abi.c
1146
optee->smc.notif_pcpu_wq = create_workqueue("optee_pcpu_notification");
drivers/tee/optee/smc_abi.c
1147
if (!optee->smc.notif_pcpu_wq) {
drivers/tee/optee/smc_abi.c
1152
optee->smc.optee_pcpu = optee_pcpu;
drivers/tee/optee/smc_abi.c
1153
optee->smc.notif_irq = irq;
drivers/tee/optee/smc_abi.c
1164
optee->smc.notif_cpuhp_state = rc;
drivers/tee/optee/smc_abi.c
1186
cpuhp_remove_state(optee->smc.notif_cpuhp_state);
drivers/tee/optee/smc_abi.c
1188
destroy_workqueue(optee->smc.notif_pcpu_wq);
drivers/tee/optee/smc_abi.c
1190
free_percpu_irq(optee->smc.notif_irq, optee->smc.optee_pcpu);
drivers/tee/optee/smc_abi.c
1191
free_percpu(optee->smc.optee_pcpu);
drivers/tee/optee/smc_abi.c
1196
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_ASYNC_NOTIF) {
drivers/tee/optee/smc_abi.c
1198
if (optee->smc.notif_irq) {
drivers/tee/optee/smc_abi.c
1199
if (irq_is_percpu_devid(optee->smc.notif_irq))
drivers/tee/optee/smc_abi.c
1202
free_irq(optee->smc.notif_irq, optee);
drivers/tee/optee/smc_abi.c
1204
irq_dispose_mapping(optee->smc.notif_irq);
drivers/tee/optee/smc_abi.c
1228
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
drivers/tee/optee/smc_abi.c
1230
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_MEMREF_NULL)
drivers/tee/optee/smc_abi.c
1238
u32 sec_caps = optee->smc.sec_caps;
drivers/tee/optee/smc_abi.c
1528
if (optee->smc.memremaped_shm)
drivers/tee/optee/smc_abi.c
1529
memunmap(optee->smc.memremaped_shm);
drivers/tee/optee/smc_abi.c
1672
optee->smc.invoke_fn(OPTEE_SMC_GET_PROTMEM_CONFIG, 0, 0, 0, 0,
drivers/tee/optee/smc_abi.c
1705
bool protm = optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_PROTMEM;
drivers/tee/optee/smc_abi.c
1706
bool dyn_protm = optee->smc.sec_caps &
drivers/tee/optee/smc_abi.c
1828
optee->smc.invoke_fn = invoke_fn;
drivers/tee/optee/smc_abi.c
1829
optee->smc.sec_caps = sec_caps;
drivers/tee/optee/smc_abi.c
1862
optee->smc.memremaped_shm = memremaped_shm;
drivers/tee/optee/smc_abi.c
1893
enable_async_notif(optee->smc.invoke_fn);
drivers/tee/optee/smc_abi.c
1916
if (optee->smc.sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)
drivers/tee/optee/smc_abi.c
291
optee->smc.invoke_fn(OPTEE_SMC_ENABLE_SHM_CACHE,
drivers/tee/optee/smc_abi.c
319
optee->smc.invoke_fn(OPTEE_SMC_DISABLE_SHM_CACHE,
drivers/tee/optee/smc_abi.c
934
optee->smc.invoke_fn(param.a0, param.a1, param.a2, param.a3,
include/linux/mfd/macsmc.h
142
int apple_smc_read(struct apple_smc *smc, smc_key key, void *buf, size_t size);
include/linux/mfd/macsmc.h
153
int apple_smc_write(struct apple_smc *smc, smc_key key, const void *buf, size_t size);
include/linux/mfd/macsmc.h
166
int apple_smc_enter_atomic(struct apple_smc *smc);
include/linux/mfd/macsmc.h
180
int apple_smc_write_atomic(struct apple_smc *smc, smc_key key, const void *buf, size_t size);
include/linux/mfd/macsmc.h
193
int apple_smc_rw(struct apple_smc *smc, smc_key key, const void *wbuf, size_t wsize,
include/linux/mfd/macsmc.h
204
int apple_smc_get_key_by_index(struct apple_smc *smc, int index, smc_key *key);
include/linux/mfd/macsmc.h
214
int apple_smc_get_key_info(struct apple_smc *smc, smc_key key, struct apple_smc_key_info *info);
include/linux/mfd/macsmc.h
223
static inline bool apple_smc_key_exists(struct apple_smc *smc, smc_key key)
include/linux/mfd/macsmc.h
225
return apple_smc_get_key_info(smc, key, NULL) >= 0;
include/linux/mfd/macsmc.h
229
static inline int apple_smc_read_##type(struct apple_smc *smc, smc_key key, type *p) \
include/linux/mfd/macsmc.h
231
int ret = apple_smc_read(smc, key, p, sizeof(*p)); \
include/linux/mfd/macsmc.h
234
static inline int apple_smc_write_##type(struct apple_smc *smc, smc_key key, type p) \
include/linux/mfd/macsmc.h
236
return apple_smc_write(smc, key, &p, sizeof(p)); \
include/linux/mfd/macsmc.h
238
static inline int apple_smc_write_##type##_atomic(struct apple_smc *smc, smc_key key, type p) \
include/linux/mfd/macsmc.h
240
return apple_smc_write_atomic(smc, key, &p, sizeof(p)); \
include/linux/mfd/macsmc.h
242
static inline int apple_smc_rw_##type(struct apple_smc *smc, smc_key key, \
include/linux/mfd/macsmc.h
245
int ret = apple_smc_rw(smc, key, &w, sizeof(w), r, sizeof(*r)); \
include/linux/mfd/macsmc.h
258
static inline int apple_smc_read_flag(struct apple_smc *smc, smc_key key, bool *flag)
include/linux/mfd/macsmc.h
261
int ret = apple_smc_read_u8(smc, key, &val);
include/linux/mfd/macsmc.h
270
static inline int apple_smc_write_flag(struct apple_smc *smc, smc_key key, bool state)
include/linux/mfd/macsmc.h
272
return apple_smc_write_u8(smc, key, state ? 1 : 0);
include/linux/mfd/macsmc.h
275
static inline int apple_smc_write_flag_atomic(struct apple_smc *smc, smc_key key, bool state)
include/linux/mfd/macsmc.h
277
return apple_smc_write_u8_atomic(smc, key, state ? 1 : 0);
include/net/net_namespace.h
195
struct netns_smc smc;
include/net/smc.h
96
ctrl = rcu_dereference(sock_net((struct sock *)(tp))->smc.hs_ctrl); \
net/smc/af_smc.c
1003
return smc_connect_fallback(smc, reason_code);
net/smc/af_smc.c
1006
static void smc_conn_abort(struct smc_sock *smc, int local_first)
net/smc/af_smc.c
1008
struct smc_connection *conn = &smc->conn;
net/smc/af_smc.c
1022
static int smc_find_rdma_device(struct smc_sock *smc, struct smc_init_info *ini)
net/smc/af_smc.c
1028
smc_pnet_find_roce_resource(smc->clcsock->sk, ini);
net/smc/af_smc.c
1038
static int smc_find_ism_device(struct smc_sock *smc, struct smc_init_info *ini)
net/smc/af_smc.c
1041
smc_pnet_find_ism_resource(smc->clcsock->sk, ini);
net/smc/af_smc.c
105
sock_net(skb->sk)->smc.limit_smc_hs = true;
net/smc/af_smc.c
1064
static int smc_find_ism_v2_device_clnt(struct smc_sock *smc,
net/smc/af_smc.c
1084
smc_pnet_is_ndev_pnetid(sock_net(&smc->sk), smcd->pnetid)) {
net/smc/af_smc.c
111
sock_net(skb->sk)->smc.limit_smc_hs = false;
net/smc/af_smc.c
1118
static int smc_find_proposal_devices(struct smc_sock *smc,
net/smc/af_smc.c
1125
smc_find_ism_device(smc, ini) ||
net/smc/af_smc.c
1132
smc_find_rdma_device(smc, ini))
net/smc/af_smc.c
1142
smc_find_ism_v2_device_clnt(smc, ini))
net/smc/af_smc.c
1147
ini->smcrv2.saddr = smc->clcsock->sk->sk_rcv_saddr;
net/smc/af_smc.c
1150
(smc->clcsock->sk->sk_family == AF_INET6 &&
net/smc/af_smc.c
1151
!ipv6_addr_v4mapped(&smc->clcsock->sk->sk_v6_rcv_saddr)) ||
net/smc/af_smc.c
1154
smc_find_rdma_device(smc, ini))
net/smc/af_smc.c
117
struct smc_sock *smc = smc_sk(sk);
net/smc/af_smc.c
1186
static int smc_connect_clc(struct smc_sock *smc,
net/smc/af_smc.c
119
smc->clcsock->sk->sk_prot->keepalive(smc->clcsock->sk, val);
net/smc/af_smc.c
1193
rc = smc_clc_send_proposal(smc, ini);
net/smc/af_smc.c
1197
return smc_clc_wait_msg(smc, aclc, SMC_CLC_MAX_ACCEPT_LEN,
net/smc/af_smc.c
1229
static int smc_connect_rdma_v2_prepare(struct smc_sock *smc,
net/smc/af_smc.c
1235
struct net *net = sock_net(&smc->sk);
net/smc/af_smc.c
1245
if (smc_ib_find_route(net, smc->clcsock->sk->sk_rcv_saddr,
net/smc/af_smc.c
1265
static int smc_connect_rdma(struct smc_sock *smc,
net/smc/af_smc.c
1282
reason_code = smc_connect_rdma_v2_prepare(smc, aclc, ini);
net/smc/af_smc.c
1287
reason_code = smc_conn_create(smc, ini);
net/smc/af_smc.c
1293
smc_conn_save_peer_info(smc, aclc);
net/smc/af_smc.c
1296
link = smc->conn.lnk;
net/smc/af_smc.c
1301
struct smc_link *l = &smc->conn.lgr->lnk[i];
net/smc/af_smc.c
131
struct smc_sock *smc;
net/smc/af_smc.c
1317
smc_switch_link_and_count(&smc->conn, link);
net/smc/af_smc.c
1321
if (smc_buf_create(smc, false)) {
net/smc/af_smc.c
1329
if (smc_rmb_rtoken_handling(&smc->conn, link, aclc)) {
net/smc/af_smc.c
1334
smc_rx_init(smc);
net/smc/af_smc.c
1343
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
1344
if (smcr_lgr_reg_sndbufs(link, smc->conn.sndbuf_desc)) {
net/smc/af_smc.c
1349
if (smcr_lgr_reg_rmbs(link, smc->conn.rmb_desc)) {
net/smc/af_smc.c
135
smc = smc_clcsock_user_data_rcu(sk);
net/smc/af_smc.c
136
if (!smc || !refcount_inc_not_zero(&smc->sk.sk_refcnt)) {
net/smc/af_smc.c
1362
reason_code = smc_clc_send_confirm(smc, ini->first_contact_local,
net/smc/af_smc.c
1367
smc_tx_init(smc);
net/smc/af_smc.c
1372
reason_code = smcr_clnt_conf_first_link(smc);
net/smc/af_smc.c
1379
smc_copy_sock_settings_to_clc(smc);
net/smc/af_smc.c
138
smc = NULL;
net/smc/af_smc.c
1380
smc->connect_nonblock = 0;
net/smc/af_smc.c
1381
if (smc->sk.sk_state == SMC_INIT)
net/smc/af_smc.c
1382
smc->sk.sk_state = SMC_ACTIVE;
net/smc/af_smc.c
1386
smc_conn_abort(smc, ini->first_contact_local);
net/smc/af_smc.c
1388
smc->connect_nonblock = 0;
net/smc/af_smc.c
1413
static int smc_connect_ism(struct smc_sock *smc,
net/smc/af_smc.c
143
if (READ_ONCE(sk->sk_ack_backlog) + atomic_read(&smc->queued_smc_hs) >
net/smc/af_smc.c
1447
rc = smc_conn_create(smc, ini);
net/smc/af_smc.c
1454
rc = smc_buf_create(smc, true);
net/smc/af_smc.c
1460
smc_conn_save_peer_info(smc, aclc);
net/smc/af_smc.c
1462
if (smc_ism_support_dmb_nocopy(smc->conn.lgr->smcd)) {
net/smc/af_smc.c
1463
rc = smcd_buf_attach(smc);
net/smc/af_smc.c
1469
smc_rx_init(smc);
net/smc/af_smc.c
147
if (sk_acceptq_is_full(&smc->sk)) {
net/smc/af_smc.c
1470
smc_tx_init(smc);
net/smc/af_smc.c
1475
rc = smc_clc_send_confirm(smc, ini->first_contact_local,
net/smc/af_smc.c
1481
smc_copy_sock_settings_to_clc(smc);
net/smc/af_smc.c
1482
smc->connect_nonblock = 0;
net/smc/af_smc.c
1483
if (smc->sk.sk_state == SMC_INIT)
net/smc/af_smc.c
1484
smc->sk.sk_state = SMC_ACTIVE;
net/smc/af_smc.c
1488
smc_conn_abort(smc, ini->first_contact_local);
net/smc/af_smc.c
1490
smc->connect_nonblock = 0;
net/smc/af_smc.c
1517
static int __smc_connect(struct smc_sock *smc)
net/smc/af_smc.c
1525
if (smc->use_fallback)
net/smc/af_smc.c
1526
return smc_connect_fallback(smc, smc->fallback_rsn);
net/smc/af_smc.c
1529
if (!tcp_sk(smc->clcsock->sk)->syn_smc)
net/smc/af_smc.c
153
child = smc->ori_af_ops->syn_recv_sock(sk, skb, req, dst, req_unhash,
net/smc/af_smc.c
1530
return smc_connect_fallback(smc, SMC_CLC_DECL_PEERNOSMC);
net/smc/af_smc.c
1533
if (using_ipsec(smc))
net/smc/af_smc.c
1534
return smc_connect_decline_fallback(smc, SMC_CLC_DECL_IPSEC,
net/smc/af_smc.c
1539
return smc_connect_decline_fallback(smc, SMC_CLC_DECL_MEM,
net/smc/af_smc.c
1548
if (smc_vlan_by_tcpsk(smc->clcsock, ini)) {
net/smc/af_smc.c
1554
rc = smc_find_proposal_devices(smc, ini);
net/smc/af_smc.c
1566
rc = smc_connect_clc(smc, aclc, ini);
net/smc/af_smc.c
1571
smc->sk.sk_err = ETIMEDOUT;
net/smc/af_smc.c
1585
rc = smc_connect_rdma(smc, aclc, ini);
net/smc/af_smc.c
1588
rc = smc_connect_ism(smc, aclc, ini);
net/smc/af_smc.c
1593
SMC_STAT_CLNT_SUCC_INC(sock_net(smc->clcsock->sk), aclc);
net/smc/af_smc.c
1604
return smc_connect_decline_fallback(smc, rc, version);
net/smc/af_smc.c
1609
struct smc_sock *smc = container_of(work, struct smc_sock,
net/smc/af_smc.c
161
inet_csk(child)->icsk_af_ops = smc->ori_af_ops;
net/smc/af_smc.c
1611
long timeo = READ_ONCE(smc->sk.sk_sndtimeo);
net/smc/af_smc.c
1616
lock_sock(smc->clcsock->sk);
net/smc/af_smc.c
1617
if (smc->clcsock->sk->sk_err) {
net/smc/af_smc.c
1618
smc->sk.sk_err = smc->clcsock->sk->sk_err;
net/smc/af_smc.c
1619
} else if ((1 << smc->clcsock->sk->sk_state) &
net/smc/af_smc.c
1621
rc = sk_stream_wait_connect(smc->clcsock->sk, &timeo);
net/smc/af_smc.c
1623
((1 << smc->clcsock->sk->sk_state) &
net/smc/af_smc.c
1627
release_sock(smc->clcsock->sk);
net/smc/af_smc.c
1628
lock_sock(&smc->sk);
net/smc/af_smc.c
1629
if (rc != 0 || smc->sk.sk_err) {
net/smc/af_smc.c
163
sock_put(&smc->sk);
net/smc/af_smc.c
1630
smc->sk.sk_state = SMC_CLOSED;
net/smc/af_smc.c
1632
smc->sk.sk_err = EPIPE;
net/smc/af_smc.c
1634
smc->sk.sk_err = ECONNREFUSED;
net/smc/af_smc.c
1636
smc->sk.sk_err = -sock_intr_errno(timeo);
net/smc/af_smc.c
1637
sock_put(&smc->sk); /* passive closing */
net/smc/af_smc.c
1641
rc = __smc_connect(smc);
net/smc/af_smc.c
1643
smc->sk.sk_err = -rc;
net/smc/af_smc.c
1646
if (!sock_flag(&smc->sk, SOCK_DEAD)) {
net/smc/af_smc.c
1647
if (smc->sk.sk_err) {
net/smc/af_smc.c
1648
smc->sk.sk_state_change(&smc->sk);
net/smc/af_smc.c
1650
smc->clcsock->sk->sk_write_space(smc->clcsock->sk);
net/smc/af_smc.c
1651
smc->sk.sk_write_space(&smc->sk);
net/smc/af_smc.c
1654
release_sock(&smc->sk);
net/smc/af_smc.c
1661
struct smc_sock *smc;
net/smc/af_smc.c
1664
smc = smc_sk(sk);
net/smc/af_smc.c
169
if (smc)
net/smc/af_smc.c
170
sock_put(&smc->sk);
net/smc/af_smc.c
1703
smc_copy_sock_settings_to_clc(smc);
net/smc/af_smc.c
1704
tcp_sk(smc->clcsock->sk)->syn_smc = 1;
net/smc/af_smc.c
1705
if (smc->connect_nonblock) {
net/smc/af_smc.c
1709
rc = kernel_connect(smc->clcsock, (struct sockaddr_unsized *)addr, alen, flags);
net/smc/af_smc.c
1713
if (smc->use_fallback) {
net/smc/af_smc.c
1717
sock_hold(&smc->sk); /* sock put in passive closing */
net/smc/af_smc.c
1719
if (queue_work(smc_hs_wq, &smc->connect_work))
net/smc/af_smc.c
1720
smc->connect_nonblock = 1;
net/smc/af_smc.c
1724
rc = __smc_connect(smc);
net/smc/af_smc.c
176
const struct smc_sock *smc;
net/smc/af_smc.c
178
smc = smc_clcsock_user_data(sk);
net/smc/af_smc.c
180
if (!smc)
net/smc/af_smc.c
1860
struct smc_sock *smc = smc_sk(sk);
net/smc/af_smc.c
1867
__smc_release(smc);
net/smc/af_smc.c
1873
static int smcr_serv_conf_first_link(struct smc_sock *smc)
net/smc/af_smc.c
1875
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
1880
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
1881
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
1886
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
1900
rc = smc_clc_wait_msg(smc, &dclc, sizeof(dclc),
net/smc/af_smc.c
1911
smc->conn.rmb_desc->is_conf_rkey = true;
net/smc/af_smc.c
1965
this_cpu_inc(net->smc.smc_stats->srv_hshake_err_cnt);
net/smc/af_smc.c
228
struct smc_sock *smc = smc_sk(sk);
net/smc/af_smc.c
230
if (smc->conn.tx_in_release_sock) {
net/smc/af_smc.c
231
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
232
smc->conn.tx_in_release_sock = false;
net/smc/af_smc.c
262
static void smc_fback_restore_callbacks(struct smc_sock *smc)
net/smc/af_smc.c
264
struct sock *clcsk = smc->clcsock->sk;
net/smc/af_smc.c
2651
struct smc_sock *smc;
net/smc/af_smc.c
2654
smc = smc_sk(sk);
net/smc/af_smc.c
2659
smc->connect_nonblock || sock->state != SS_UNCONNECTED)
net/smc/af_smc.c
2670
smc_copy_sock_settings_to_clc(smc);
net/smc/af_smc.c
2671
if (!smc->use_fallback)
net/smc/af_smc.c
2672
tcp_sk(smc->clcsock->sk)->syn_smc = 1;
net/smc/af_smc.c
2677
write_lock_bh(&smc->clcsock->sk->sk_callback_lock);
net/smc/af_smc.c
2678
__rcu_assign_sk_user_data_with_flags(smc->clcsock->sk, smc,
net/smc/af_smc.c
2680
smc_clcsock_replace_cb(&smc->clcsock->sk->sk_data_ready,
net/smc/af_smc.c
2681
smc_clcsock_data_ready, &smc->clcsk_data_ready);
net/smc/af_smc.c
2682
write_unlock_bh(&smc->clcsock->sk->sk_callback_lock);
net/smc/af_smc.c
2685
smc->ori_af_ops = inet_csk(smc->clcsock->sk)->icsk_af_ops;
net/smc/af_smc.c
2687
smc->af_ops = *smc->ori_af_ops;
net/smc/af_smc.c
2688
smc->af_ops.syn_recv_sock = smc_tcp_syn_recv_sock;
net/smc/af_smc.c
269
smc_clcsock_restore_cb(&clcsk->sk_state_change, &smc->clcsk_state_change);
net/smc/af_smc.c
2690
inet_csk(smc->clcsock->sk)->icsk_af_ops = &smc->af_ops;
net/smc/af_smc.c
2692
if (smc->limit_smc_hs)
net/smc/af_smc.c
2693
tcp_sk(smc->clcsock->sk)->smc_hs_congested = smc_hs_congested;
net/smc/af_smc.c
2695
rc = kernel_listen(smc->clcsock, backlog);
net/smc/af_smc.c
2697
write_lock_bh(&smc->clcsock->sk->sk_callback_lock);
net/smc/af_smc.c
2698
smc_clcsock_restore_cb(&smc->clcsock->sk->sk_data_ready,
net/smc/af_smc.c
2699
&smc->clcsk_data_ready);
net/smc/af_smc.c
270
smc_clcsock_restore_cb(&clcsk->sk_data_ready, &smc->clcsk_data_ready);
net/smc/af_smc.c
2700
rcu_assign_sk_user_data(smc->clcsock->sk, NULL);
net/smc/af_smc.c
2701
write_unlock_bh(&smc->clcsock->sk->sk_callback_lock);
net/smc/af_smc.c
271
smc_clcsock_restore_cb(&clcsk->sk_write_space, &smc->clcsk_write_space);
net/smc/af_smc.c
272
smc_clcsock_restore_cb(&clcsk->sk_error_report, &smc->clcsk_error_report);
net/smc/af_smc.c
277
static void smc_restore_fallback_changes(struct smc_sock *smc)
net/smc/af_smc.c
2786
struct smc_sock *smc;
net/smc/af_smc.c
279
if (smc->clcsock->file) { /* non-accepted sockets have no file yet */
net/smc/af_smc.c
2792
smc = smc_sk(sock->sk);
net/smc/af_smc.c
2794
return smc->clcsock->ops->getname(smc->clcsock, addr, peer);
net/smc/af_smc.c
280
smc->clcsock->file->private_data = smc->sk.sk_socket;
net/smc/af_smc.c
2800
struct smc_sock *smc;
net/smc/af_smc.c
2803
smc = smc_sk(sk);
net/smc/af_smc.c
2809
if (sk->sk_state == SMC_INIT && !smc->connect_nonblock) {
net/smc/af_smc.c
281
smc->clcsock->file = NULL;
net/smc/af_smc.c
2810
rc = smc_switch_to_fallback(smc, SMC_CLC_DECL_OPTUNSUPP);
net/smc/af_smc.c
282
smc_fback_restore_callbacks(smc);
net/smc/af_smc.c
2824
if (smc->use_fallback) {
net/smc/af_smc.c
2825
rc = smc->clcsock->ops->sendmsg(smc->clcsock, msg, len);
net/smc/af_smc.c
2827
rc = smc_tx_sendmsg(smc, msg, len);
net/smc/af_smc.c
2828
SMC_STAT_TX_PAYLOAD(smc, len, rc);
net/smc/af_smc.c
2839
struct smc_sock *smc;
net/smc/af_smc.c
2842
smc = smc_sk(sk);
net/smc/af_smc.c
2859
if (smc->use_fallback) {
net/smc/af_smc.c
286
static int __smc_release(struct smc_sock *smc)
net/smc/af_smc.c
2860
rc = smc->clcsock->ops->recvmsg(smc->clcsock, msg, len, flags);
net/smc/af_smc.c
2863
rc = smc_rx_recvmsg(smc, msg, NULL, len, flags);
net/smc/af_smc.c
2864
SMC_STAT_RX_PAYLOAD(smc, rc, rc);
net/smc/af_smc.c
288
struct sock *sk = &smc->sk;
net/smc/af_smc.c
2889
struct smc_sock *smc;
net/smc/af_smc.c
2895
smc = smc_sk(sock->sk);
net/smc/af_smc.c
2896
if (smc->use_fallback) {
net/smc/af_smc.c
2898
mask = smc->clcsock->ops->poll(file, smc->clcsock, wait);
net/smc/af_smc.c
2899
sk->sk_err = smc->clcsock->sk->sk_err;
net/smc/af_smc.c
291
if (!smc->use_fallback) {
net/smc/af_smc.c
2911
} else if (smc->use_fallback) { /* as result of connect_work()*/
net/smc/af_smc.c
2912
mask |= smc->clcsock->ops->poll(file, smc->clcsock,
net/smc/af_smc.c
2914
sk->sk_err = smc->clcsock->sk->sk_err;
net/smc/af_smc.c
2917
atomic_read(&smc->conn.sndbuf_space)) ||
net/smc/af_smc.c
292
rc = smc_close_active(smc);
net/smc/af_smc.c
2927
if (atomic_read(&smc->conn.sndbuf_space))
net/smc/af_smc.c
2931
if (atomic_read(&smc->conn.bytes_to_rcv))
net/smc/af_smc.c
2937
if (smc->conn.urg_state == SMC_URG_VALID)
net/smc/af_smc.c
2949
struct smc_sock *smc;
net/smc/af_smc.c
2954
smc = smc_sk(sk);
net/smc/af_smc.c
2980
if (smc->use_fallback) {
net/smc/af_smc.c
2981
rc = kernel_sock_shutdown(smc->clcsock, how);
net/smc/af_smc.c
2982
sk->sk_shutdown = smc->clcsock->sk->sk_shutdown;
net/smc/af_smc.c
2993
rc = smc_close_active(smc);
net/smc/af_smc.c
2999
rc = smc_close_shutdown_write(smc);
net/smc/af_smc.c
3006
if (do_shutdown && smc->clcsock)
net/smc/af_smc.c
3007
rc1 = kernel_sock_shutdown(smc->clcsock, how);
net/smc/af_smc.c
302
rc = kernel_sock_shutdown(smc->clcsock,
net/smc/af_smc.c
3023
struct smc_sock *smc;
net/smc/af_smc.c
3026
smc = smc_sk(sock->sk);
net/smc/af_smc.c
3038
val = smc->limit_smc_hs;
net/smc/af_smc.c
3056
struct smc_sock *smc;
net/smc/af_smc.c
3059
smc = smc_sk(sk);
net/smc/af_smc.c
3073
smc->limit_smc_hs = !!val;
net/smc/af_smc.c
308
smc_restore_fallback_changes(smc);
net/smc/af_smc.c
3089
struct smc_sock *smc;
net/smc/af_smc.c
3097
smc = smc_sk(sk);
net/smc/af_smc.c
3102
mutex_lock(&smc->clcsock_release_lock);
net/smc/af_smc.c
3103
if (!smc->clcsock) {
net/smc/af_smc.c
3104
mutex_unlock(&smc->clcsock_release_lock);
net/smc/af_smc.c
3107
if (unlikely(!smc->clcsock->ops->setsockopt))
net/smc/af_smc.c
3110
rc = smc->clcsock->ops->setsockopt(smc->clcsock, level, optname,
net/smc/af_smc.c
3112
if (smc->clcsock->sk->sk_err) {
net/smc/af_smc.c
3113
sk->sk_err = smc->clcsock->sk->sk_err;
net/smc/af_smc.c
3116
mutex_unlock(&smc->clcsock_release_lock);
net/smc/af_smc.c
3124
if (rc || smc->use_fallback)
net/smc/af_smc.c
3132
if (sk->sk_state == SMC_INIT && !smc->connect_nonblock) {
net/smc/af_smc.c
3133
rc = smc_switch_to_fallback(smc, SMC_CLC_DECL_OPTUNSUPP);
net/smc/af_smc.c
314
if (smc->clcsock) {
net/smc/af_smc.c
3143
SMC_STAT_INC(smc, ndly_cnt);
net/smc/af_smc.c
3144
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
3145
cancel_delayed_work(&smc->conn.tx_work);
net/smc/af_smc.c
3154
SMC_STAT_INC(smc, cork_cnt);
net/smc/af_smc.c
3155
smc_tx_pending(&smc->conn);
net/smc/af_smc.c
3156
cancel_delayed_work(&smc->conn.tx_work);
net/smc/af_smc.c
316
smc_clcsock_release(smc);
net/smc/af_smc.c
3161
smc->sockopt_defer_accept = val;
net/smc/af_smc.c
3175
struct smc_sock *smc;
net/smc/af_smc.c
3181
smc = smc_sk(sock->sk);
net/smc/af_smc.c
3182
mutex_lock(&smc->clcsock_release_lock);
net/smc/af_smc.c
3183
if (!smc->clcsock) {
net/smc/af_smc.c
3184
mutex_unlock(&smc->clcsock_release_lock);
net/smc/af_smc.c
3188
if (unlikely(!smc->clcsock->ops->getsockopt)) {
net/smc/af_smc.c
3189
mutex_unlock(&smc->clcsock_release_lock);
net/smc/af_smc.c
319
if (!smc->use_fallback)
net/smc/af_smc.c
3192
rc = smc->clcsock->ops->getsockopt(smc->clcsock, level, optname,
net/smc/af_smc.c
3194
mutex_unlock(&smc->clcsock_release_lock);
net/smc/af_smc.c
320
smc_conn_free(&smc->conn);
net/smc/af_smc.c
3203
struct smc_sock *smc;
net/smc/af_smc.c
3206
smc = smc_sk(sock->sk);
net/smc/af_smc.c
3207
conn = &smc->conn;
net/smc/af_smc.c
3208
lock_sock(&smc->sk);
net/smc/af_smc.c
3209
if (smc->use_fallback) {
net/smc/af_smc.c
3210
if (!smc->clcsock) {
net/smc/af_smc.c
3211
release_sock(&smc->sk);
net/smc/af_smc.c
3214
answ = smc->clcsock->ops->ioctl(smc->clcsock, cmd, arg);
net/smc/af_smc.c
3215
release_sock(&smc->sk);
net/smc/af_smc.c
3220
if (smc->sk.sk_state == SMC_LISTEN) {
net/smc/af_smc.c
3221
release_sock(&smc->sk);
net/smc/af_smc.c
3224
if (smc->sk.sk_state == SMC_INIT ||
net/smc/af_smc.c
3225
smc->sk.sk_state == SMC_CLOSED)
net/smc/af_smc.c
3228
answ = atomic_read(&smc->conn.bytes_to_rcv);
net/smc/af_smc.c
3232
if (smc->sk.sk_state == SMC_LISTEN) {
net/smc/af_smc.c
3233
release_sock(&smc->sk);
net/smc/af_smc.c
3236
if (smc->sk.sk_state == SMC_INIT ||
net/smc/af_smc.c
3237
smc->sk.sk_state == SMC_CLOSED)
net/smc/af_smc.c
3240
answ = smc->conn.sndbuf_desc->len -
net/smc/af_smc.c
3241
atomic_read(&smc->conn.sndbuf_space);
net/smc/af_smc.c
3245
if (smc->sk.sk_state == SMC_LISTEN) {
net/smc/af_smc.c
3246
release_sock(&smc->sk);
net/smc/af_smc.c
3249
if (smc->sk.sk_state == SMC_INIT ||
net/smc/af_smc.c
3250
smc->sk.sk_state == SMC_CLOSED)
net/smc/af_smc.c
3253
answ = smc_tx_prepared_sends(&smc->conn);
net/smc/af_smc.c
3256
if (smc->sk.sk_state == SMC_LISTEN) {
net/smc/af_smc.c
3257
release_sock(&smc->sk);
net/smc/af_smc.c
3260
if (smc->sk.sk_state == SMC_INIT ||
net/smc/af_smc.c
3261
smc->sk.sk_state == SMC_CLOSED) {
net/smc/af_smc.c
3271
release_sock(&smc->sk);
net/smc/af_smc.c
3274
release_sock(&smc->sk);
net/smc/af_smc.c
329
struct smc_sock *smc;
net/smc/af_smc.c
3290
struct smc_sock *smc;
net/smc/af_smc.c
3293
smc = smc_sk(sk);
net/smc/af_smc.c
3310
if (smc->use_fallback) {
net/smc/af_smc.c
3311
rc = smc->clcsock->ops->splice_read(smc->clcsock, ppos,
net/smc/af_smc.c
3322
SMC_STAT_INC(smc, splice_cnt);
net/smc/af_smc.c
3323
rc = smc_rx_recvmsg(smc, NULL, pipe, len, flags);
net/smc/af_smc.c
3355
struct smc_sock *smc = smc_sk(sk);
net/smc/af_smc.c
3359
&smc->clcsock);
net/smc/af_smc.c
336
smc = smc_sk(sk);
net/smc/af_smc.c
3368
sk = smc->clcsock->sk;
net/smc/af_smc.c
341
if (smc->connect_nonblock && old_state == SMC_INIT)
net/smc/af_smc.c
342
tcp_abort(smc->clcsock->sk, ECONNABORTED);
net/smc/af_smc.c
344
if (cancel_work_sync(&smc->connect_work))
net/smc/af_smc.c
345
sock_put(&smc->sk); /* sock_hold in smc_connect for passive closing */
net/smc/af_smc.c
356
!smc->use_fallback)
net/smc/af_smc.c
357
smc_close_active_abort(smc);
net/smc/af_smc.c
359
rc = __smc_release(smc);
net/smc/af_smc.c
395
struct smc_sock *smc = smc_sk(sk);
net/smc/af_smc.c
400
WRITE_ONCE(sk->sk_sndbuf, 2 * READ_ONCE(net->smc.sysctl_wmem));
net/smc/af_smc.c
401
WRITE_ONCE(sk->sk_rcvbuf, 2 * READ_ONCE(net->smc.sysctl_rmem));
net/smc/af_smc.c
402
INIT_WORK(&smc->tcp_listen_work, smc_tcp_listen_work);
net/smc/af_smc.c
403
INIT_WORK(&smc->connect_work, smc_connect_work);
net/smc/af_smc.c
404
INIT_DELAYED_WORK(&smc->conn.tx_work, smc_tx_work);
net/smc/af_smc.c
405
INIT_LIST_HEAD(&smc->accept_q);
net/smc/af_smc.c
408
spin_lock_init(&smc->accept_q_lock);
net/smc/af_smc.c
409
spin_lock_init(&smc->conn.send_lock);
net/smc/af_smc.c
411
mutex_init(&smc->clcsock_release_lock);
net/smc/af_smc.c
412
smc_init_saved_callbacks(smc);
net/smc/af_smc.c
413
smc->limit_smc_hs = net->smc.limit_smc_hs;
net/smc/af_smc.c
414
smc->use_fallback = false; /* assume rdma capability first */
net/smc/af_smc.c
415
smc->fallback_rsn = 0;
net/smc/af_smc.c
416
smc_close_init(smc);
net/smc/af_smc.c
441
struct smc_sock *smc;
net/smc/af_smc.c
444
smc = smc_sk(sk);
net/smc/af_smc.c
465
if (sk->sk_state != SMC_INIT || smc->connect_nonblock)
net/smc/af_smc.c
468
smc->clcsock->sk->sk_reuse = sk->sk_reuse;
net/smc/af_smc.c
469
smc->clcsock->sk->sk_reuseport = sk->sk_reuseport;
net/smc/af_smc.c
470
rc = kernel_bind(smc->clcsock, uaddr, addr_len);
net/smc/af_smc.c
528
static void smc_copy_sock_settings_to_clc(struct smc_sock *smc)
net/smc/af_smc.c
530
smc_copy_sock_settings(smc->clcsock->sk, &smc->sk, SK_FLAGS_SMC_TO_CLC);
net/smc/af_smc.c
538
static void smc_copy_sock_settings_to_smc(struct smc_sock *smc)
net/smc/af_smc.c
540
smc_copy_sock_settings(&smc->sk, smc->clcsock->sk, SK_FLAGS_CLC_TO_SMC);
net/smc/af_smc.c
616
static int smcr_clnt_conf_first_link(struct smc_sock *smc)
net/smc/af_smc.c
618
struct smc_link *link = smc->conn.lnk;
net/smc/af_smc.c
632
rc = smc_clc_wait_msg(smc, &dclc, sizeof(dclc),
net/smc/af_smc.c
649
if (smc->conn.sndbuf_desc->is_vm) {
net/smc/af_smc.c
650
if (smcr_link_reg_buf(link, smc->conn.sndbuf_desc))
net/smc/af_smc.c
655
if (smcr_link_reg_buf(link, smc->conn.rmb_desc))
net/smc/af_smc.c
659
smc->conn.rmb_desc->is_conf_rkey = true;
net/smc/af_smc.c
676
rc = smc_clc_wait_msg(smc, &dclc, sizeof(dclc),
net/smc/af_smc.c
698
static void smc_conn_save_peer_info_fce(struct smc_sock *smc,
net/smc/af_smc.c
708
if (smc->conn.lgr->is_smcd) {
net/smc/af_smc.c
709
memcpy(smc->conn.lgr->negotiated_eid, clc->d1.eid,
net/smc/af_smc.c
713
memcpy(smc->conn.lgr->negotiated_eid, clc->r1.eid,
net/smc/af_smc.c
718
smc->conn.lgr->peer_os = fce->os_type;
net/smc/af_smc.c
719
smc->conn.lgr->peer_smc_release = fce->release;
net/smc/af_smc.c
721
memcpy(smc->conn.lgr->peer_hostname, fce->hostname,
net/smc/af_smc.c
725
static void smcr_conn_save_peer_info(struct smc_sock *smc,
net/smc/af_smc.c
730
smc->conn.peer_rmbe_idx = clc->r0.rmbe_idx;
net/smc/af_smc.c
731
smc->conn.local_tx_ctrl.token = ntohl(clc->r0.rmbe_alert_token);
net/smc/af_smc.c
732
smc->conn.peer_rmbe_size = bufsize;
net/smc/af_smc.c
733
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
net/smc/af_smc.c
734
smc->conn.tx_off = bufsize * (smc->conn.peer_rmbe_idx - 1);
net/smc/af_smc.c
737
static void smcd_conn_save_peer_info(struct smc_sock *smc,
net/smc/af_smc.c
742
smc->conn.peer_rmbe_idx = clc->d0.dmbe_idx;
net/smc/af_smc.c
743
smc->conn.peer_token = ntohll(clc->d0.token);
net/smc/af_smc.c
745
smc->conn.peer_rmbe_size = bufsize - sizeof(struct smcd_cdc_msg);
net/smc/af_smc.c
746
atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size);
net/smc/af_smc.c
747
smc->conn.tx_off = bufsize * smc->conn.peer_rmbe_idx;
net/smc/af_smc.c
750
static void smc_conn_save_peer_info(struct smc_sock *smc,
net/smc/af_smc.c
753
if (smc->conn.lgr->is_smcd)
net/smc/af_smc.c
754
smcd_conn_save_peer_info(smc, clc);
net/smc/af_smc.c
756
smcr_conn_save_peer_info(smc, clc);
net/smc/af_smc.c
757
smc_conn_save_peer_info_fce(smc, clc);
net/smc/af_smc.c
771
static void smc_stat_inc_fback_rsn_cnt(struct smc_sock *smc,
net/smc/af_smc.c
777
if (fback_arr[cnt].fback_code == smc->fallback_rsn) {
net/smc/af_smc.c
782
fback_arr[cnt].fback_code = smc->fallback_rsn;
net/smc/af_smc.c
789
static void smc_stat_fallback(struct smc_sock *smc)
net/smc/af_smc.c
791
struct net *net = sock_net(&smc->sk);
net/smc/af_smc.c
793
mutex_lock(&net->smc.mutex_fback_rsn);
net/smc/af_smc.c
794
if (smc->listen_smc) {
net/smc/af_smc.c
795
smc_stat_inc_fback_rsn_cnt(smc, net->smc.fback_rsn->srv);
net/smc/af_smc.c
796
net->smc.fback_rsn->srv_fback_cnt++;
net/smc/af_smc.c
798
smc_stat_inc_fback_rsn_cnt(smc, net->smc.fback_rsn->clnt);
net/smc/af_smc.c
799
net->smc.fback_rsn->clnt_fback_cnt++;
net/smc/af_smc.c
801
mutex_unlock(&net->smc.mutex_fback_rsn);
net/smc/af_smc.c
805
static void smc_fback_wakeup_waitqueue(struct smc_sock *smc, void *key)
net/smc/af_smc.c
810
wq = rcu_dereference(smc->sk.sk_wq);
net/smc/af_smc.c
840
static void smc_fback_forward_wakeup(struct smc_sock *smc, struct sock *clcsk,
net/smc/af_smc.c
857
smc_fback_wakeup_waitqueue(smc, mark.key);
net/smc/af_smc.c
864
struct smc_sock *smc;
net/smc/af_smc.c
867
smc = smc_clcsock_user_data(clcsk);
net/smc/af_smc.c
868
if (smc)
net/smc/af_smc.c
869
smc_fback_forward_wakeup(smc, clcsk,
net/smc/af_smc.c
870
smc->clcsk_state_change);
net/smc/af_smc.c
876
struct smc_sock *smc;
net/smc/af_smc.c
879
smc = smc_clcsock_user_data(clcsk);
net/smc/af_smc.c
880
if (smc)
net/smc/af_smc.c
881
smc_fback_forward_wakeup(smc, clcsk,
net/smc/af_smc.c
882
smc->clcsk_data_ready);
net/smc/af_smc.c
888
struct smc_sock *smc;
net/smc/af_smc.c
891
smc = smc_clcsock_user_data(clcsk);
net/smc/af_smc.c
892
if (smc)
net/smc/af_smc.c
893
smc_fback_forward_wakeup(smc, clcsk,
net/smc/af_smc.c
894
smc->clcsk_write_space);
net/smc/af_smc.c
900
struct smc_sock *smc;
net/smc/af_smc.c
903
smc = smc_clcsock_user_data(clcsk);
net/smc/af_smc.c
904
if (smc)
net/smc/af_smc.c
905
smc_fback_forward_wakeup(smc, clcsk,
net/smc/af_smc.c
906
smc->clcsk_error_report);
net/smc/af_smc.c
91
sock_net(skb->sk)->smc.limit_smc_hs))
net/smc/af_smc.c
910
static void smc_fback_replace_callbacks(struct smc_sock *smc)
net/smc/af_smc.c
912
struct sock *clcsk = smc->clcsock->sk;
net/smc/af_smc.c
915
__rcu_assign_sk_user_data_with_flags(clcsk, smc, SK_USER_DATA_NOCOPY);
net/smc/af_smc.c
918
&smc->clcsk_state_change);
net/smc/af_smc.c
920
&smc->clcsk_data_ready);
net/smc/af_smc.c
922
&smc->clcsk_write_space);
net/smc/af_smc.c
924
&smc->clcsk_error_report);
net/smc/af_smc.c
929
static int smc_switch_to_fallback(struct smc_sock *smc, int reason_code)
net/smc/af_smc.c
933
mutex_lock(&smc->clcsock_release_lock);
net/smc/af_smc.c
934
if (!smc->clcsock) {
net/smc/af_smc.c
939
smc->use_fallback = true;
net/smc/af_smc.c
940
smc->fallback_rsn = reason_code;
net/smc/af_smc.c
941
smc_stat_fallback(smc);
net/smc/af_smc.c
942
trace_smc_switch_to_fallback(smc, reason_code);
net/smc/af_smc.c
943
if (smc->sk.sk_socket && smc->sk.sk_socket->file) {
net/smc/af_smc.c
944
smc->clcsock->file = smc->sk.sk_socket->file;
net/smc/af_smc.c
945
smc->clcsock->file->private_data = smc->clcsock;
net/smc/af_smc.c
946
smc->clcsock->wq.fasync_list =
net/smc/af_smc.c
947
smc->sk.sk_socket->wq.fasync_list;
net/smc/af_smc.c
948
smc->sk.sk_socket->wq.fasync_list = NULL;
net/smc/af_smc.c
954
smc_fback_replace_callbacks(smc);
net/smc/af_smc.c
957
mutex_unlock(&smc->clcsock_release_lock);
net/smc/af_smc.c
962
static int smc_connect_fallback(struct smc_sock *smc, int reason_code)
net/smc/af_smc.c
964
struct net *net = sock_net(&smc->sk);
net/smc/af_smc.c
967
rc = smc_switch_to_fallback(smc, reason_code);
net/smc/af_smc.c
969
this_cpu_inc(net->smc.smc_stats->clnt_hshake_err_cnt);
net/smc/af_smc.c
970
if (smc->sk.sk_state == SMC_INIT)
net/smc/af_smc.c
971
sock_put(&smc->sk); /* passive closing */
net/smc/af_smc.c
974
smc_copy_sock_settings_to_clc(smc);
net/smc/af_smc.c
975
smc->connect_nonblock = 0;
net/smc/af_smc.c
976
if (smc->sk.sk_state == SMC_INIT)
net/smc/af_smc.c
977
smc->sk.sk_state = SMC_ACTIVE;
net/smc/af_smc.c
982
static int smc_connect_decline_fallback(struct smc_sock *smc, int reason_code,
net/smc/af_smc.c
985
struct net *net = sock_net(&smc->sk);
net/smc/af_smc.c
989
this_cpu_inc(net->smc.smc_stats->clnt_hshake_err_cnt);
net/smc/af_smc.c
990
if (smc->sk.sk_state == SMC_INIT)
net/smc/af_smc.c
991
sock_put(&smc->sk); /* passive closing */
net/smc/af_smc.c
995
rc = smc_clc_send_decline(smc, reason_code, version);
net/smc/af_smc.c
997
this_cpu_inc(net->smc.smc_stats->clnt_hshake_err_cnt);
net/smc/af_smc.c
998
if (smc->sk.sk_state == SMC_INIT)
net/smc/af_smc.c
999
sock_put(&smc->sk); /* passive closing */
net/smc/smc.h
335
static inline void smc_init_saved_callbacks(struct smc_sock *smc)
net/smc/smc.h
337
smc->clcsk_state_change = NULL;
net/smc/smc.h
338
smc->clcsk_data_ready = NULL;
net/smc/smc.h
339
smc->clcsk_write_space = NULL;
net/smc/smc.h
340
smc->clcsk_error_report = NULL;
net/smc/smc.h
404
static inline bool using_ipsec(struct smc_sock *smc)
net/smc/smc.h
406
return (smc->clcsock->sk->sk_policy[0] ||
net/smc/smc.h
407
smc->clcsock->sk->sk_policy[1]) ? true : false;
net/smc/smc.h
410
static inline bool using_ipsec(struct smc_sock *smc)
net/smc/smc_cdc.c
239
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
277
smc_tx_sndbuf_nonfull(smc);
net/smc/smc_cdc.c
288
static void smc_cdc_handle_urg_data_arrival(struct smc_sock *smc,
net/smc/smc_cdc.c
291
struct smc_connection *conn = &smc->conn;
net/smc/smc_cdc.c
297
if (!sock_flag(&smc->sk, SOCK_URGINLINE))
net/smc/smc_cdc.c
305
sk_send_sigurg(&smc->sk);
net/smc/smc_cdc.c
308
static void smc_cdc_msg_validate(struct smc_sock *smc, struct smc_cdc_msg *cdc,
net/smc/smc_cdc.c
311
struct smc_connection *conn = &smc->conn;
net/smc/smc_cdc.c
324
sock_hold(&smc->sk); /* sock_put in abort_work */
net/smc/smc_cdc.c
326
sock_put(&smc->sk);
net/smc/smc_cdc.c
33
struct smc_sock *smc;
net/smc/smc_cdc.c
330
static void smc_cdc_msg_recv_action(struct smc_sock *smc,
net/smc/smc_cdc.c
334
struct smc_connection *conn = &smc->conn;
net/smc/smc_cdc.c
37
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
372
smc_tx_sndbuf_nonfull(smc);
net/smc/smc_cdc.c
38
bh_lock_sock(&smc->sk);
net/smc/smc_cdc.c
380
smc_cdc_handle_urg_data_arrival(smc, &diff_prod);
net/smc/smc_cdc.c
386
smc->sk.sk_data_ready(&smc->sk);
net/smc/smc_cdc.c
389
smc->sk.sk_data_ready(&smc->sk);
net/smc/smc_cdc.c
398
if (!sock_owned_by_user(&smc->sk))
net/smc/smc_cdc.c
408
smc->sk.sk_write_space(&smc->sk);
net/smc/smc_cdc.c
412
smc->sk.sk_err = ECONNRESET;
net/smc/smc_cdc.c
416
smc->sk.sk_shutdown |= RCV_SHUTDOWN;
net/smc/smc_cdc.c
417
if (smc->clcsock && smc->clcsock->sk)
net/smc/smc_cdc.c
418
smc->clcsock->sk->sk_shutdown |= RCV_SHUTDOWN;
net/smc/smc_cdc.c
419
smc_sock_set_flag(&smc->sk, SOCK_DONE);
net/smc/smc_cdc.c
420
sock_hold(&smc->sk); /* sock_put in close_work */
net/smc/smc_cdc.c
422
sock_put(&smc->sk);
net/smc/smc_cdc.c
427
static void smc_cdc_msg_recv(struct smc_sock *smc, struct smc_cdc_msg *cdc)
net/smc/smc_cdc.c
429
sock_hold(&smc->sk);
net/smc/smc_cdc.c
430
bh_lock_sock(&smc->sk);
net/smc/smc_cdc.c
431
smc_cdc_msg_recv_action(smc, cdc);
net/smc/smc_cdc.c
432
bh_unlock_sock(&smc->sk);
net/smc/smc_cdc.c
433
sock_put(&smc->sk); /* no free sk in softirq-context */
net/smc/smc_cdc.c
447
struct smc_sock *smc;
net/smc/smc_cdc.c
455
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
456
smc_cdc_msg_recv(smc, (struct smc_cdc_msg *)&cdc);
net/smc/smc_cdc.c
475
struct smc_sock *smc;
net/smc/smc_cdc.c
489
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_cdc.c
492
smc_cdc_msg_validate(smc, cdc, link);
net/smc/smc_cdc.c
500
smc_cdc_msg_recv(smc, cdc);
net/smc/smc_cdc.c
59
if (sock_owned_by_user(&smc->sk))
net/smc/smc_cdc.c
69
smc_tx_sndbuf_nonfull(smc);
net/smc/smc_cdc.c
70
bh_unlock_sock(&smc->sk);
net/smc/smc_clc.c
1033
len = kernel_sendmsg(smc->clcsock, &msg, vec, i, plen);
net/smc/smc_clc.c
1035
smc->sk.sk_err = smc->clcsock->sk->sk_err;
net/smc/smc_clc.c
1036
reason_code = -smc->sk.sk_err;
net/smc/smc_clc.c
1039
smc->sk.sk_err = -reason_code;
net/smc/smc_clc.c
1155
static int smc_clc_send_confirm_accept(struct smc_sock *smc,
net/smc/smc_clc.c
1161
struct smc_connection *conn = &smc->conn;
net/smc/smc_clc.c
1208
return kernel_sendmsg(smc->clcsock, &msg, vec, 1,
net/smc/smc_clc.c
1213
int smc_clc_send_confirm(struct smc_sock *smc, bool clnt_first_contact,
net/smc/smc_clc.c
1223
len = smc_clc_send_confirm_accept(smc, &cclc, clnt_first_contact,
net/smc/smc_clc.c
1228
smc->sk.sk_err = -reason_code;
net/smc/smc_clc.c
1230
smc->sk.sk_err = smc->clcsock->sk->sk_err;
net/smc/smc_clc.c
1231
reason_code = -smc->sk.sk_err;
net/smc/smc_clc.c
1254
int smc_clc_srv_v2x_features_validate(struct smc_sock *smc,
net/smc/smc_clc.c
1259
struct net *net = sock_net(&smc->sk);
net/smc/smc_clc.c
1275
net->smc.sysctl_max_conns_per_lgr);
net/smc/smc_clc.c
1280
net->smc.sysctl_max_links_per_lgr);
net/smc/smc_clc.c
689
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
net/smc/smc_clc.c
692
long rcvtimeo = READ_ONCE(smc->clcsock->sk->sk_rcvtimeo);
net/smc/smc_clc.c
693
struct sock *clc_sk = smc->clcsock->sk;
net/smc/smc_clc.c
714
len = sock_recvmsg(smc->clcsock, &msg, krflags);
net/smc/smc_clc.c
718
smc->sk.sk_err = EINTR;
net/smc/smc_clc.c
727
smc->sk.sk_err = clc_sk->sk_err;
net/smc/smc_clc.c
731
smc->sk.sk_err = ECONNRESET;
net/smc/smc_clc.c
737
smc->sk.sk_err = -len;
net/smc/smc_clc.c
746
smc->sk.sk_err = EPROTO;
net/smc/smc_clc.c
761
len = sock_recvmsg(smc->clcsock, &msg, krflags);
net/smc/smc_clc.c
763
smc->sk.sk_err = EPROTO;
net/smc/smc_clc.c
777
len = sock_recvmsg(smc->clcsock, &msg, krflags);
net/smc/smc_clc.c
779
smc->sk.sk_err = EPROTO;
net/smc/smc_clc.c
790
smc->peer_diagnosis = ntohl(dclc->peer_diagnosis);
net/smc/smc_clc.c
793
smc->conn.lgr->sync_err = 1;
net/smc/smc_clc.c
794
smc_lgr_terminate_sched(smc->conn.lgr);
net/smc/smc_clc.c
804
int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info, u8 version)
net/smc/smc_clc.c
820
if ((!smc_conn_lgr_valid(&smc->conn) || !smc->conn.lgr->is_smcd) &&
net/smc/smc_clc.c
839
len = kernel_sendmsg(smc->clcsock, &msg, &vec, 1, send_len);
net/smc/smc_clc.c
846
int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini)
net/smc/smc_clc.c
854
struct net *net = sock_net(&smc->sk);
net/smc/smc_clc.c
886
rc = smc_clc_prfx_set(smc->clcsock, pclc_prfx, ipv6_prfx);
net/smc/smc_clc.c
993
v2_ext->max_conns = net->smc.sysctl_max_conns_per_lgr;
net/smc/smc_clc.c
994
v2_ext->max_links = net->smc.sysctl_max_links_per_lgr;
net/smc/smc_clc.h
447
int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
net/smc/smc_clc.h
449
int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info, u8 version);
net/smc/smc_clc.h
450
int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini);
net/smc/smc_clc.h
451
int smc_clc_send_confirm(struct smc_sock *smc, bool clnt_first_contact,
net/smc/smc_clc.h
453
int smc_clc_send_accept(struct smc_sock *smc, bool srv_first_contact,
net/smc/smc_clc.h
455
int smc_clc_srv_v2x_features_validate(struct smc_sock *smc,
net/smc/smc_close.c
114
static void smc_close_cancel_work(struct smc_sock *smc)
net/smc/smc_close.c
116
struct sock *sk = &smc->sk;
net/smc/smc_close.c
119
if (cancel_work_sync(&smc->conn.close_work))
net/smc/smc_close.c
121
cancel_delayed_work_sync(&smc->conn.tx_work);
net/smc/smc_close.c
128
void smc_close_active_abort(struct smc_sock *smc)
net/smc/smc_close.c
130
struct sock *sk = &smc->sk;
net/smc/smc_close.c
133
if (sk->sk_state != SMC_INIT && smc->clcsock && smc->clcsock->sk) {
net/smc/smc_close.c
135
if (smc->clcsock && smc->clcsock->sk)
net/smc/smc_close.c
136
tcp_abort(smc->clcsock->sk, ECONNABORTED);
net/smc/smc_close.c
143
smc_close_cancel_work(smc);
net/smc/smc_close.c
153
smc_close_cancel_work(smc);
net/smc/smc_close.c
157
smc_conn_free(&smc->conn);
net/smc/smc_close.c
164
smc_close_cancel_work(smc);
net/smc/smc_close.c
168
smc_conn_free(&smc->conn);
net/smc/smc_close.c
182
smc_clcsock_release(smc);
net/smc/smc_close.c
193
int smc_close_active(struct smc_sock *smc)
net/smc/smc_close.c
196
&smc->conn.local_tx_ctrl.conn_state_flags;
net/smc/smc_close.c
197
struct smc_connection *conn = &smc->conn;
net/smc/smc_close.c
198
struct sock *sk = &smc->sk;
net/smc/smc_close.c
217
if (smc->clcsock && smc->clcsock->sk) {
net/smc/smc_close.c
218
write_lock_bh(&smc->clcsock->sk->sk_callback_lock);
net/smc/smc_close.c
219
smc_clcsock_restore_cb(&smc->clcsock->sk->sk_data_ready,
net/smc/smc_close.c
220
&smc->clcsk_data_ready);
net/smc/smc_close.c
221
rcu_assign_sk_user_data(smc->clcsock->sk, NULL);
net/smc/smc_close.c
222
write_unlock_bh(&smc->clcsock->sk->sk_callback_lock);
net/smc/smc_close.c
223
rc = kernel_sock_shutdown(smc->clcsock, SHUT_RDWR);
net/smc/smc_close.c
227
flush_work(&smc->tcp_listen_work);
net/smc/smc_close.c
231
smc_close_stream_wait(smc, timeout);
net/smc/smc_close.c
24
void smc_clcsock_release(struct smc_sock *smc)
net/smc/smc_close.c
243
if (smc->clcsock && smc->clcsock->sk) {
net/smc/smc_close.c
244
rc1 = kernel_sock_shutdown(smc->clcsock,
net/smc/smc_close.c
265
smc_close_stream_wait(smc, timeout);
net/smc/smc_close.c
28
if (smc->listen_smc && current_work() != &smc->smc_listen_work)
net/smc/smc_close.c
29
cancel_work_sync(&smc->smc_listen_work);
net/smc/smc_close.c
30
mutex_lock(&smc->clcsock_release_lock);
net/smc/smc_close.c
31
if (smc->clcsock) {
net/smc/smc_close.c
312
static void smc_close_passive_abort_received(struct smc_sock *smc)
net/smc/smc_close.c
315
&smc->conn.local_tx_ctrl.conn_state_flags;
net/smc/smc_close.c
316
struct sock *sk = &smc->sk;
net/smc/smc_close.c
32
tcp = smc->clcsock;
net/smc/smc_close.c
33
smc->clcsock = NULL;
net/smc/smc_close.c
331
!smc_close_sent_any_close(&smc->conn))
net/smc/smc_close.c
36
mutex_unlock(&smc->clcsock_release_lock);
net/smc/smc_close.c
361
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_close.c
364
struct sock *sk = &smc->sk;
net/smc/smc_close.c
373
smc_close_passive_abort_received(smc);
net/smc/smc_close.c
437
if (smc->clcsock)
net/smc/smc_close.c
443
smc_clcsock_release(smc);
net/smc/smc_close.c
447
int smc_close_shutdown_write(struct smc_sock *smc)
net/smc/smc_close.c
449
struct smc_connection *conn = &smc->conn;
net/smc/smc_close.c
450
struct sock *sk = &smc->sk;
net/smc/smc_close.c
463
smc_close_stream_wait(smc, timeout);
net/smc/smc_close.c
476
smc_close_stream_wait(smc, timeout);
net/smc/smc_close.c
49
static void smc_close_stream_wait(struct smc_sock *smc, long timeout)
net/smc/smc_close.c
503
void smc_close_init(struct smc_sock *smc)
net/smc/smc_close.c
505
INIT_WORK(&smc->conn.close_work, smc_close_passive_work);
net/smc/smc_close.c
52
struct sock *sk = &smc->sk;
net/smc/smc_close.c
57
if (!smc_tx_prepared_sends(&smc->conn))
net/smc/smc_close.c
61
smc_tx_pending(&smc->conn);
net/smc/smc_close.c
63
smc->wait_close_tx_prepared = 1;
net/smc/smc_close.c
69
!smc_tx_prepared_sends(&smc->conn) ||
net/smc/smc_close.c
72
smc->conn.killed,
net/smc/smc_close.c
78
smc->wait_close_tx_prepared = 0;
net/smc/smc_close.c
81
void smc_close_wake_tx_prepared(struct smc_sock *smc)
net/smc/smc_close.c
83
if (smc->wait_close_tx_prepared)
net/smc/smc_close.c
85
smc->sk.sk_state_change(&smc->sk);
net/smc/smc_close.h
22
void smc_close_wake_tx_prepared(struct smc_sock *smc);
net/smc/smc_close.h
23
int smc_close_active(struct smc_sock *smc);
net/smc/smc_close.h
24
int smc_close_shutdown_write(struct smc_sock *smc);
net/smc/smc_close.h
25
void smc_close_init(struct smc_sock *smc);
net/smc/smc_close.h
26
void smc_clcsock_release(struct smc_sock *smc);
net/smc/smc_close.h
28
void smc_close_active_abort(struct smc_sock *smc);
net/smc/smc_core.c
1033
static int smc_switch_cursor(struct smc_sock *smc, struct smc_cdc_tx_pend *pend,
net/smc/smc_core.c
1036
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
1067
atomic_set(&smc->conn.peer_rmbe_space, smc_write_space(conn));
net/smc/smc_core.c
1069
if (smc->sk.sk_state != SMC_INIT &&
net/smc/smc_core.c
1070
smc->sk.sk_state != SMC_CLOSED) {
net/smc/smc_core.c
1074
smc->sk.sk_data_ready(&smc->sk);
net/smc/smc_core.c
1102
struct smc_sock *smc;
net/smc/smc_core.c
1129
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1131
if (smc->sk.sk_state == SMC_INIT)
net/smc/smc_core.c
1133
if (smc->sk.sk_state == SMC_CLOSED ||
net/smc/smc_core.c
1134
smc->sk.sk_state == SMC_PEERCLOSEWAIT1 ||
net/smc/smc_core.c
1135
smc->sk.sk_state == SMC_PEERCLOSEWAIT2 ||
net/smc/smc_core.c
1136
smc->sk.sk_state == SMC_APPFINCLOSEWAIT ||
net/smc/smc_core.c
1137
smc->sk.sk_state == SMC_APPCLOSEWAIT1 ||
net/smc/smc_core.c
1138
smc->sk.sk_state == SMC_APPCLOSEWAIT2 ||
net/smc/smc_core.c
1139
smc->sk.sk_state == SMC_PEERFINCLOSEWAIT ||
net/smc/smc_core.c
1140
smc->sk.sk_state == SMC_PEERABORTWAIT ||
net/smc/smc_core.c
1141
smc->sk.sk_state == SMC_PROCESSABORT) {
net/smc/smc_core.c
1147
sock_hold(&smc->sk);
net/smc/smc_core.c
1156
rc = smc_switch_cursor(smc, pend, wr_buf);
net/smc/smc_core.c
1158
sock_put(&smc->sk);
net/smc/smc_core.c
1225
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1237
SMC_STAT_RMB_SIZE(smc, is_smcd, false, false, bufsize);
net/smc/smc_core.c
1248
SMC_STAT_RMB_SIZE(smc, is_smcd, true, false, bufsize);
net/smc/smc_core.c
1507
static void smc_sk_wake_ups(struct smc_sock *smc)
net/smc/smc_core.c
1509
smc->sk.sk_write_space(&smc->sk);
net/smc/smc_core.c
1510
smc->sk.sk_data_ready(&smc->sk);
net/smc/smc_core.c
1511
smc->sk.sk_state_change(&smc->sk);
net/smc/smc_core.c
1517
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1524
smc->sk.sk_err = ECONNABORTED;
net/smc/smc_core.c
1525
smc_sk_wake_ups(smc);
net/smc/smc_core.c
1538
smc_close_active_abort(smc);
net/smc/smc_core.c
1562
struct smc_sock *smc;
net/smc/smc_core.c
1577
smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1578
sock_hold(&smc->sk); /* sock_put below */
net/smc/smc_core.c
1579
lock_sock(&smc->sk);
net/smc/smc_core.c
1581
release_sock(&smc->sk);
net/smc/smc_core.c
1582
sock_put(&smc->sk); /* sock_hold above */
net/smc/smc_core.c
169
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1749
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1751
lock_sock(&smc->sk);
net/smc/smc_core.c
1753
release_sock(&smc->sk);
net/smc/smc_core.c
1754
sock_put(&smc->sk); /* sock_hold done by schedulers of abort_work */
net/smc/smc_core.c
183
sock_hold(&smc->sk); /* sock_put in smc_lgr_unregister_conn() */
net/smc/smc_core.c
1976
int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini)
net/smc/smc_core.c
1978
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
1979
struct net *net = sock_net(&smc->sk);
net/smc/smc_core.c
198
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_core.c
1991
role = smc->listen_smc ? SMC_SERV : SMC_CLNT;
net/smc/smc_core.c
2039
rc = smc_lgr_create(smc, ini);
net/smc/smc_core.c
2059
INIT_WORK(&smc->conn.abort_work, smc_conn_abort_work);
net/smc/smc_core.c
206
sock_put(&smc->sk); /* sock_hold in smc_lgr_register_conn() */
net/smc/smc_core.c
2426
static int __smc_buf_create(struct smc_sock *smc, bool is_smcd, bool is_rmb)
net/smc/smc_core.c
2429
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
2438
bufsize = smc->sk.sk_rcvbuf / 2;
net/smc/smc_core.c
2441
bufsize = smc->sk.sk_sndbuf / 2;
net/smc/smc_core.c
2458
SMC_STAT_RMB_SIZE(smc, is_smcd, is_rmb, true, bufsize);
net/smc/smc_core.c
2459
SMC_STAT_BUF_REUSE(smc, is_smcd, is_rmb);
net/smc/smc_core.c
2473
SMC_STAT_RMB_DOWNGRADED(smc, is_smcd, is_rmb);
net/smc/smc_core.c
2478
SMC_STAT_RMB_ALLOC(smc, is_smcd, is_rmb);
net/smc/smc_core.c
2479
SMC_STAT_RMB_SIZE(smc, is_smcd, is_rmb, true, bufsize);
net/smc/smc_core.c
2500
smc->sk.sk_rcvbuf = bufsize * 2;
net/smc/smc_core.c
2508
smc->sk.sk_sndbuf = bufsize * 2;
net/smc/smc_core.c
2546
int smc_buf_create(struct smc_sock *smc, bool is_smcd)
net/smc/smc_core.c
2552
smc_ism_support_dmb_nocopy(smc->conn.lgr->smcd))
net/smc/smc_core.c
2555
rc = __smc_buf_create(smc, is_smcd, false);
net/smc/smc_core.c
2561
rc = __smc_buf_create(smc, is_smcd, true);
net/smc/smc_core.c
2562
if (rc && smc->conn.sndbuf_desc) {
net/smc/smc_core.c
2563
down_write(&smc->conn.lgr->sndbufs_lock);
net/smc/smc_core.c
2564
smc_lgr_buf_list_del(smc->conn.lgr, false,
net/smc/smc_core.c
2565
smc->conn.sndbuf_desc);
net/smc/smc_core.c
2566
up_write(&smc->conn.lgr->sndbufs_lock);
net/smc/smc_core.c
2567
smc_buf_free(smc->conn.lgr, false, smc->conn.sndbuf_desc);
net/smc/smc_core.c
2568
smc->conn.sndbuf_desc = NULL;
net/smc/smc_core.c
2573
int smcd_buf_attach(struct smc_sock *smc)
net/smc/smc_core.c
2575
struct smc_connection *conn = &smc->conn;
net/smc/smc_core.c
2594
smc->sk.sk_sndbuf = buf_desc->len;
net/smc/smc_core.c
889
static int smc_lgr_create(struct smc_sock *smc, struct smc_init_info *ini)
net/smc/smc_core.c
957
lgr->role = smc->listen_smc ? SMC_SERV : SMC_CLNT;
net/smc/smc_core.c
981
smc_llc_lgr_init(lgr, smc);
net/smc/smc_core.c
993
lgr->buf_type = lgr->net->smc.sysctl_smcr_buf_type;
net/smc/smc_core.c
996
smc->conn.lgr = lgr;
net/smc/smc_core.h
583
int smc_buf_create(struct smc_sock *smc, bool is_smcd);
net/smc/smc_core.h
584
int smcd_buf_attach(struct smc_sock *smc);
net/smc/smc_core.h
599
int smc_conn_create(struct smc_sock *smc, struct smc_init_info *ini);
net/smc/smc_diag.c
101
fallback.reason = smc->fallback_rsn;
net/smc/smc_diag.c
102
fallback.peer_diagnosis = smc->peer_diagnosis;
net/smc/smc_diag.c
107
smc->conn.alert_token_local) {
net/smc/smc_diag.c
108
struct smc_connection *conn = &smc->conn;
net/smc/smc_diag.c
146
if (smc_conn_lgr_valid(&smc->conn) && !smc->conn.lgr->is_smcd &&
net/smc/smc_diag.c
148
!list_empty(&smc->conn.lgr->list)) {
net/smc/smc_diag.c
149
struct smc_link *link = smc->conn.lnk;
net/smc/smc_diag.c
152
.role = smc->conn.lgr->role,
net/smc/smc_diag.c
165
if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd &&
net/smc/smc_diag.c
167
!list_empty(&smc->conn.lgr->list) && smc->conn.rmb_desc) {
net/smc/smc_diag.c
168
struct smc_connection *conn = &smc->conn;
net/smc/smc_diag.c
37
struct smc_sock *smc = smc_sk(sk);
net/smc/smc_diag.c
42
if (!smc->clcsock)
net/smc/smc_diag.c
44
r->id.idiag_sport = htons(smc->clcsock->sk->sk_num);
net/smc/smc_diag.c
45
r->id.idiag_dport = smc->clcsock->sk->sk_dport;
net/smc/smc_diag.c
46
r->id.idiag_if = smc->clcsock->sk->sk_bound_dev_if;
net/smc/smc_diag.c
48
r->id.idiag_src[0] = smc->clcsock->sk->sk_rcv_saddr;
net/smc/smc_diag.c
49
r->id.idiag_dst[0] = smc->clcsock->sk->sk_daddr;
net/smc/smc_diag.c
52
memcpy(&r->id.idiag_src, &smc->clcsock->sk->sk_v6_rcv_saddr,
net/smc/smc_diag.c
53
sizeof(smc->clcsock->sk->sk_v6_rcv_saddr));
net/smc/smc_diag.c
54
memcpy(&r->id.idiag_dst, &smc->clcsock->sk->sk_v6_daddr,
net/smc/smc_diag.c
55
sizeof(smc->clcsock->sk->sk_v6_daddr));
net/smc/smc_diag.c
77
struct smc_sock *smc = smc_sk(sk);
net/smc/smc_diag.c
91
if (smc->use_fallback)
net/smc/smc_diag.c
93
else if (smc_conn_lgr_valid(&smc->conn) && smc->conn.lgr->is_smcd)
net/smc/smc_inet.c
63
struct smc_sock smc;
net/smc/smc_llc.c
2146
void smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc)
net/smc/smc_llc.c
2148
struct net *net = sock_net(smc->clcsock->sk);
net/smc/smc_llc.c
2159
lgr->llc_testlink_time = READ_ONCE(net->smc.sysctl_smcr_testlink_time);
net/smc/smc_llc.c
2160
lgr->max_send_wr = (u16)(READ_ONCE(net->smc.sysctl_smcr_max_send_wr));
net/smc/smc_llc.c
2161
lgr->max_recv_wr = (u16)(READ_ONCE(net->smc.sysctl_smcr_max_recv_wr));
net/smc/smc_llc.h
91
void smc_llc_lgr_init(struct smc_link_group *lgr, struct smc_sock *smc);
net/smc/smc_rx.c
100
static void smc_rx_update_cons(struct smc_sock *smc, size_t len)
net/smc/smc_rx.c
102
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
106
smc_rx_update_consumer(smc, cons, len);
net/smc/smc_rx.c
110
struct smc_sock *smc;
net/smc/smc_rx.c
118
struct smc_sock *smc = priv->smc;
net/smc/smc_rx.c
120
struct sock *sk = &smc->sk;
net/smc/smc_rx.c
126
conn = &smc->conn;
net/smc/smc_rx.c
128
smc_rx_update_cons(smc, priv->len);
net/smc/smc_rx.c
157
struct smc_sock *smc)
net/smc/smc_rx.c
159
struct smc_link_group *lgr = smc->conn.lgr;
net/smc/smc_rx.c
168
nr_pages = !lgr->is_smcd && smc->conn.rmb_desc->is_vm ?
net/smc/smc_rx.c
187
(!lgr->is_smcd && !smc->conn.rmb_desc->is_vm)) {
net/smc/smc_rx.c
190
priv[0]->smc = smc;
net/smc/smc_rx.c
191
partial[0].offset = src - (char *)smc->conn.rmb_desc->cpu_addr;
net/smc/smc_rx.c
194
pages[0] = smc->conn.rmb_desc->pages;
net/smc/smc_rx.c
202
priv[i]->smc = smc;
net/smc/smc_rx.c
221
sock_hold(&smc->sk);
net/smc/smc_rx.c
222
if (!lgr->is_smcd && smc->conn.rmb_desc->is_vm) {
net/smc/smc_rx.c
226
get_page(smc->conn.rmb_desc->pages);
net/smc/smc_rx.c
228
atomic_add(bytes, &smc->conn.splice_pending);
net/smc/smc_rx.c
263
int smc_rx_wait(struct smc_sock *smc, long *timeo, size_t peeked,
net/smc/smc_rx.c
267
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
270
struct sock *sk = &smc->sk;
net/smc/smc_rx.c
289
static int smc_rx_recv_urg(struct smc_sock *smc, struct msghdr *msg, int len,
net/smc/smc_rx.c
292
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
294
struct sock *sk = &smc->sk;
net/smc/smc_rx.c
302
SMC_STAT_INC(smc, urg_data_cnt);
net/smc/smc_rx.c
305
smc->conn.urg_state = SMC_URG_READ;
net/smc/smc_rx.c
319
smc_rx_update_consumer(smc, cons, 0);
net/smc/smc_rx.c
333
static bool smc_rx_recvmsg_data_available(struct smc_sock *smc, size_t peeked)
net/smc/smc_rx.c
335
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
341
smc_rx_update_cons(smc, 0);
net/smc/smc_rx.c
352
int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg,
net/smc/smc_rx.c
357
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
371
sk = &smc->sk;
net/smc/smc_rx.c
375
return smc_rx_recv_urg(smc, msg, len, flags);
net/smc/smc_rx.c
381
SMC_STAT_RMB_RX_FULL(smc, !conn->lnk);
net/smc/smc_rx.c
384
SMC_STAT_RMB_RX_SIZE_SMALL(smc, !conn->lnk);
net/smc/smc_rx.c
395
if (smc_rx_recvmsg_data_available(smc, peeked_bytes))
net/smc/smc_rx.c
402
if (smc_rx_recvmsg_data_available(smc, peeked_bytes))
net/smc/smc_rx.c
437
smc_rx_wait(smc, &timeo, peeked_bytes, smc_rx_data_available);
net/smc/smc_rx.c
451
smc_rx_wait(smc, &timeo, peeked_bytes, func);
net/smc/smc_rx.c
462
sock_flag(&smc->sk, SOCK_URGINLINE) &&
net/smc/smc_rx.c
483
smc);
net/smc/smc_rx.c
511
if (msg && smc_rx_update_consumer(smc, cons, copylen))
net/smc/smc_rx.c
515
trace_smc_rx_recvmsg(smc, copylen);
net/smc/smc_rx.c
522
void smc_rx_init(struct smc_sock *smc)
net/smc/smc_rx.c
524
smc->sk.sk_data_ready = smc_rx_wake_up;
net/smc/smc_rx.c
525
atomic_set(&smc->conn.splice_pending, 0);
net/smc/smc_rx.c
526
smc->conn.urg_state = SMC_URG_READ;
net/smc/smc_rx.c
59
static int smc_rx_update_consumer(struct smc_sock *smc,
net/smc/smc_rx.c
62
struct smc_connection *conn = &smc->conn;
net/smc/smc_rx.c
63
struct sock *sk = &smc->sk;
net/smc/smc_rx.h
20
void smc_rx_init(struct smc_sock *smc);
net/smc/smc_rx.h
22
int smc_rx_recvmsg(struct smc_sock *smc, struct msghdr *msg,
net/smc/smc_rx.h
24
int smc_rx_wait(struct smc_sock *smc, long *timeo, size_t peeked,
net/smc/smc_stats.c
106
stats_pload = &stats->smc[tech].tx_pd;
net/smc/smc_stats.c
108
stats_pload = &stats->smc[tech].rx_pd;
net/smc/smc_stats.c
110
stats_pload = &stats->smc[tech].tx_rmbsize;
net/smc/smc_stats.c
112
stats_pload = &stats->smc[tech].rx_rmbsize;
net/smc/smc_stats.c
171
smc_tech = &stats->smc[tech];
net/smc/smc_stats.c
23
net->smc.fback_rsn = kzalloc_obj(*net->smc.fback_rsn);
net/smc/smc_stats.c
24
if (!net->smc.fback_rsn)
net/smc/smc_stats.c
26
net->smc.smc_stats = alloc_percpu(struct smc_stats);
net/smc/smc_stats.c
27
if (!net->smc.smc_stats)
net/smc/smc_stats.c
29
mutex_init(&net->smc.mutex_fback_rsn);
net/smc/smc_stats.c
293
src = (u64 *)per_cpu_ptr(net->smc.smc_stats, cpu);
net/smc/smc_stats.c
33
kfree(net->smc.fback_rsn);
net/smc/smc_stats.c
340
trgt_arr = &net->smc.fback_rsn->srv[0];
net/smc/smc_stats.c
342
trgt_arr = &net->smc.fback_rsn->clnt[0];
net/smc/smc_stats.c
357
net->smc.fback_rsn->srv_fback_cnt,
net/smc/smc_stats.c
361
net->smc.fback_rsn->clnt_fback_cnt,
net/smc/smc_stats.c
396
mutex_lock(&net->smc.mutex_fback_rsn);
net/smc/smc_stats.c
40
kfree(net->smc.fback_rsn);
net/smc/smc_stats.c
41
if (net->smc.smc_stats)
net/smc/smc_stats.c
415
mutex_unlock(&net->smc.mutex_fback_rsn);
net/smc/smc_stats.c
42
free_percpu(net->smc.smc_stats);
net/smc/smc_stats.c
53
stats_rmb_cnt = &stats->smc[tech].rmb_tx;
net/smc/smc_stats.c
55
stats_rmb_cnt = &stats->smc[tech].rmb_rx;
net/smc/smc_stats.h
100
this_cpu_inc((*stats).smc[t].key ## _cnt); \
net/smc/smc_stats.h
105
this_cpu_inc((*stats).smc[t].key ## _pd.buf[_pos]); \
net/smc/smc_stats.h
106
this_cpu_add((*stats).smc[t].key ## _bytes, r); \
net/smc/smc_stats.h
114
struct smc_stats __percpu *_smc_stats = _net->smc.smc_stats; \
net/smc/smc_stats.h
129
struct smc_stats __percpu *_smc_stats = _net->smc.smc_stats; \
net/smc/smc_stats.h
153
this_cpu_inc((*stats).smc[t].k ## _rmbsize.buf[_pos]); \
net/smc/smc_stats.h
154
this_cpu_add((*stats).smc[t].k ## _rmbuse, _l); \
net/smc/smc_stats.h
156
this_cpu_sub((*stats).smc[t].k ## _rmbuse, _l); \
net/smc/smc_stats.h
162
this_cpu_inc((*(_smc_stats)).smc[t].rmb ## _ ## key.type ## _cnt)
net/smc/smc_stats.h
167
struct smc_stats __percpu *_smc_stats = _net->smc.smc_stats; \
net/smc/smc_stats.h
186
struct smc_stats __percpu *_smc_stats = net->smc.smc_stats; \
net/smc/smc_stats.h
200
#define SMC_STAT_BUF_REUSE(smc, is_smcd, is_rx) \
net/smc/smc_stats.h
201
SMC_STAT_RMB(smc, reuse, is_smcd, is_rx)
net/smc/smc_stats.h
203
#define SMC_STAT_RMB_ALLOC(smc, is_smcd, is_rx) \
net/smc/smc_stats.h
204
SMC_STAT_RMB(smc, alloc, is_smcd, is_rx)
net/smc/smc_stats.h
206
#define SMC_STAT_RMB_DOWNGRADED(smc, is_smcd, is_rx) \
net/smc/smc_stats.h
207
SMC_STAT_RMB(smc, dgrade, is_smcd, is_rx)
net/smc/smc_stats.h
209
#define SMC_STAT_RMB_TX_PEER_FULL(smc, is_smcd) \
net/smc/smc_stats.h
210
SMC_STAT_RMB(smc, buf_full_peer, is_smcd, false)
net/smc/smc_stats.h
212
#define SMC_STAT_RMB_TX_FULL(smc, is_smcd) \
net/smc/smc_stats.h
213
SMC_STAT_RMB(smc, buf_full, is_smcd, false)
net/smc/smc_stats.h
215
#define SMC_STAT_RMB_TX_PEER_SIZE_SMALL(smc, is_smcd) \
net/smc/smc_stats.h
216
SMC_STAT_RMB(smc, buf_size_small_peer, is_smcd, false)
net/smc/smc_stats.h
218
#define SMC_STAT_RMB_TX_SIZE_SMALL(smc, is_smcd) \
net/smc/smc_stats.h
219
SMC_STAT_RMB(smc, buf_size_small, is_smcd, false)
net/smc/smc_stats.h
221
#define SMC_STAT_RMB_RX_SIZE_SMALL(smc, is_smcd) \
net/smc/smc_stats.h
222
SMC_STAT_RMB(smc, buf_size_small, is_smcd, true)
net/smc/smc_stats.h
224
#define SMC_STAT_RMB_RX_FULL(smc, is_smcd) \
net/smc/smc_stats.h
225
SMC_STAT_RMB(smc, buf_full, is_smcd, true)
net/smc/smc_stats.h
232
struct smc_stats __percpu *smc_stats = net->smc.smc_stats; \
net/smc/smc_stats.h
234
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].type); \
net/smc/smc_stats.h
236
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].type); \
net/smc/smc_stats.h
245
struct smc_stats __percpu *smc_stats = (net)->smc.smc_stats; \
net/smc/smc_stats.h
247
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].clnt_v2_succ_cnt); \
net/smc/smc_stats.h
249
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].clnt_v2_succ_cnt); \
net/smc/smc_stats.h
251
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].clnt_v1_succ_cnt); \
net/smc/smc_stats.h
253
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].clnt_v1_succ_cnt); \
net/smc/smc_stats.h
263
typeof(net->smc.smc_stats) smc_stats = (net)->smc.smc_stats; \
net/smc/smc_stats.h
265
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].srv_v2_succ_cnt); \
net/smc/smc_stats.h
267
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].srv_v2_succ_cnt); \
net/smc/smc_stats.h
269
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].srv_v1_succ_cnt); \
net/smc/smc_stats.h
271
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].srv_v1_succ_cnt); \
net/smc/smc_stats.h
87
struct smc_stats_tech smc[2];
net/smc/smc_sysctl.c
103
.data = &init_net.smc.sysctl_autocorking_size,
net/smc/smc_sysctl.c
110
.data = &init_net.smc.sysctl_smcr_buf_type,
net/smc/smc_sysctl.c
119
.data = &init_net.smc.sysctl_smcr_testlink_time,
net/smc/smc_sysctl.c
126
.data = &init_net.smc.sysctl_wmem,
net/smc/smc_sysctl.c
135
.data = &init_net.smc.sysctl_rmem,
net/smc/smc_sysctl.c
144
.data = &init_net.smc.sysctl_max_links_per_lgr,
net/smc/smc_sysctl.c
153
.data = &init_net.smc.sysctl_max_conns_per_lgr,
net/smc/smc_sysctl.c
162
.data = &init_net.smc.limit_smc_hs,
net/smc/smc_sysctl.c
171
.data = &init_net.smc.sysctl_smcr_max_send_wr,
net/smc/smc_sysctl.c
180
.data = &init_net.smc.sysctl_smcr_max_recv_wr,
net/smc/smc_sysctl.c
190
.data = &init_net.smc.hs_ctrl,
net/smc/smc_sysctl.c
210
ctrl = rcu_dereference(init_net.smc.hs_ctrl);
net/smc/smc_sysctl.c
213
rcu_assign_pointer(net->smc.hs_ctrl, ctrl);
net/smc/smc_sysctl.c
225
net->smc.smc_hdr = register_net_sysctl_sz(net, "net/smc", table,
net/smc/smc_sysctl.c
227
if (!net->smc.smc_hdr)
net/smc/smc_sysctl.c
230
net->smc.sysctl_autocorking_size = SMC_AUTOCORKING_DEFAULT_SIZE;
net/smc/smc_sysctl.c
231
net->smc.sysctl_smcr_buf_type = SMCR_PHYS_CONT_BUFS;
net/smc/smc_sysctl.c
232
net->smc.sysctl_smcr_testlink_time = SMC_LLC_TESTLINK_DEFAULT_TIME;
net/smc/smc_sysctl.c
233
WRITE_ONCE(net->smc.sysctl_wmem, net_smc_wmem_init);
net/smc/smc_sysctl.c
234
WRITE_ONCE(net->smc.sysctl_rmem, net_smc_rmem_init);
net/smc/smc_sysctl.c
235
net->smc.sysctl_max_links_per_lgr = SMC_LINKS_PER_LGR_MAX_PREFER;
net/smc/smc_sysctl.c
236
net->smc.sysctl_max_conns_per_lgr = SMC_CONN_PER_LGR_PREFER;
net/smc/smc_sysctl.c
237
net->smc.sysctl_smcr_max_send_wr = SMCR_MAX_SEND_WR_DEF;
net/smc/smc_sysctl.c
238
net->smc.sysctl_smcr_max_recv_wr = SMCR_MAX_RECV_WR_DEF;
net/smc/smc_sysctl.c
240
net->smc.limit_smc_hs = 0;
net/smc/smc_sysctl.c
258
table = net->smc.smc_hdr->ctl_table_arg;
net/smc/smc_sysctl.c
259
unregister_net_sysctl_table(net->smc.smc_hdr);
net/smc/smc_sysctl.c
51
if (ctrl == rcu_dereference(net->smc.hs_ctrl)) {
net/smc/smc_sysctl.c
61
ctrl = unrcu_pointer(xchg(&net->smc.hs_ctrl, RCU_INITIALIZER(ctrl)));
net/smc/smc_sysctl.c
73
struct net *net = container_of(ctl->data, struct net, smc.hs_ctrl);
net/smc/smc_sysctl.c
83
ctrl = rcu_dereference(net->smc.hs_ctrl);
net/smc/smc_sysctl.h
25
net->smc.sysctl_autocorking_size = SMC_AUTOCORKING_DEFAULT_SIZE;
net/smc/smc_sysctl.h
26
net->smc.sysctl_max_links_per_lgr = SMC_LINKS_PER_LGR_MAX_PREFER;
net/smc/smc_sysctl.h
27
net->smc.sysctl_max_conns_per_lgr = SMC_CONN_PER_LGR_PREFER;
net/smc/smc_sysctl.h
28
net->smc.sysctl_smcr_max_send_wr = SMCR_MAX_SEND_WR_DEF;
net/smc/smc_sysctl.h
29
net->smc.sysctl_smcr_max_recv_wr = SMCR_MAX_RECV_WR_DEF;
net/smc/smc_tracepoint.h
18
TP_PROTO(const struct smc_sock *smc, int fallback_rsn),
net/smc/smc_tracepoint.h
20
TP_ARGS(smc, fallback_rsn),
net/smc/smc_tracepoint.h
30
const struct sock *sk = &smc->sk;
net/smc/smc_tracepoint.h
31
const struct sock *clcsk = smc->clcsock->sk;
net/smc/smc_tracepoint.h
4
#define TRACE_SYSTEM smc
net/smc/smc_tracepoint.h
46
TP_PROTO(const struct smc_sock *smc, size_t len),
net/smc/smc_tracepoint.h
48
TP_ARGS(smc, len),
net/smc/smc_tracepoint.h
51
__field(const void *, smc)
net/smc/smc_tracepoint.h
54
__string(name, smc->conn.lnk->ibname)
net/smc/smc_tracepoint.h
58
const struct sock *sk = &smc->sk;
net/smc/smc_tracepoint.h
60
__entry->smc = smc;
net/smc/smc_tracepoint.h
67
__entry->smc, __entry->net_cookie,
net/smc/smc_tracepoint.h
73
TP_PROTO(const struct smc_sock *smc, size_t len),
net/smc/smc_tracepoint.h
75
TP_ARGS(smc, len)
net/smc/smc_tracepoint.h
80
TP_PROTO(const struct smc_sock *smc, size_t len),
net/smc/smc_tracepoint.h
82
TP_ARGS(smc, len)
net/smc/smc_tx.c
127
static bool smc_tx_is_corked(struct smc_sock *smc)
net/smc/smc_tx.c
129
struct tcp_sock *tp = tcp_sk(smc->clcsock->sk);
net/smc/smc_tx.c
145
static bool smc_should_autocork(struct smc_sock *smc)
net/smc/smc_tx.c
147
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
151
sock_net(&smc->sk)->smc.sysctl_autocorking_size);
net/smc/smc_tx.c
159
static bool smc_tx_should_cork(struct smc_sock *smc, struct msghdr *msg)
net/smc/smc_tx.c
161
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
163
if (smc_should_autocork(smc))
net/smc/smc_tx.c
171
smc_tx_is_corked(smc)) &&
net/smc/smc_tx.c
181
int smc_tx_sendmsg(struct smc_sock *smc, struct msghdr *msg, size_t len)
net/smc/smc_tx.c
185
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
187
struct sock *sk = &smc->sk;
net/smc/smc_tx.c
205
SMC_STAT_RMB_TX_SIZE_SMALL(smc, !conn->lnk);
net/smc/smc_tx.c
208
SMC_STAT_RMB_TX_PEER_SIZE_SMALL(smc, !conn->lnk);
net/smc/smc_tx.c
211
SMC_STAT_INC(smc, urg_data_cnt);
net/smc/smc_tx.c
214
if (smc->sk.sk_shutdown & SEND_SHUTDOWN ||
net/smc/smc_tx.c
215
(smc->sk.sk_err == ECONNABORTED) ||
net/smc/smc_tx.c
227
rc = smc_tx_wait(smc, msg->msg_flags);
net/smc/smc_tx.c
284
if (!smc_tx_should_cork(smc, msg))
net/smc/smc_tx.c
287
trace_smc_tx_sendmsg(smc, copylen);
net/smc/smc_tx.c
44
struct smc_sock *smc = smc_sk(sk);
net/smc/smc_tx.c
48
if (atomic_read(&smc->conn.sndbuf_space) && sock) {
net/smc/smc_tx.c
487
struct smc_sock *smc = container_of(conn, struct smc_sock,
net/smc/smc_tx.c
489
SMC_STAT_RMB_TX_PEER_FULL(smc, !conn->lnk);
net/smc/smc_tx.c
50
SMC_STAT_RMB_TX_FULL(smc, !smc->conn.lnk);
net/smc/smc_tx.c
565
struct smc_sock *smc =
net/smc/smc_tx.c
568
if (smc->sk.sk_err == ECONNABORTED)
net/smc/smc_tx.c
569
return sock_error(&smc->sk);
net/smc/smc_tx.c
629
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
638
SMC_STAT_RMB_TX_PEER_FULL(smc, !conn->lnk);
net/smc/smc_tx.c
654
smc_close_wake_tx_prepared(smc);
net/smc/smc_tx.c
667
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
67
void smc_tx_sndbuf_nonfull(struct smc_sock *smc)
net/smc/smc_tx.c
670
if (smc->sk.sk_err)
net/smc/smc_tx.c
688
struct smc_sock *smc = container_of(conn, struct smc_sock, conn);
net/smc/smc_tx.c
69
if (smc->sk.sk_socket &&
net/smc/smc_tx.c
690
lock_sock(&smc->sk);
net/smc/smc_tx.c
692
release_sock(&smc->sk);
net/smc/smc_tx.c
70
test_bit(SOCK_NOSPACE, &smc->sk.sk_socket->flags))
net/smc/smc_tx.c
71
smc->sk.sk_write_space(&smc->sk);
net/smc/smc_tx.c
734
void smc_tx_init(struct smc_sock *smc)
net/smc/smc_tx.c
736
smc->sk.sk_write_space = smc_tx_write_space;
net/smc/smc_tx.c
77
static int smc_tx_wait(struct smc_sock *smc, int flags)
net/smc/smc_tx.c
80
struct smc_connection *conn = &smc->conn;
net/smc/smc_tx.c
81
struct sock *sk = &smc->sk;
net/smc/smc_tx.h
32
void smc_tx_init(struct smc_sock *smc);
net/smc/smc_tx.h
33
int smc_tx_sendmsg(struct smc_sock *smc, struct msghdr *msg, size_t len);
net/smc/smc_tx.h
35
void smc_tx_sndbuf_nonfull(struct smc_sock *smc);
tools/testing/selftests/bpf/progs/bpf_smc.c
35
int BPF_PROG(bpf_smc_switch_to_fallback, struct smc_sock___local *smc)
tools/testing/selftests/bpf/progs/bpf_smc.c
38
if (smc && !smc->listen_smc)
tools/testing/selftests/bpf/progs/bpf_smc.c
91
if (!task || !task->nsproxy->net_ns->smc.hs_ctrl)
tools/testing/selftests/kvm/lib/arm64/processor.c
661
__smccc_call(smc, function_id, arg0, arg1, arg2, arg3, arg4, arg5,