Subversion Repositories Kolibri OS

Rev

Rev 3780 | Rev 4265 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3780 Rev 3908
Line 2409... Line 2409...
2409
  * eax = -1 - error (there is too many threads)
2409
  * eax = -1 - error (there is too many threads)
2410
  * otherwise eax = TID - thread identifier
2410
  * otherwise eax = TID - thread identifier
2411
    
2411
    
Line 2412... Line 2412...
2412
 
2412
 
2413
======================================================================
-
 
2414
=========================== Function 52 ==============================
-
 
2415
======================================================================
-
 
2416
 
-
 
2417
WARNING: This function is obsolete and is only present in the
-
 
2418
	 documentation as a guide to understand/port the older network
-
 
2419
         applications. For new programs, use function 74
-
 
2420
 
-
 
2421
======================================================================
-
 
2422
=== Function 52, subfunction 0 - get network driver configuration. ===
-
 
2423
======================================================================
-
 
2424
 
-
 
2425
Parameters:
-
 
2426
  * eax = 52 - function number
-
 
2427
  * ebx = 0 - subfunction number
-
 
2428
Returned value:
-
 
2429
  * eax = configuration dword
-
 
2430
Remarks:
-
 
2431
  * Configuration dword can be set by subfunction 2.
-
 
2432
  * The kernel does not use this variable. The value of this
-
 
2433
    variable and working with it subfunctions 0 and 2 is represented
-
 
2434
    doubtful.
-
 
2435
 
-
 
2436
======================================================================
-
 
2437
========= Function 52, subfunction 1 - get local IP-address. =========
-
 
2438
======================================================================
-
 
2439
Parameters:
-
 
2440
  * eax = 52 - function number
-
 
2441
  * ebx = 1 - subfunction number
-
 
2442
Returned value:
-
 
2443
  * eax = IP-address (4 bytes)
-
 
2444
Remarks:
-
 
2445
  * Local IP-address is set by subfunction 3.
-
 
2446
 
-
 
2447
======================================================================
-
 
2448
=== Function 52, subfunction 2 - set network driver configuration. ===
-
 
2449
======================================================================
-
 
2450
Parameters:
-
 
2451
  * eax = 52 - function number
-
 
2452
  * ebx = 2 - subfunction number
-
 
2453
  * ecx = configuration dword; if low 7 bits derivate the number 3,
-
 
2454
    function [re-]initializes Ethernet-card, otherwise
-
 
2455
    Ethernet turns off
-
 
2456
Returned value:
-
 
2457
  * if Ethernet-interface is not requested, function returns eax=2,
-
 
2458
    but this can be changed in future kernel versions
-
 
2459
  * if Ethernet-interface is requested, eax=0 means error
-
 
2460
    (absence of Ethernet-card), and nonzero value - success
-
 
2461
Remarks:
-
 
2462
  * Configuration dword can be read by subfunction 0.
-
 
2463
  * The kernel does not use this variable. The value of this
-
 
2464
    variable, subfunction 0 and part of subfunction 2, which set it,
-
 
2465
    is represented doubtful.
-
 
2466
 
-
 
2467
======================================================================
-
 
2468
========= Function 52, subfunction 3 - set local IP-address. =========
-
 
2469
======================================================================
-
 
2470
Parameters:
-
 
2471
  * eax = 52 - function number
-
 
2472
  * ebx = 3 - subfunction number
-
 
2473
  * ecx = IP-address (4 bytes)
-
 
2474
Returned value:
-
 
2475
  * the current implementation returns eax=3, but this can be changed
-
 
2476
    in future versions
-
 
2477
Remarks:
-
 
2478
  * Local IP-address can be get by subfunction 1.
-
 
2479
 
-
 
2480
======================================================================
-
 
2481
= Function 52, subfunction 6 - add data to the stack of input queue. =
-
 
2482
======================================================================
-
 
2483
Parameters:
-
 
2484
  * eax = 52 - function number
-
 
2485
  * ebx = 6 - subfunction number
-
 
2486
  * edx = data size
-
 
2487
  * esi = data pointer
-
 
2488
Returned value:
-
 
2489
  * eax = -1 - error
-
 
2490
  * eax = 0 - success
-
 
2491
Remarks:
-
 
2492
  * This function is intended only for slow network drivers
-
 
2493
    (PPP, SLIP).
-
 
2494
  * Data size must not exceed 1500 bytes, though function
-
 
2495
    performs no checks on correctness.
-
 
2496
 
-
 
2497
======================================================================
-
 
2498
 Function 52, subfunction 8 - read data from the network output queue.
-
 
2499
======================================================================
-
 
2500
Parameters:
-
 
2501
  * eax = 52 - function number
-
 
2502
  * ebx = 8 - subfunction number
-
 
2503
  * esi = pointer to 1500-byte buffer
-
 
2504
Returned value:
-
 
2505
  * eax = number of read bytes (in the current implementation
-
 
2506
    either 0 = no data or 1500)
-
 
2507
  * data was copied in buffer
-
 
2508
Remarks:
-
 
2509
  * This function is intended only for slow network drivers
-
 
2510
    (PPP, SLIP).
-
 
2511
 
-
 
2512
======================================================================
-
 
2513
============ Function 52, subfunction 9 - get gateway IP. ============
-
 
2514
======================================================================
-
 
2515
Parameters:
-
 
2516
  * eax = 52 - function number
-
 
2517
  * ebx = 9 - subfunction number
-
 
2518
Returned value:
-
 
2519
  * eax = gateway IP (4 bytes)
-
 
2520
 
-
 
2521
======================================================================
-
 
2522
=========== Function 52, subfunction 10 - get subnet mask. ===========
-
 
2523
======================================================================
-
 
2524
Parameters:
-
 
2525
  * eax = 52 - function number
-
 
2526
  * ebx = 10 - subfunction number
-
 
2527
Returned value:
-
 
2528
  * eax = subnet mask
-
 
2529
 
-
 
2530
======================================================================
-
 
2531
============ Function 52, subfunction 11 - set gateway IP. ===========
-
 
2532
======================================================================
-
 
2533
Parameters:
-
 
2534
  * eax = 52 - function number
-
 
2535
  * ebx = 11 - subfunction number
-
 
2536
  * ecx = gateway IP (4 bytes)
-
 
2537
Returned value:
-
 
2538
  * the current implementation returns eax=11, but this can be changed
-
 
2539
    in future versions
-
 
2540
 
-
 
2541
======================================================================
-
 
2542
=========== Function 52, subfunction 12 - set subnet mask. ===========
-
 
2543
======================================================================
-
 
2544
Parameters:
-
 
2545
  * eax = 52 - function number
-
 
2546
  * ebx = 12 - subfunction number
-
 
2547
  * ecx = subnet mask
-
 
2548
Returned value:
-
 
2549
  * the current implementation returns eax=12, but this can be changed
-
 
2550
    in future versions
-
 
2551
 
-
 
2552
======================================================================
-
 
2553
============== Function 52, subfunction 13 - get DNS IP. =============
-
 
2554
======================================================================
-
 
2555
Parameters:
-
 
2556
  * eax = 52 - function number
-
 
2557
  * ebx = 13 - subfunction number
-
 
2558
Returned value:
-
 
2559
  * eax = DNS IP (4 bytes)
-
 
2560
 
-
 
2561
======================================================================
-
 
2562
============== Function 52, subfunction 14 - set DNS IP. =============
-
 
2563
======================================================================
-
 
2564
Parameters:
-
 
2565
  * eax = 52 - function number
-
 
2566
  * ebx = 14 - subfunction number
-
 
2567
  * ecx = DNS IP (4 bytes)
-
 
2568
Returned value:
-
 
2569
  * the current implementation returns eax=14, but this can be changed
-
 
2570
    in future versions
-
 
2571
 
-
 
2572
======================================================================
-
 
2573
======== Function 52, subfunction 15 - get local MAC address. ========
-
 
2574
======================================================================
-
 
2575
Parameters:
-
 
2576
  * eax = 52 - function number
-
 
2577
  * ebx = 15 - subfunction number
-
 
2578
  * ecx = 0 - read first 4 bytes,
-
 
2579
    ecx = 4 - read last 2 bytes
-
 
2580
Returned value:
-
 
2581
  * for ecx=0: eax = first 4 bytes of MAC address
-
 
2582
  * for ecx=4: ax = last 2 bytes of MAC address,
-
 
2583
               high half of eax is destroyed
-
 
2584
  * for other ecx: eax = -1 indicates an error
-
 
2585
 
-
 
2586
======================================================================
-
 
2587
=========================== Function 53 ==============================
-
 
2588
======================================================================
-
 
2589
 
-
 
2590
WARNING: This function is obsolete and is only present in the
-
 
2591
	 documentation as a guide to understand/port the older network
-
 
2592
         applications. For new programs, use function 75.
-
 
2593
 
-
 
2594
======================================================================
-
 
2595
============ Function 53, subfunction 0 - open UDP-socket. ===========
-
 
2596
======================================================================
-
 
2597
Parameters:
-
 
2598
  * eax = 53 - function number
-
 
2599
  * ebx = 0 - subfunction number
-
 
2600
  * ecx = local port (only low word is taken into account),
-
 
2601
    ecx = 0 - let the system choose a port
-
 
2602
  * edx = remote port (only low word is taken into account)
-
 
2603
  * esi = remote IP
-
 
2604
Returned value:
-
 
2605
  * eax = -1 = 0xFFFFFFFF - error; ebx destroyed
-
 
2606
  * eax = socket handle (some number which unambiguously identifies
-
 
2607
    socket and have sense only for the system) - success;
-
 
2608
    ebx destroyed
-
 
2609
 
-
 
2610
======================================================================
-
 
2611
=========== Function 53, subfunction 1 - close UDP-socket. ===========
-
 
2612
======================================================================
-
 
2613
Parameters:
-
 
2614
  * eax = 53 - function number
-
 
2615
  * ebx = 1 - subfunction number
-
 
2616
  * ecx = socket handle
-
 
2617
Returned value:
-
 
2618
  * eax = -1 - incorrect handle
-
 
2619
  * eax = 0 - success
-
 
2620
  * ebx destroyed
-
 
2621
Remarks:
-
 
2622
  * The current implementation does not close automatically all
-
 
2623
    sockets of a thread at termination. In particular, one should not
-
 
2624
    kill a thread with many opened sockets - there will be an outflow
-
 
2625
    of resources.
-
 
2626
 
-
 
2627
======================================================================
-
 
2628
============== Function 53, subfunction 2 - poll socket. =============
-
 
2629
======================================================================
-
 
2630
Parameters:
-
 
2631
  * eax = 53 - function number
-
 
2632
  * ebx = 2 - subfunction number
-
 
2633
  * ecx = socket handle
-
 
2634
Returned value:
-
 
2635
  * eax = number of read bytes, 0 for incorrect handle
-
 
2636
  * ebx destroyed
-
 
2637
 
-
 
2638
======================================================================
-
 
2639
========= Function 53, subfunction 3 - read byte from socket. ========
-
 
2640
======================================================================
-
 
2641
Parameters:
-
 
2642
  * eax = 53 - function number
-
 
2643
  * ebx = 3 - subfunction number
-
 
2644
  * ecx = socket handle
-
 
2645
Returned value:
-
 
2646
  * if there is no read data or handle is incorrect: eax=0, bl=0,
-
 
2647
    other bytes of ebx are destroyed
-
 
2648
  * if there are read data: eax=number of rest bytes
-
 
2649
    (possibly 0), bl=read byte, other bytes of ebx are destroyed
-
 
2650
 
-
 
2651
======================================================================
-
 
2652
========== Function 53, subfunction 4 - write to UDP-socket. =========
-
 
2653
======================================================================
-
 
2654
Parameters:
-
 
2655
  * eax = 53 - function number
-
 
2656
  * ebx = 4 - subfunction number
-
 
2657
  * ecx = socket handle
-
 
2658
  * edx = number of bytes to write
-
 
2659
  * esi = pointer to data to write
-
 
2660
Returned value:
-
 
2661
  * eax = 0xffffffff - error (invalid handle or not enough memory)
-
 
2662
  * eax = 0 - success
-
 
2663
  * ebx destroyed
-
 
2664
Remarks:
-
 
2665
  * Number of bytes to write must not exceed 1500-28, though
-
 
2666
    the appropriate check is not made.
-
 
2667
 
-
 
2668
======================================================================
-
 
2669
============ Function 53, subfunction 5 - open TCP-socket. ===========
-
 
2670
======================================================================
-
 
2671
Parameters:
-
 
2672
  * eax = 53 - function number
-
 
2673
  * ebx = 5 - subfunction number
-
 
2674
  * ecx = local port (only low word is taken into account),
-
 
2675
    ecx = 0 - let the system choose a port
-
 
2676
  * edx = remote port (only low word is taken into account)
-
 
2677
  * esi = remote IP
-
 
2678
  * edi = open mode: SOCKET_PASSIVE=0 or SOCKET_ACTIVE=1
-
 
2679
Returned value:
-
 
2680
  * eax = -1 = 0xFFFFFFFF - error; ebx destroys
-
 
2681
  * eax = socket handle (some number which unambiguously identifies
-
 
2682
    socket and have sense only for the system) - success;
-
 
2683
    ebx destroyed
-
 
2684
 
-
 
2685
======================================================================
-
 
2686
========= Function 53, subfunction 6 - get TCP-socket status. ========
-
 
2687
======================================================================
-
 
2688
Parameters:
-
 
2689
  * eax = 53 - function number
-
 
2690
  * ebx = 6 - subfunction number
-
 
2691
  * ecx = socket handle
-
 
2692
Returned value:
-
 
2693
  * eax = 0 for incorrect handle or socket status: one of
-
 
2694
  * TCB_LISTEN = 1
-
 
2695
  * TCB_SYN_SENT = 2
-
 
2696
  * TCB_SYN_RECEIVED = 3
-
 
2697
  * TCB_ESTABLISHED = 4
-
 
2698
  * TCB_FIN_WAIT_1 = 5
-
 
2699
  * TCB_FIN_WAIT_2 = 6
-
 
2700
  * TCB_CLOSE_WAIT = 7
-
 
2701
  * TCB_CLOSING = 8
-
 
2702
  * TCB_LAST_ASK = 9
-
 
2703
  * TCB_TIME_WAIT = 10
-
 
2704
  * TCB_CLOSED = 11
-
 
2705
  * ebx destroyed
-
 
2706
 
-
 
2707
======================================================================
-
 
2708
========== Function 53, subfunction 7 - write to TCP-socket. =========
-
 
2709
======================================================================
-
 
2710
Parameters:
-
 
2711
  * eax = 53 - function number
-
 
2712
  * ebx = 7 - subfunction number
-
 
2713
  * ecx = socket handle
-
 
2714
  * edx = number of bytes to write
-
 
2715
  * esi = pointer to data to write
-
 
2716
Returned value:
-
 
2717
  * eax = 0xffffffff - error (invalid handle or not enough memory)
-
 
2718
  * eax = 0 - success
-
 
2719
  * ebx destroyed
-
 
2720
Remarks:
-
 
2721
  * Number of bytes to write must not exceed 1500-40, though
-
 
2722
    the appropriate check is not made.
-
 
2723
 
-
 
2724
======================================================================
-
 
2725
=========== Function 53, subfunction 8 - close TCP-socket. ===========
-
 
2726
======================================================================
-
 
2727
Parameters:
-
 
2728
  * eax = 53 - function number
-
 
2729
  * ebx = 8 - subfunction number
-
 
2730
  * ecx = socket handle
-
 
2731
Returned value:
-
 
2732
  * eax = -1 - error (invalid handle or
-
 
2733
    not enough memory for socket close packet)
-
 
2734
  * eax = 0 - success
-
 
2735
  * ebx destroyed
-
 
2736
Remarks:
-
 
2737
  * The current implementation does not close automatically all
-
 
2738
    sockets of a thread at termination. In particular, one should not
-
 
2739
    kill a thread with many opened sockets - there will be an outflow
-
 
2740
    of resources.
-
 
2741
 
-
 
2742
======================================================================
-
 
2743
=== Function 53, subfunction 9 - check whether local port is free. ===
-
 
2744
======================================================================
-
 
2745
Parameters:
-
 
2746
  * eax = 53 - function number
-
 
2747
  * ebx = 9 - subfunction number
-
 
2748
  * ecx = local port number (low 16 bits are used only)
-
 
2749
Returned value:
-
 
2750
  * eax = 0 - port is used
-
 
2751
  * eax = 1 - port is free
-
 
2752
  * ebx destroyed
-
 
2753
 
-
 
2754
======================================================================
-
 
2755
===== Function 53, subfunction 10 - query Ethernet cable status. =====
-
 
2756
======================================================================
-
 
2757
Parameters:
-
 
2758
  * eax = 53 - function number
-
 
2759
  * ebx = 10 - subfunction number
-
 
2760
Returned value:
-
 
2761
  * al = -1 - a network driver is not loaded or
-
 
2762
              does not support this function
-
 
2763
  * al = 0 - Ethernet cable is unplugged
-
 
2764
  * al = 1 - Ethernet cable is plugged
-
 
2765
  * ebx destroyed
-
 
2766
Remarks:
-
 
2767
  * The current kernel implementation supports this function
-
 
2768
    only for RTL8139 network cards.
-
 
2769
 
-
 
2770
======================================================================
-
 
2771
======= Function 53, subfunction 11 - read network stack data. =======
-
 
2772
======================================================================
-
 
2773
Paramters:
-
 
2774
  * eax = 53 - function number
-
 
2775
  * ebx = 11 - subfunction number
-
 
2776
  * ecx = socket handle
-
 
2777
  * edx = pointer to buffer
-
 
2778
  * esi = number of bytes to read;
-
 
2779
  * esi = 0 - read all data (maximum 4096 bytes)
-
 
2780
Returned value:
-
 
2781
  * eax = number of bytes read (0 for incorrect handle)
-
 
2782
  * ebx destroyed
-
 
2783
 
-
 
2784
======================================================================
-
 
2785
= Function 53, subfunction 255 - debug information of network driver.
-
 
2786
======================================================================
-
 
2787
Parameters:
-
 
2788
  * eax = 53 - function number
-
 
2789
  * ebx = 255 - subfunction number
-
 
2790
  * ecx = type of requested information (see below)
-
 
2791
Returned value:
-
 
2792
  * eax = requested information
-
 
2793
  * ebx destroyed
-
 
2794
Possible values for ecx:
-
 
2795
  * 100: length of queue 0 (empty queue)
-
 
2796
  * 101: length of queue 1 (ip-out queue)
-
 
2797
  * 102: length of queue 2 (ip-in queue)
-
 
2798
  * 103: length of queue 3 (net1out queue)
-
 
2799
  * 200: number of items in the ARP table
-
 
2800
  * 201: size of the ARP table (in items) (20 for current version)
-
 
2801
  * 202: read item at edx of the ARP table to the temporary buffer,
-
 
2802
    whence 5 following types take information;
-
 
2803
    in this case eax is not defined
-
 
2804
  * 203: IP-address saved by type 202
-
 
2805
  * 204: high dword of MAC-address saved by type 202
-
 
2806
  * 205: low word of MAC-address saved by type 202
-
 
2807
  * 206: status word saved by type 202
-
 
2808
  * 207: ttl word saved by type 202
-
 
2809
  * 2: total number of received IP-packets
-
 
2810
  * 3: total number of transferred IP-packets
-
 
2811
  * 4: total number of dumped received packets
-
 
2812
  * 5: total number of received ARP-packets
-
 
2813
  * 6: status of packet driver, 0=inactive, nonzero=active
-
 
2814
 
-
 
2815
======================================================================
2413
======================================================================
2816
 Function 55, subfunction 55 - begin to play data on built-in speaker.
2414
 Function 55, subfunction 55 - begin to play data on built-in speaker.
2817
======================================================================
2415
======================================================================
2818
Parameters:
2416
Parameters:
2819
  * eax = 55 - function number
2417
  * eax = 55 - function number
Line 3877... Line 3475...
3877
  * In current implementation only mask for user excepton handler,
3475
  * In current implementation only mask for user excepton handler,
3878
    which has been previously set by subfunction 24,
3476
    which has been previously set by subfunction 24,
3879
    is changed. Signal number corresponds to exception number.
3477
    is changed. Signal number corresponds to exception number.
Line 3880... Line 3478...
3880
 
3478
 
-
 
3479
======================================================================
-
 
3480
====== Function 68, subfunction 26 - release memory pages ============
-
 
3481
======================================================================
-
 
3482
Parameters:
-
 
3483
  * eax = 68 - function number
-
 
3484
  * ebx = 26 - subfunction number
-
 
3485
  * ecx = pointer to the memory block, allocated by subfunction 12
-
 
3486
  * edx = offset from the block beginnings
-
 
3487
  * esi = the size of the region of memory to release, in bytes
-
 
3488
Remarks:
-
 
3489
  * function release range of pages from ecx+edx to ecx+edx+esi
-
 
3490
    and set virtual memory into reserved state.
-
 
3491
 
-
 
3492
======================================================================
-
 
3493
========== Function 68, subfunction 27 - load file ===================
-
 
3494
======================================================================
-
 
3495
Parameters:
-
 
3496
  * eax = 68 - function number
-
 
3497
  * ebx = 27 - subfunction number
-
 
3498
  * ecx = pointer to ASCIIZ-string with the filename
-
 
3499
Returned value:
-
 
3500
  * eax = pointer to the loaded file, or zero
-
 
3501
  * edx = size of the loaded file, or zero
-
 
3502
Remarks:
-
 
3503
  * function loads file and unpacks, if necessary
-
 
3504
 
3881
======================================================================
3505
======================================================================
3882
====================== Function 69 - debugging. ======================
3506
====================== Function 69 - debugging. ======================
3883
======================================================================
3507
======================================================================
3884
A process can load other process as debugged by set of corresponding
3508
A process can load other process as debugged by set of corresponding
3885
bit by call to subfunction 7 of function 70.
3509
bit by call to subfunction 7 of function 70.
Line 4674... Line 4298...
4674
  * ecx = domain
4298
  * ecx = domain
4675
  * edx = type
4299
  * edx = type
4676
  * esi = protocol
4300
  * esi = protocol
4677
Returned value:
4301
Returned value:
4678
  * eax = socket number, -1 on error
4302
  * eax = socket number, -1 on error
-
 
4303
  * ebx = errorcode
Line 4679... Line 4304...
4679
 
4304
 
4680
======================================================================
4305
======================================================================
4681
============= Function 75, Subfunction 1, Close socket. ==============
4306
============= Function 75, Subfunction 1, Close socket. ==============
4682
======================================================================
4307
======================================================================
4683
Parameters:
4308
Parameters:
4684
  * eax = 75 - function number
4309
  * eax = 75 - function number
4685
  * bl = 1 - subfunction number
4310
  * bl = 1 - subfunction number
4686
  * ecx = socket number
4311
  * ecx = socket number
4687
Returned value:
4312
Returned value:
-
 
4313
  * eax = -1 on error
Line 4688... Line 4314...
4688
  * eax = -1 on error
4314
  * ebx = errorcode
4689
 
4315
 
4690
======================================================================
4316
======================================================================
4691
================== Function 75, Subfunction 2, Bind. =================
4317
================== Function 75, Subfunction 2, Bind. =================
Line 4696... Line 4322...
4696
  * ecx = socket number
4322
  * ecx = socket number
4697
  * edx = pointer to sockaddr structure
4323
  * edx = pointer to sockaddr structure
4698
  * esi = length of sockaddr structure
4324
  * esi = length of sockaddr structure
4699
Returned value:
4325
Returned value:
4700
  * eax = -1 on error
4326
  * eax = -1 on error
-
 
4327
  * ebx = errorcode
Line 4701... Line 4328...
4701
 
4328
 
4702
======================================================================
4329
======================================================================
4703
================= Function 75, Subfunction 3, Listen. ================
4330
================= Function 75, Subfunction 3, Listen. ================
4704
======================================================================
4331
======================================================================
Line 4707... Line 4334...
4707
  * bl = 3 - subfunction number
4334
  * bl = 3 - subfunction number
4708
  * ecx = socket number
4335
  * ecx = socket number
4709
  * edx = backlog
4336
  * edx = backlog
4710
Returned value:
4337
Returned value:
4711
  * eax = -1 on error
4338
  * eax = -1 on error
-
 
4339
  * ebx = errorcode
Line 4712... Line 4340...
4712
 
4340
 
4713
======================================================================
4341
======================================================================
4714
================ Function 75, Subfunction 4, Connect. ================
4342
================ Function 75, Subfunction 4, Connect. ================
4715
======================================================================
4343
======================================================================
Line 4719... Line 4347...
4719
  * ecx = socket number
4347
  * ecx = socket number
4720
  * edx = pointer to sockaddr structure
4348
  * edx = pointer to sockaddr structure
4721
  * esi = length of sockaddr structure
4349
  * esi = length of sockaddr structure
4722
Returned value:
4350
Returned value:
4723
  * eax = -1 on error
4351
  * eax = -1 on error
-
 
4352
  * ebx = errorcode
Line 4724... Line 4353...
4724
 
4353
 
4725
======================================================================
4354
======================================================================
4726
================= Function 75, Subfunction 5, Accept. ================
4355
================= Function 75, Subfunction 5, Accept. ================
4727
======================================================================
4356
======================================================================
Line 4730... Line 4359...
4730
  * bl = 5 - subfunction number
4359
  * bl = 5 - subfunction number
4731
  * ecx = socket number
4360
  * ecx = socket number
4732
  * edx = pointer to sockaddr structure
4361
  * edx = pointer to sockaddr structure
4733
  * esi = length of sockaddr structure
4362
  * esi = length of sockaddr structure
4734
Returned value:
4363
Returned value:
-
 
4364
  * eax = socket number of accepted socket, -1 on error
4735
  * eax = -1 on error
4365
  * ebx = errorcode
Line 4736... Line 4366...
4736
 
4366
 
4737
======================================================================
4367
======================================================================
4738
================== Function 75, Subfunction 6, Send. =================
4368
================== Function 75, Subfunction 6, Send. =================
4739
======================================================================
4369
======================================================================
4740
Parameters:
4370
Parameters:
4741
  * eax = 75 - function number
4371
  * eax = 75 - function number
4742
  * bl = 6 - subfunction number
4372
  * bl = 6 - subfunction number
4743
  * ecx = socket number
4373
  * ecx = socket number
4744
  * edx = pointer to buffer
4374
  * edx = pointer to buffer
-
 
4375
  * esi = length of buffer
4745
  * esi = length of buffer
4376
  * edi = flags
4746
Returned value:
4377
Returned value:
-
 
4378
  * eax = number of bytes copied, -1 on error
Line 4747... Line 4379...
4747
  * eax = number of bytes copied, -1 on error
4379
  * ebx = errorcode
4748
 
4380
 
4749
======================================================================
4381
======================================================================
4750
================ Function 75, Subfunction 7, Receive. ================
4382
================ Function 75, Subfunction 7, Receive. ================
Line 4756... Line 4388...
4756
  * edx = pointer to buffer
4388
  * edx = pointer to buffer
4757
  * esi = length of buffer
4389
  * esi = length of buffer
4758
  * edi = flags
4390
  * edi = flags
4759
Returned value:
4391
Returned value:
4760
  * eax = number of bytes copied, -1 on error
4392
  * eax = number of bytes copied, -1 on error
-
 
4393
  * ebx = errorcode
Line 4761... Line 4394...
4761
 
4394
 
4762
======================================================================
4395
======================================================================
4763
=========== Function 75, Subfunction 8, Set socket options. ==========
4396
=========== Function 75, Subfunction 8, Set socket options. ==========
4764
======================================================================
4397
======================================================================
Line 4767... Line 4400...
4767
  * bl = 8 - subfunction number
4400
  * bl = 8 - subfunction number
4768
  * ecx = socket number
4401
  * ecx = socket number
4769
  * edx = pointer to optstruct
4402
  * edx = pointer to optstruct
4770
Returned value:
4403
Returned value:
4771
  * eax = -1 on error
4404
  * eax = -1 on error
-
 
4405
  * ebx = errorcode
4772
Remarks:
4406
Remarks:
Line 4773... Line 4407...
4773
 
4407
 
4774
  Optstruct: dd level
4408
  Optstruct: dd level
4775
             dd optionname
4409
             dd optionname
Line 4784... Line 4418...
4784
  * bl = 9 - subfunction number
4418
  * bl = 9 - subfunction number
4785
  * ecx = socket number
4419
  * ecx = socket number
4786
  * edx = pointer to optstruct
4420
  * edx = pointer to optstruct
4787
Returned value:
4421
Returned value:
4788
  * eax = -1 on error
4422
  * eax = -1 on error
-
 
4423
  * ebx = errorcode
4789
Remarks:
4424
Remarks:
Line 4790... Line 4425...
4790
 
4425
 
4791
  Optstruct: dd level
4426
  Optstruct: dd level
4792
             dd optionname
4427
             dd optionname
Line 4799... Line 4434...
4799
Parameters:
4434
Parameters:
4800
  * eax = 75 - function number
4435
  * eax = 75 - function number
4801
  * bl = 10 - subfunction number
4436
  * bl = 10 - subfunction number
4802
Returned value:
4437
Returned value:
4803
  * eax = socketnum1, -1 on error
4438
  * eax = socketnum1, -1 on error
4804
  * ebx = socketnum2
4439
  * ebx = socketnum2, errorcode on error
4805
Remarks:
4440
Remarks:
Line 4806... Line 4441...
4806
 
4441
 
4807
  Optstruct: dd level
4442
  Optstruct: dd level
4808
             dd optionname
4443
             dd optionname