Michael Brown
4c418d2100
Use net_device_operations structure and netdev_nullify() to allow for
...
safe dropping of the netdev ref by the driver while other refs still
exist.
Add netdev_irq() method. Net device open()/close() methods should no
longer enable or disable IRQs.
Remove rx_quota; it wasn't used anywhere and added too much complexity
to implementing correct interrupt-masking behaviour in pxe_undi.c.
2007-07-07 16:43:39 +01:00
Michael Brown
2823688a92
Revert "Replace natsemi driver with Indolent's updated one that uses the gPXE API"
...
This reverts commit 3487640397
.
2007-07-07 16:40:58 +01:00
Michael Brown
627feee265
Merge branch 'zalloc'
2007-07-07 04:01:52 +01:00
Michael Brown
436adb2890
Revert "convert to zalloc"
...
This reverts commit 68add6e814
.
2007-07-07 03:59:37 +01:00
Holger Lubitz
85e04b5837
Revert "convert to zalloc"
...
This reverts commit a4bea78974
.
2007-07-07 01:56:37 +02:00
Holger Lubitz
e3c72a3438
Revert "convert to zalloc"
...
This reverts commit 3414fd8df8
.
2007-07-07 01:56:27 +02:00
Holger Lubitz
ac323c5e4d
Revert "convert to zalloc"
...
This reverts commit 636bd2cd0a
.
2007-07-07 01:56:15 +02:00
Holger Lubitz
50fe2159d5
Revert "convert to zalloc"
...
This reverts commit 7297f04481
.
2007-07-07 01:55:45 +02:00
Holger Lubitz
a772dc4a2a
Revert "convert to zalloc"
...
This reverts commit 5ce16b03a1
.
2007-07-07 01:55:23 +02:00
Holger Lubitz
a4d3476e0e
convert to zalloc
2007-07-06 21:08:54 +02:00
Holger Lubitz
389c63d7c4
convert to zalloc
2007-07-06 21:08:41 +02:00
Holger Lubitz
32e4ca8ae3
convert to zalloc
2007-07-06 21:08:29 +02:00
Holger Lubitz
1ccb6f9dc6
convert to zalloc
2007-07-06 21:08:21 +02:00
Holger Lubitz
da3c785816
convert to zalloc
2007-07-06 20:52:58 +02:00
Holger Lubitz
2b9fb513f4
convert to zalloc
2007-07-06 20:52:01 +02:00
Holger Lubitz
7872b890fe
convert to zalloc
2007-07-06 20:50:32 +02:00
Holger Lubitz
7fa85d19b9
convert to zalloc
2007-07-06 20:49:26 +02:00
Holger Lubitz
dc6c1c294d
convert to zalloc
2007-07-06 20:47:15 +02:00
Holger Lubitz
68add6e814
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
5ce16b03a1
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
7297f04481
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
636bd2cd0a
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
3414fd8df8
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
a4bea78974
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
6def8592ed
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
75ff85441b
convert to zalloc
2007-07-06 20:42:05 +02:00
Holger Lubitz
f77d9469a4
convert to zalloc
2007-07-06 20:19:55 +02:00
Holger Lubitz
aca232c973
convert to zalloc
2007-07-06 20:19:55 +02:00
Holger Lubitz
6d0332b5b3
convert to zalloc
2007-07-06 20:19:55 +02:00
Holger Lubitz
c7549bcebe
convert to zalloc
2007-07-06 20:19:06 +02:00
Holger Lubitz
bb61774ee4
convert to zalloc
2007-07-06 20:19:06 +02:00
Michael Brown
934b70d62c
Apply global DHCP options when register_dhcp_options() is called. Do
...
not apply DHCP options in dhcp_configure_netdev().
2007-07-06 17:07:50 +01:00
Michael Brown
311637503d
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-06 13:31:58 +01:00
Michael Brown
bfc335faa8
Added PXENV_GET_FILE_SIZE.
...
Documented non-blocking nature of PXENV_FILE_READ.
Changed FileName field in PXENV_FILE_OPEN to be a SEGOFF16, to avoid a
fixed 256-byte length limit on URLs.
2007-07-06 13:31:40 +01:00
Michael Brown
f660e8ef58
Add strlen_user() (will be needed for PXE API extensions)
2007-07-06 13:07:10 +01:00
Marty Connor
74a1c77820
Merge branch 'master' of /pub/scm/gpxe
2007-07-06 08:04:55 -04:00
Marty Connor
28d8d828b3
Rename .lilo extension to .lkrn and updated dependencies
2007-07-06 08:04:06 -04:00
Michael Brown
763a3eab8a
Add .pdsk target (padded .dsk, suitable for qemu).
2007-07-05 23:37:17 +01:00
Michael Brown
405be071de
Pad ROM images to 512 bytes, not powers of two
2007-07-05 23:36:45 +01:00
Michael Brown
fbda4837b0
Allocate heap at first usage, rather than assuming we can fit it in
...
below _text. This should help with the gPXE-on-gPXE-via-PXE case.
2007-07-05 22:30:34 +01:00
Michael Brown
b3ca73c303
Remap EBADF to PXENV_STATUS_TFTP_FILE_NOT_FOUND; the only user is
...
posix_io.c and this PXE error makes more sense in this context.
2007-07-05 18:47:46 +01:00
Michael Brown
1567b69895
Add concept of DHCP option applicators.
2007-07-05 18:38:14 +01:00
Michael Brown
d64e1be1f8
First draft of PXE extensions API.
2007-07-05 18:03:09 +01:00
Michael Brown
ed7eae6005
Use netdev_rx_err() to report receive errors.
2007-07-05 17:23:03 +01:00
Michael Brown
539ff45fd0
Allow recording of TX and RX errors to aid in end-user debugging.
2007-07-05 17:18:27 +01:00
Michael Brown
07ea125213
Use partition type 0xeb ("EtherBoot"), to avoid any attempts to mount
...
the Etherboot partition.
2007-07-05 14:20:55 +01:00
Michael Brown
db1d99df39
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-05 14:15:58 +01:00
Michael Brown
6e082c9b81
Add .usb target
2007-07-05 14:15:43 +01:00
Marty Connor
3487640397
Replace natsemi driver with Indolent's updated one that uses the gPXE API
...
This version uses the gPXE driver API rather than the legacy wrapper API.
2007-07-05 08:54:12 -04:00
Michael Brown
a0f078d7f5
Working with multi-sector reads
2007-07-05 13:30:49 +01:00
Michael Brown
66208dd65d
hdprefix that works for LBA only
2007-07-05 12:58:16 +01:00
Michael Brown
839960276d
Miscellaneous efficiency improvements, and extend read_sectors to
...
handle multiple sectors.
2007-07-05 12:36:39 +01:00
Michael Brown
bdd1a0f462
Make masking constants unsigned, to avoid a gcc3-only compiler warning.
2007-07-05 12:04:53 +01:00
Michael Brown
8156f6bd19
Switch compiler warning on tcp_open() to a #warning
2007-07-05 12:00:35 +01:00
Marty Connor
1069a74d20
Warnings purge for via-velocity.[ch]
2007-07-04 21:58:28 -04:00
Marty Connor
8d39559192
Update warnings in depca.c ns8390.c
2007-07-04 20:14:10 -04:00
Marty Connor
13016297ed
Purge warnings from tg3.c
2007-07-04 19:49:46 -04:00
Marty Connor
a75fb80107
Merge branch 'master' of /pub/scm/gpxe
2007-07-04 19:47:13 -04:00
Marty Connor
e5950283ec
Purge warnings from prism2 drivers
2007-07-04 19:47:01 -04:00
Michael Brown
3c2d50e5de
Added active partition locator, and simple MBR built using it.
2007-07-05 00:21:01 +01:00
Michael Brown
738ebaf4a5
Revert "Added master boot record capable of locating active partition"
...
This reverts commit 844d088c51
.
2007-07-05 00:20:04 +01:00
Michael Brown
7918fc97b8
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-05 00:05:36 +01:00
Michael Brown
844d088c51
Added master boot record capable of locating active partition
...
(including logical partitions).
2007-07-05 00:05:26 +01:00
Michael Brown
5e3f2247e0
Kill off lots of warnings in via-velocity.c by correcting these definitions.
2007-07-04 23:36:16 +01:00
Marty Connor
77c1777b44
Merge branch 'master' of /pub/scm/gpxe
2007-07-04 18:33:22 -04:00
Marty Connor
b219814627
Remove deprecation of pci_bar_size()
2007-07-04 18:28:37 -04:00
Marty Connor
1af1668c95
Warnings purge of drivers (continued)
2007-07-04 05:52:56 -04:00
Michael Brown
ac69b85adb
UNDI loader entry point implemented; seems to work.
2007-07-04 03:23:02 +01:00
Michael Brown
0324d5ff70
!PXE and PXENV+ structures are in code segment, not data segment.
2007-07-04 03:20:18 +01:00
Michael Brown
1ecb9acb87
Fix typo
2007-07-04 02:25:07 +01:00
Michael Brown
fc5f6c9de2
Cope with builds with differing debug options within a second of each
...
other.
2007-07-04 02:24:24 +01:00
Michael Brown
dca470cb21
Add (untested) UNDI loader C-level implementation.
2007-07-03 23:41:35 +01:00
Michael Brown
7db6b4b79c
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-03 23:10:16 +01:00
Michael Brown
89349d7fad
Separated out initialisation functions from startup/shutdown functions.
2007-07-03 23:09:56 +01:00
Marty Connor
79238335b0
remove obsolete file: src/arch/i386/prefix/int19exit.c
2007-07-03 16:24:06 -04:00
Michael Brown
a5f33ea283
Added missing line to set return status code.
2007-07-03 21:22:12 +01:00
Michael Brown
01b3dd4fc3
Line buffer API changed a while ago
2007-07-03 21:21:50 +01:00
Marty Connor
ec0da04e7d
Warnings purge iscsiboot.c
2007-07-03 16:20:54 -04:00
Michael Brown
1f24ba73c4
Added missing "extern"
2007-07-03 21:12:54 +01:00
Michael Brown
cbd4542dc0
Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe
2007-07-03 21:09:26 +01:00
Marty Connor
6be8cdbb6f
Merge branch 'master' of /pub/scm/gpxe
2007-07-03 16:02:26 -04:00
Marty Connor
9b3c4e4d79
Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot
2007-07-03 16:02:15 -04:00
Michael Brown
b5311c2c88
This comment is no longer relevant.
2007-07-03 20:39:47 +01:00
Michael Brown
438d1cc0b9
Should be using the generic device probe mechanism, when (if) they
...
eventually get updated.
2007-07-03 20:39:30 +01:00
Michael Brown
fae10a7ca1
We don't actually use the reset functions anywhere, and nothing really
...
provides them.
2007-07-03 20:34:51 +01:00
Michael Brown
5ce5e6d846
Move pxe_netdev and set_pxe_netdev to pxe_undi.c and remove
...
now-obsolete pxe.c.
2007-07-03 20:21:16 +01:00
Michael Brown
fd86c819ba
Use a linker-table based system to automatically mark and start up
...
permanent processes, rather than requiring each one to have its own
initialisation function.
2007-07-03 20:09:14 +01:00
Marty Connor
4bcfe7507b
Merge branch 'master' of /pub/scm/gpxe
2007-07-03 13:20:54 -04:00
Marty Connor
c77704cb60
Warnings purge: src/{crypto,hci,net}
2007-07-03 13:20:22 -04:00
Michael Brown
0924cf678e
Implemented (untested) PXENV_START_UNDI.
2007-07-03 18:17:14 +01:00
Michael Brown
30a442aef8
Report our interface type as "gPXE" to avoid working around Etherboot
...
5.4 bugs when driving ourselves via UNDI.
2007-07-03 15:57:32 +01:00
Michael Brown
2dc8ed1eb8
Work around Etherboot 5.4 bug when multiple packets are received.
2007-07-03 15:53:29 +01:00
Michael Brown
ca4bd3e24e
Kill off now-redundant _irq() methods.
2007-07-03 15:37:56 +01:00
Michael Brown
1ce0b4bbfb
Kill off PXENV_UNDI_FORCE_INTERRUPT support; we have no reason to
...
suspect that we need it, and implementing it would require needlessly
complicating the net device API.
2007-07-03 15:36:29 +01:00
Michael Brown
e436b993a9
Avoid double free on I/O buffer when rtl_transmit() returns failure.
...
Convert printf() to DBG(); printf() is not allowed in drivers.
2007-07-03 14:44:33 +01:00
Michael Brown
0958726ebb
It's not just Etherboot that fails to generate TX completions.
2007-07-03 14:43:57 +01:00
Michael Brown
5b52630a9c
Never attempt to route the broadcast address.
2007-07-03 13:55:45 +01:00
Michael Brown
adb3dd03e5
Document TX completion bug.
2007-07-03 13:17:58 +01:00
Michael Brown
71f500ff1b
Enable/disable interrupts in driver open/close.
2007-07-03 12:50:58 +01:00
Michael Brown
5f92f0bd82
Reserve space for link-layer header in pxenv_undi_transmit() when not
...
handed a P_UNKNOWN packet.
2007-07-03 04:05:30 +01:00
Michael Brown
290280f90e
Enable/disable interrupts at open/close time.
2007-07-03 03:34:08 +01:00
Michael Brown
258afef751
Add missing call to free_iob() in pxenv_undi_isr().
...
Correct typo in pxenv_set_station_address().
2007-07-03 00:57:53 +01:00
Michael Brown
a2a0c2eace
Enable/disable interrupts on open/close.
2007-07-03 00:57:04 +01:00
Michael Brown
4968caab82
Add trivial net device statistics (TX and RX packet count), reported
...
via UNDI API and also by ifstat command; may be useful for debugging.
2007-07-03 00:15:53 +01:00
Michael Brown
071356d976
Ensure that pxe_netdev is set before starting up PXE NBP.
2007-07-03 00:02:26 +01:00
Michael Brown
cbd956535e
Place netdev_open()/netdev_close() calls in appropriate places.
2007-07-03 00:02:06 +01:00
Michael Brown
8f37a6a424
Add mechanism for providing TX completion events.
2007-07-02 23:49:00 +01:00
Marty Connor
0297a63877
Merge branch 'master' of ssh://rom.etherboot.org/pub/scm/gpxe
2007-07-02 15:36:19 -04:00
Marty Connor
f04899bf6c
Warnings purge
2007-07-02 15:33:34 -04:00
Marty Connor
b234d4a13e
Warnings purge
2007-07-02 15:29:37 -04:00
Marty Connor
ef7f6e72a1
Warnings purge
2007-07-02 15:28:55 -04:00
Marty Connor
bf871c4d03
Warnings purge of src/core
2007-07-02 15:26:40 -04:00
Michael Brown
332614a382
Add untested support for UNDI transmit and receive.
2007-07-02 20:05:58 +01:00
Michael Brown
e42eba4af4
Use a common base-memory packet buffer for DHCP construction (as used
...
by PXE and NBI) and UNDI packets (as used by undinet and UNDI).
2007-07-02 18:33:41 +01:00
Michael Brown
5f17089b14
pxe_netdev now holds a reference to the network device.
...
Use generic fields in struct device_description rather than assuming
that the struct device * is contained within a pci_device or
isapnp_device; this assumption is broken when using the undionly
driver.
Add PXENV_UNDI_SET_STATION_ADDRESS.
2007-07-02 17:43:32 +01:00
Michael Brown
e3bbfd7a75
Call shutdown() from pxenv_undi_shutdown(). Probably not totally
...
correct, but it's enough to get RIS working.
2007-07-02 03:12:35 +01:00
Michael Brown
d7e471f654
Improve debugging
2007-07-01 22:04:19 +01:00
Michael Brown
15f8323055
Removing obsolete files.
2007-07-01 15:30:12 +01:00
Michael Brown
95cb7aaacf
Support cards such as natsemi which treat the data as little-endian
...
(i.e. LSB transmitted first on the wire), even though SPI commands and
addresses always have to be big-endian.
2007-07-01 15:22:12 +01:00
Michael Brown
3bf5eb49d0
Can't use strncpy() to copy strings that aren't NUL-terminated to
...
begin with.
2007-07-01 03:22:28 +01:00
Michael Brown
31fe5b9415
Hack together far enough to support ne2k-pci.
2007-07-01 00:37:29 +01:00
Michael Brown
f33bbd4112
How has the legacy wrapper been working for the past month or so...?
2007-07-01 00:36:48 +01:00
Michael Brown
b743b63ae9
DUMP_GDBSYM should not be enabled by default.
2007-07-01 00:05:36 +01:00
Michael Brown
d5451d210c
Add ability to resolve relative symbols as well as locate absolute ones.
2007-06-30 22:59:15 +01:00
Michael Brown
8f6a4e8140
Add gdbsym.c object to help with running gdb-to-qemu
2007-06-30 22:43:31 +01:00
Michael Brown
e1646b4080
Place the actual version string in .data16, rather than just the
...
pointer to it.
2007-06-30 21:36:54 +01:00
Michael Brown
4472e22b5e
Implement the two UNDI API calls used by RIS.
2007-06-30 15:56:00 +01:00
Michael Brown
d05d8edd42
Implement the "overwrite TFTP filename" Microsoft RIS bug workaround.
2007-06-30 15:13:18 +01:00
Michael Brown
8130443f9f
Separate out pxe_start_nbp() from pxe_image.c into pxe_call.c
...
Implement PXENV_RESTART_TFTP.
2007-06-30 14:56:35 +01:00
Michael Brown
acd598b4f9
Don't build option-overloaded packets; they just confuse people (ISC
...
DHCPD and Windows RIS in particular).
2007-06-30 01:32:53 +01:00
Michael Brown
9125070f51
I really, really screwed up the semantics of BufferSize and BufferLimit.
2007-06-29 20:16:30 +01:00
Michael Brown
40d6d3dcf4
Windows RIS now gets as far as downloading NTLDR.
2007-06-29 01:42:59 +01:00
Michael Brown
d71b116f54
Fix stack on return from PXE NBP so that we can return properly.
2007-06-28 23:37:49 +01:00
Michael Brown
045fb24557
Use internal real-mode stack from non-returnable prefixes
2007-06-28 21:56:14 +01:00
Michael Brown
00473f0952
Revert "Move stack to below 0x7c00; leaving it at the default location"
...
This reverts commit 03ca71c38d
.
2007-06-28 21:50:36 +01:00
Michael Brown
c73bff7ae5
Set current working URI based on TFTP server specified by DHCP.
2007-06-28 21:22:25 +01:00
Michael Brown
03ca71c38d
Move stack to below 0x7c00; leaving it at the default location
...
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
2007-06-28 21:15:47 +01:00
Michael Brown
dffdc285b3
Obsoleted by downloader.c
2007-06-28 19:28:26 +01:00
Michael Brown
f13baeb330
Added missing config.[ch] lines for FTP protocol
2007-06-28 18:49:57 +01:00
Michael Brown
d465ae9785
Bugfix: iobuf->data always points to the start of the allocated
...
portion, not to the bit we want to currently write to...
2007-06-28 18:38:50 +01:00
Michael Brown
5de837cc67
Mildly ugly hack to force correct linkage.
2007-06-28 18:06:25 +01:00
Michael Brown
e4c9c91d6e
Removed debugging statements that should not have been checked in.
2007-06-28 17:57:10 +01:00
Michael Brown
4b08f4cf0f
Quick hack to get image booting working again
2007-06-28 17:55:29 +01:00
Michael Brown
7d6e4aab6f
Use monojob and dhcp_configure_netdev().
2007-06-28 15:22:20 +01:00
Michael Brown
1ec7bb789d
Add dhcp_configure_netdev()
2007-06-28 15:18:26 +01:00
Michael Brown
6209d20779
Added monojob controller in lieu of a full working shell.
2007-06-28 14:53:12 +01:00
Michael Brown
cf33b568dc
Forgot to set initial session state. Now works!
2007-06-28 01:55:01 +01:00
Michael Brown
73fe1ba9dd
Kill off job::start() (it was only ever added as part of an aborted
...
attempt at triggering TCP-related protocols to start).
2007-06-28 01:09:45 +01:00
Michael Brown
07dc294de8
Update DHCP to use data-xfer interface (not yet tested).
2007-06-27 23:20:36 +01:00
Michael Brown
f77815f2b1
Kill off hotplug.h and just make net devices normal reference-counted
...
structures.
DHCP still broken and #if 0'd out.
2007-06-27 14:48:31 +01:00
Michael Brown
e381714c07
Partial migration of UDP to data-xfer interface. (Will not link at
...
present; DHCP is broken).
2007-06-20 01:13:35 +01:00
Michael Brown
564ac70a42
Add iob_ensure_headroom() placeholder.
2007-06-20 01:12:21 +01:00
Michael Brown
4f309ff0c7
Treat URIs opened via xfer_open() and friends as relative to the
...
current working URI.
2007-06-13 16:28:32 +01:00
Michael Brown
15dae1e042
Add concept of "current working URI".
2007-06-11 23:54:51 +01:00
Michael Brown
2d4c72b762
Remove unused headers.
2007-06-11 23:40:34 +01:00
Michael Brown
e708137029
DNS code now records a whole struct sockaddr for the name server.
2007-06-11 23:36:50 +01:00
Michael Brown
f87bc837f4
Updated DNS to use not-yet-implemented UDP data-xfer API.
2007-06-11 23:30:44 +01:00
Michael Brown
a74ecf3057
Merge branch 'master' into mcb-tcp-xfer
2007-06-11 21:36:22 +01:00
Michael Brown
058b200529
Renamed _calloc() to zalloc(), ready to be used as a standalone function.
2007-06-11 21:36:10 +01:00
Michael Brown
01b4bde8a0
Updated TFTP and PXE UDP API code to use not-yet-implemented data-xfer
...
UDP API.
2007-06-11 18:11:29 +01:00
Michael Brown
95adce0ce1
Add concept of transfer metadata, to be used by UDP in order to
...
implement sendto()/recvfrom() equivalents.
2007-06-11 15:04:39 +01:00
Michael Brown
77e575235d
Merge branch 'master' into mcb-tcp-xfer
2007-06-10 18:34:10 +01:00
Michael Brown
0316eaf85d
Add missing call to free_iob().
2007-06-10 18:33:42 +01:00
Michael Brown
adf6c8e2a6
Add our own trivial version of stdarg.h. This makes our build
...
entirely self-hosted (which avoids problems when building the same
tree on multiple systems - e.g. when you have /home NFS-mounted).
Also saves around 50 bytes in total - not sure why.
2007-06-10 00:29:53 +01:00
Michael Brown
11ec23f454
Merge branch 'master' into mcb-tcp-xfer
2007-06-09 22:58:27 +01:00
Michael Brown
0f8d7d705d
Rename .cvsignore files to .gitignore
2007-06-09 22:57:00 +01:00
Michael Brown
6835755350
Merge branch 'master' into mcb-tcp-xfer
2007-06-09 22:26:50 +01:00
Marty Connor
f97e642d17
Update email addresses in drivers
2007-06-09 15:23:17 -04:00
Michael Brown
b256900d4f
Scripts temporarily deregister themselves while executing. This
...
allows us to avoid execution loops without having to hack around the
image registration order.
2007-06-09 19:00:34 +01:00
Michael Brown
2c569fb240
Allow xfer_open() to take a struct uri as well as a URI string.
2007-06-09 18:20:08 +01:00
Michael Brown
1ae549b892
Add our own trivial version of stdarg.h. This makes our build
...
entirely self-hosted (which avoids problems when building the same
tree on multiple systems - e.g. when you have /home NFS-mounted).
Also saves around 50 bytes in total - not sure why.
2007-06-09 18:11:07 +01:00
Michael Brown
7c8cc3ef6c
Use standard xfer_open() argument list for downloader instantiator
2007-06-09 17:42:46 +01:00
Michael Brown
08e286714f
Add reference counting to register/unregister procedure.
2007-06-09 17:32:27 +01:00
Michael Brown
53bd022235
Merge branch 'master' into mcb-tcp-xfer
2007-06-08 16:41:54 +01:00
Michael Brown
6f0a6c09db
Merge branch 'master' into mcb-tcp-xfer
2007-06-08 16:33:24 +01:00
Marty Connor
8c25ea0970
Updated email mdc's email address
2007-06-08 11:23:26 -04:00
Michael Brown
ff84a66c35
Conflicts with native asn1.c
2007-06-08 12:37:35 +00:00
Michael Brown
b7ccdb7948
Add a couple of tests for the URI parsing and resolving code.
2007-06-03 02:15:00 +00:00
Michael Brown
6a5cc3533f
Added missing va_end()
2007-06-03 02:11:25 +00:00
Michael Brown
a6f0a098da
Add facility for resolving base+relative URIs (and paths).
2007-06-03 02:01:02 +00:00
Michael Brown
182e3ed61d
Added dirname()
2007-06-03 01:51:10 +00:00
Michael Brown
816c8f3b89
Added [v]asprintf()
2007-06-03 01:50:03 +00:00
Michael Brown
335b99a39d
Move [v]ssnprintf() from iscsi.c into vsprintf.c; we need them
...
elsewhere as well.
2007-05-31 13:26:50 +00:00
Michael Brown
4ccd1e8198
Should call ftp_done() if constructor fails.
2007-05-29 15:37:30 +00:00
Michael Brown
735e07268e
Update HTTP to use data-xfer interface.
2007-05-29 15:37:09 +00:00
Michael Brown
0dfd5b84fd
Updated FTP to use data-xfer API.
2007-05-28 20:11:02 +00:00
Michael Brown
a6a18ae9af
Add xfer_[v]printf() functions.
2007-05-28 20:09:44 +00:00
Michael Brown
3acd51597a
Add sanity check and extra debug message
2007-05-28 20:06:41 +00:00
Michael Brown
656485c1f1
Make URI structures reference-counted.
2007-05-28 17:35:15 +00:00
Michael Brown
63719deea9
Introduce name resolution interface and named socket opener.
2007-05-27 01:07:00 +00:00
Michael Brown
bc694ec768
Move increment/decrement debug messages to DBG2 level
2007-05-27 01:04:52 +00:00
Michael Brown
1311b4194c
Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead.
2007-05-26 20:41:23 +00:00
Michael Brown
a1210e4fca
Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead.
2007-05-26 20:41:23 +00:00
Michael Brown
070c55a838
Added EPIPE description.
2007-05-26 15:05:31 +00:00
Michael Brown
b8618d76db
Modify data-xfer semantics: it is no longer necessary to call one of
...
request(), seek() or deliver_xxx() in order to start the data flow.
Autonomous generators must be genuinely autonomous (having their own
process), or otherwise arrange to be called. TCP does this by
starting the retry timer immediately.
Add some debugging statements.
2007-05-26 15:04:36 +00:00
Michael Brown
10d0a1f8c7
Modify data-xfer semantics: it is no longer necessary to call one of
...
request(), seek() or deliver_xxx() in order to start the data flow.
Autonomous generators must be genuinely autonomous (having their own
process), or otherwise arrange to be called. TCP does this by
starting the retry timer immediately.
Add some debugging statements.
2007-05-26 15:04:36 +00:00
Michael Brown
3601103381
Modify process semantics; rescheduling is now automatic.
...
Add reference-counting to processes.
Add timer_running() test.
2007-05-26 15:00:56 +00:00
Michael Brown
6006bed530
Free I/O buffers when we are finished with them!
2007-05-25 16:01:31 +00:00
Michael Brown
1136c19fa4
Updated tcp.c to provide a standardised data transfer interface.
2007-05-25 15:58:42 +00:00
Michael Brown
54138f28f6
Use list_for_each_entry_safe() when flushing queue.
2007-05-19 22:05:16 +00:00
Michael Brown
5e25a89e74
Add local address to socket openers.
2007-05-19 20:14:18 +00:00
Michael Brown
776357214e
Rename pkbpad.c to iobpad.c
2007-05-19 18:42:27 +00:00
Michael Brown
3e2c6b6736
pkbuff->iobuf changeover
...
Achieved via Perl using:
perl -pi -e 's/pk_buff/io_buffer/g; s/Packet buffer/I\/O buffer/ig; ' \
-e 's/pkbuff\.h/iobuf.h/g; s/pkb_/iob_/g; s/_pkb/_iob/g; ' \
-e 's/pkb/iobuf/g; s/PKB/IOB/g;'
2007-05-19 18:39:40 +00:00
Michael Brown
7c0a069f42
Add explicit "freeing" debug messages.
2007-05-18 15:42:02 +00:00
Michael Brown
7d2535779c
Must request data before anything actually happens...
2007-05-18 15:36:11 +00:00
Michael Brown
b63b14ff32
Add debugging
2007-05-18 15:26:44 +00:00
Michael Brown
68dd826b86
Add alloc_iob() and free_iob(). (Direct search-and-replace
...
equivalents for alloc_pkb() and free_pkb(), which will be retired in
due course).
2007-05-18 14:45:16 +00:00
Michael Brown
23008b9326
Updated to use POSIX-style file I/O layer.
2007-05-18 14:33:20 +00:00
Michael Brown
86a948ccbe
Added POSIX-style blocking I/O calls, for use by PXE TFTP API.
2007-05-18 14:19:22 +00:00
Michael Brown
6b6fc1d5ea
Allow construction of PXE status code from internal error number.
2007-05-18 14:17:35 +00:00
Michael Brown
59e738d756
Prefix all the open()-family routines with xfer_, to disambiguate them
...
from the normal POSIX-style open()
2007-05-18 14:16:06 +00:00
Michael Brown
b1755462ab
Do not hold self-references. This then avoids the problem of having to
...
ensure that we only drop our self-reference exactly once.
To maintain the guarantee that an object won't go out of scope
unexpectedly while one of its event handlers is being called, the
event-calling functions now automatically obtain and drop extra
references.
2007-05-15 16:53:46 +00:00
Michael Brown
5471bfbbbe
Data-transfer interface should now be functionally complete.
2007-05-15 15:23:09 +00:00
Michael Brown
817a446cc6
Add always_inline attribute to force gcc to inline single-instruction
...
functions.
2007-05-01 10:17:29 +00:00
Michael Brown
123a98db26
Added (non-functional) reference count to struct image
2007-05-01 00:11:34 +00:00
Michael Brown
53da1f1402
Initial sketch for a downloader object
2007-05-01 00:09:19 +00:00
Michael Brown
e3dcb9a1ad
Add start() event
...
Add "xfer" to all xfer functions and "job" to all job functions.
2007-05-01 00:07:57 +00:00
Michael Brown
a90a9adbd7
Clarify behaviour of plug() by using intf_put() and intf_get().
2007-05-01 00:06:21 +00:00
Michael Brown
7ff81f6654
Document the fact that a zeroed-out refcounted object will behave in
...
the most generally useful way.
2007-05-01 00:04:21 +00:00
Michael Brown
31f1bf4426
D'oh
2007-04-30 01:24:52 +00:00
Michael Brown
0898b0b3b1
Added plug_plug()
2007-04-30 01:23:01 +00:00
Michael Brown
d40761d725
Add (and use) generic reference counter, to improve signal:noise ratio
...
in code defining reference-counted objects.
2007-04-29 23:53:39 +00:00
Michael Brown
36bfb6edbb
Skeleton job control interface
2007-04-29 02:08:39 +00:00
Michael Brown
280160139d
Add seek()
...
Dehyphenate "data-transfer".
2007-04-29 02:03:58 +00:00
Michael Brown
ff1222a8d3
Preliminary support for opening data-transfer interfaces
2007-04-28 20:56:24 +00:00
Michael Brown
27b3bd10c9
Added PF_INET[6] and SOCK_{STREAM,DGRAM} definitions and debug
...
functions.
2007-04-28 20:53:48 +00:00
Michael Brown
1c765b3988
Added deliver-as-iobuf/deliver-as-raw concepts.
2007-04-27 00:02:23 +00:00
Michael Brown
2575ddc889
Initial sketch for the generic data-transfer interface.
2007-04-26 22:44:52 +00:00
Michael Brown
95206577a7
Trivial ASN.1 decoding functions.
2007-04-21 18:53:26 +00:00
Anselm Martin Hoffmeister
ed7dc02a95
hoffmeis: Preparations for syslog support (LOGSERVER in DHCP, linewise
...
output buffering defintions and the like)
2007-04-09 18:01:43 +00:00
Anselm Martin Hoffmeister
ff5aac826a
hoffmeis: Fixing situation where absence of a newdata() handler for UDP
...
connections might break things. Only-sending applications like syslog()
do not need a newdata() handler, so added a check if that handler exists.
2007-04-09 17:34:10 +00:00
Michael Brown
0d9b3e2dd2
Add 32-bit support.
...
Generate DHCP data block for images.
2007-03-22 16:18:46 +00:00
Michael Brown
ff7d0af585
Provide a buffer in base memory for code to fill with generated DHCP data.
2007-03-22 16:18:07 +00:00
Michael Brown
160e66dbb9
Typo
2007-03-20 18:55:00 +00:00
Michael Brown
5578d3b2de
Support 32-bit (linear) NBI images. We don't yet provide a bootp data
...
block, so first32.c dies immediately.
2007-03-14 00:39:12 +00:00
James Harper
80cc27cbc4
Ported bnx2 driver from Etherboot 5.4.
2007-03-13 23:03:50 +00:00
Michael Brown
37127ea90c
Added .nbi as a format.
2007-03-11 00:57:26 +00:00
Michael Brown
628f6eddcc
Make _load_size accurately reflect the number of bytes in the actual
...
image file.
2007-03-11 00:54:35 +00:00
Michael Brown
13137a4d61
t5x9 code relies on nic->ioaddr being set
2007-03-11 00:37:46 +00:00
Michael Brown
62548c9f0d
Updated 3c509 to current device model
2007-03-10 22:28:22 +00:00
Michael Brown
520d9c36af
Updated ISAPnP, EISA, MCA and ISA buses to current device model.
...
ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and
MCA (3c529) variants should build OK.
None of this code is yet tested.
2007-03-10 18:08:33 +00:00
Marty Connor
6991ea7cc5
Add gpxe-tarball target to create clean release tarballs
2007-03-02 16:28:04 +00:00
Marty Connor
969642dca6
Add warning about formats that are not working until we fix them
2007-03-02 16:25:42 +00:00
Michael Brown
c63af1ea14
Remove no-longer-used variable
2007-02-19 17:31:20 +00:00
James Harper
e1735d5fc2
Fix some bad pointer arithmatic in the tg3 driver that was causing the dynamic memory pool to be corrupted (or worse)
2007-02-10 00:28:41 +00:00
James Harper
1c971f1234
Fix padding problem - from Michael
2007-02-10 00:27:46 +00:00
Michael Brown
af3149d18e
Allow queries in GET requests
2007-02-01 21:01:47 +00:00
Michael Brown
22ed1fbaf1
Add ability to read serial number from SMBIOS
2007-02-01 20:52:12 +00:00
Michael Brown
3fd10074d8
SSL needs quite a lot of spare memory
2007-02-01 09:38:16 +00:00
Michael Brown
e01aadd5a7
Required for public key extraction
2007-02-01 09:13:27 +00:00
Michael Brown
abccb8b63c
SSL requires inordinately large data storage
2007-02-01 07:22:13 +00:00
Michael Brown
2c67167929
Don't pass through zero-length requests
2007-02-01 07:18:56 +00:00
Michael Brown
0050378f51
SHA1_DIGEST_SIZE also available as a static constant
2007-02-01 06:36:45 +00:00
Michael Brown
cc8f9e4b7f
Make context sizes available for statically-allocated structures
2007-02-01 05:48:56 +00:00
Michael Brown
d467552367
Vanilla copies from axtls
2007-02-01 04:20:12 +00:00
Michael Brown
5c3837e0ed
Quick hacks to get it working
2007-02-01 02:20:35 +00:00
Michael Brown
a01374b5cd
Add dummy setiv method
2007-02-01 02:19:16 +00:00
Michael Brown
f5776dbef1
Fix prototypes
2007-02-01 02:18:56 +00:00
Michael Brown
f06059ab97
More assertions
2007-02-01 02:18:22 +00:00
Michael Brown
c650c8c84a
Also print out stack pointer (with optional stack dump)
2007-02-01 02:17:59 +00:00
Michael Brown
a1f021db96
Placeholder
2007-02-01 02:17:33 +00:00
Michael Brown
406b20a64d
Assert that division result is correct
2007-01-31 23:58:52 +00:00
Michael Brown
c789e8640b
Added __umoddi3
2007-01-31 22:26:14 +00:00
Michael Brown
6c2f0e1bf4
Original axtls RSA code
2007-01-31 22:18:29 +00:00
Michael Brown
1ae70e12e5
Added wrapper for AXTLS AES code
2007-01-31 18:09:20 +00:00
Michael Brown
0d07657296
Added setiv method
2007-01-31 17:58:36 +00:00
Michael Brown
c1aa1d0764
Add wrapper around axtls' sha1 code
2007-01-31 12:24:01 +00:00
Michael Brown
869f9bcb23
Adding missing include
2007-01-31 12:19:50 +00:00
Michael Brown
6ce5c97981
Made most of the build much quieter
2007-01-31 11:06:36 +00:00
Michael Brown
413c554b34
We need this, I think
2007-01-31 03:50:49 +00:00
Michael Brown
2e0548e17e
Force inlining
2007-01-31 03:50:31 +00:00
Michael Brown
a3695b1ff6
Placeholder for TLS insertion
2007-01-31 03:47:42 +00:00
Michael Brown
1f5f900595
Add HTTPS port
2007-01-31 03:44:38 +00:00
Michael Brown
2d726144f7
Filter insertion now actually works
2007-01-31 03:43:59 +00:00
Michael Brown
21f3789ec8
Swap downstream/upstream order so that debug messages for filters show
...
up in the same colour as debug messages for the application stream.
2007-01-31 03:43:40 +00:00
Michael Brown
1fbd6f7d76
...but not when it's being used as a digest algorithm...
2007-01-31 03:42:47 +00:00
Michael Brown
a502fcda45
The null crypto algorithm should at least copy data...
2007-01-31 03:42:07 +00:00
Michael Brown
138967dd6b
Tidy up debug messages
2007-01-31 03:05:49 +00:00
Michael Brown
e38e516463
Add insert_filter() function
2007-01-31 03:04:56 +00:00
Michael Brown
a008f9e85b
Add null crypto algorithm
2007-01-31 03:04:31 +00:00
Michael Brown
6d32f0e6e2
Changed to use the generic stream API.
2007-01-31 02:09:13 +00:00
Michael Brown
02f18565da
First sketch of stream API
2007-01-31 00:40:35 +00:00
Michael Brown
55601b2d38
Placeholder
2007-01-30 22:55:19 +00:00
Michael Brown
0e996b81cf
Added blocksize for the benefit of HMAC code
2007-01-30 22:54:43 +00:00
Michael Brown
811db204a6
Added cipher wrapper functions
2007-01-30 22:54:20 +00:00
Michael Brown
b3e4418ea8
Missing check-in
2007-01-30 22:53:59 +00:00
Michael Brown
db2fde474e
Generalise digest_algorithm to crypto_algorithm.
2007-01-30 14:55:17 +00:00
Michael Brown
2f7eac1646
Low-overhead filter streams
2007-01-30 12:17:03 +00:00
Michael Brown
ddf3b56d47
Definition of a (hopefully) generic stream API
2007-01-30 12:16:36 +00:00
Michael Brown
395c76e94d
Use "dbg_stream" rather than "stream" as a variable name in
...
DBG_AC_IF(), to avoid namespace collisions.
2007-01-30 10:12:19 +00:00
Michael Brown
7d9267561b
Don't call PXENV_STOP_UNDI in the kpxeprefix. This slighy breaks the
...
clean separation between loading and starting, but does mean that more
PXE stacks survive the process.
2007-01-29 15:21:10 +00:00
Michael Brown
2cf1e33df1
Split bootsector execution code out into bootsector.c.
...
Added basic El Torito ISO image boot capability
2007-01-29 04:21:38 +00:00
Michael Brown
bde8878eef
Keep HTTP progress updated, and display a progress indicator during the
...
download
2007-01-29 04:19:45 +00:00
Michael Brown
1a79437888
Added async_block_progress() and default SIGUPDATE handler.
2007-01-29 04:15:24 +00:00
Michael Brown
c42a384709
Moved most buffer debug messages to DBG2.
...
Make expand_buffer() a non-inline function, so that we can add debug
messages.
Expandable buffers now don't *always* round up to the next power of two.
This allows e.g. loading a 137MB ISO image on a machine with only 256MB
RAM...
2007-01-29 04:12:29 +00:00
Michael Brown
89c3c67c51
Should be correct for building RSA
2007-01-28 19:50:43 +00:00
Michael Brown
b3b6b25aeb
Handle (64-bit) / (32-bit) = (64-bit), i.e. one step beyond that
...
provided by the divl instruction.
2007-01-28 19:34:17 +00:00
Michael Brown
bd873525ff
Add matrixssl directory
2007-01-26 04:36:50 +00:00
Michael Brown
6417a6adf0
Avoid barfing on gcc's implicit memcpy()s
2007-01-26 04:14:25 +00:00
Michael Brown
3bb7c19779
Allow MatrixSSL code to compile inside gPXE
2007-01-26 03:50:17 +00:00
Michael Brown
afe4e011ac
Move tolower() etc to ctype.h as per ISO C
2007-01-26 03:25:19 +00:00
Michael Brown
bf9ec8102f
Add 64-bit rotates
2007-01-26 02:53:30 +00:00
Michael Brown
7cdc6529bb
Build external axtls code
2007-01-26 02:03:34 +00:00
Michael Brown
9542c016cd
Add aes.c and required headers from axtls tree
2007-01-26 01:59:37 +00:00
Michael Brown
7b8859ad15
Enable the axtls code to at least build within gPXE
2007-01-26 01:55:34 +00:00
Michael Brown
7993488a68
#if 0 out for now
2007-01-26 01:42:16 +00:00
Michael Brown
f59281d8f6
Yet more synonyms that people tend to use.
2007-01-26 01:30:16 +00:00
Michael Brown
da9dc834b1
Help quick testing of building Linux code inside gPXE
2007-01-24 23:38:05 +00:00
Michael Brown
9cf5c4557d
Add Linux-compatible rol32/ror32 functions. Amazingly, gcc will
...
optimise these down to the correct single "roll"/"rorl" instruction.
2007-01-24 23:31:58 +00:00
Michael Brown
6a765fdc15
Use base "0" in strtoul for consistency with "mem="
2007-01-24 22:54:08 +00:00
Michael Brown
99cb46943f
"vga=" is specified in decimal, not hex.
2007-01-22 23:56:24 +00:00
Michael Brown
ebb00e032c
Misread the definition of the type_of_loader field; it should include a
...
version.
2007-01-19 15:40:01 +00:00
Michael Brown
92a78c8e15
Added SIGKILL handler
2007-01-19 15:19:52 +00:00
Michael Brown
13d9a660ca
Zeroing out memory before using it can be so important.
2007-01-19 14:44:59 +00:00
Michael Brown
d6909f65f0
Actually, it's probably safer *not* to leave child processes hanging
...
around which still hold pointers to variables belonging to our parent...
2007-01-19 14:20:41 +00:00
Michael Brown
b6194b8cb9
Note that the SIGCHLD handler could be re-entered.
2007-01-19 14:10:13 +00:00
Michael Brown
1411876e26
Propagate return status code from last child to fail.
2007-01-19 14:00:51 +00:00
Michael Brown
cde6d776e3
Handle structured error codes.
2007-01-19 13:52:50 +00:00
Michael Brown
18f9f939a8
Introduce structured error codes.
2007-01-19 13:15:26 +00:00
Michael Brown
c2352dc8de
Add POSIX prototypes for time functions, to allow external code to build
...
more easily within gPXE.
Note that we don't have function bodies for these functions yet.
2007-01-19 03:09:22 +00:00
Michael Brown
4256b3338a
Split random number generation out into core/random.c, and create the
...
correct prototypes for srandom(), rand() and srand().
2007-01-19 02:02:59 +00:00
Michael Brown
f4c1e564a1
vsprintf.h is gPXE-specific; move it to include/gpxe
2007-01-19 01:17:23 +00:00
Michael Brown
73b09ecba6
Use stdio.h instead of vsprintf.h
2007-01-19 01:13:12 +00:00
Michael Brown
06475f7b69
Finally move the prototypes for printf() and friends to stdio.h
2007-01-19 00:58:49 +00:00
Michael Brown
1a0ca661c2
4.3BSD says that bcopy and bzero are defined in strings.h, not string.h
2007-01-19 00:51:13 +00:00
Michael Brown
a213876382
Typo
2007-01-19 00:48:13 +00:00
Michael Brown
b02a564297
Add missing prerequisite include
2007-01-19 00:39:12 +00:00
Michael Brown
4e3976711d
A working name resolution framework
2007-01-18 22:38:13 +00:00
Michael Brown
8bb9f726a0
When an async operation dies, orphan its children.
2007-01-18 22:36:57 +00:00
Michael Brown
075f8144ff
Have DHCP set the nameserver, rather than DNS read the DHCP nameserver
...
value.
2007-01-18 21:22:03 +00:00
Michael Brown
c014f607a8
Use total free memory as advertised window. This seems to be sufficient
...
to avoid drops even on slow NICs.
2007-01-18 20:39:17 +00:00
Michael Brown
6d4e37cf42
Move include/malloc.h to include/gpxe/malloc.h, since everything in there
...
is now gPXE-specific. (The standard malloc() et al have been in stdlib.h
for a while).
Add free memory counter.
2007-01-18 20:11:04 +00:00
Michael Brown
5ff23aa406
Include stdlib.h rather than malloc.h
2007-01-18 20:06:03 +00:00
Michael Brown
d12770e254
console.h is no longer needed for debugging
2007-01-18 19:13:25 +00:00
Michael Brown
37f1b12587
Allow truly arbitrary debug levels to be specified via DEBUG=
2007-01-18 19:00:09 +00:00
Michael Brown
5d57cd47a2
Declaring the CPU architecture in the middle of an assembly file is
...
somewhat redundant, and also causes gas to complain when we include
the profiling code (which uses an i586 instruction).
2007-01-18 18:53:32 +00:00
Michael Brown
f781a98ac4
Add DBGLVL_PROFILE
2007-01-18 17:59:59 +00:00
Michael Brown
05f4c3d176
Remove the one-packet-per-poll-cycle limit; it seems to no longer be
...
needed now that performance is up.
2007-01-18 16:50:35 +00:00
Michael Brown
5b00fbade3
Increase window size to 64kB. Line rate downloads on a 100Mbps link,
...
anyone?
2007-01-18 16:39:55 +00:00
Michael Brown
bd95927386
Accelerate memcpy() by around 32% on large, dword-aligned copies.
2007-01-18 15:18:02 +00:00
Michael Brown
c8b3e969a0
Allow buffers to be pre-expanded on demand.
2007-01-18 15:13:41 +00:00
Michael Brown
6c72bf13a1
Presize the download buffer when we see the Content-Length header;
...
this saves around 70us per received packet (which is around 50% of the
overall packet processing time).
2007-01-18 13:26:57 +00:00
Michael Brown
08da93a311
Reorder functions to more closely reflect the flow of control
2007-01-18 13:10:26 +00:00
Michael Brown
35776f481c
Don't always zero memory in malloc(). This saves around 2us on a
...
full-length PKB allocation.
2007-01-18 12:54:18 +00:00
Michael Brown
06630a3036
Switch from calloc() to malloc()+memset() to match the practices used
...
almost everywhere else.
2007-01-18 12:45:58 +00:00
Michael Brown
48fe701716
Respect the RX quota. This improves poll time by about 0.7us when the
...
quota is 1.
2007-01-18 12:34:12 +00:00
Michael Brown
dd6d94004f
HTTP/DNS now working fully asynchronously. HTTP/IP addresses and any
...
other protocol won't work at the moment.
2007-01-18 03:39:45 +00:00
Michael Brown
0b11733b75
Replacement for fetch() which operates asynchronously and identifies
...
protocols by URI scheme.
2007-01-18 03:37:05 +00:00
Michael Brown
99e58865c7
Use struct sockaddr rather than struct sockaddr_tcpip
...
Tidy up code
2007-01-18 03:35:00 +00:00
Michael Brown
6601a7da6a
Added async_uninit() to simplify failure paths.
2007-01-18 03:29:40 +00:00
Michael Brown
5a807994d8
Add utility function to parse port from URI
2007-01-18 03:28:55 +00:00
Michael Brown
8ffbbebf11
Ensure that struct sockaddr is long enough...
2007-01-18 03:28:29 +00:00
Michael Brown
9828181e3b
Obsolete
2007-01-18 01:05:09 +00:00
Michael Brown
544fa25928
Rename e{malloc,realloc,free} to u{malloc,realloc,free}, to more obviously
...
reflect the fact that they allocate and deallocate user memory (i.e.
things reached through a userptr_t).
2007-01-16 08:36:42 +00:00
Michael Brown
ff8528ea9a
Create and use async_block() macro; it cuts down on the visual overhead
...
of blocking on asynchronous operations, when that isn't an important
aspect of the code.
2007-01-16 08:10:54 +00:00
Michael Brown
f11da20f25
When a network device is specified to tcpip_tx() or it's children, treat
...
it as a fallback network device rather than an explicitly forced network
device.
Clear routing table entries before re-attempting DHCP.
2007-01-16 04:09:13 +00:00
Michael Brown
1a1fc23417
Improve debugging
2007-01-16 03:29:15 +00:00
Michael Brown
bcdb6fad3e
Improve debug messages
2007-01-16 03:19:40 +00:00
Michael Brown
835d35749f
Improved debugging
2007-01-16 03:10:37 +00:00
Michael Brown
143d14614d
Quickly hack in DNS resolution as a proof of concept
2007-01-15 17:32:52 +00:00
Michael Brown
9af12d5fba
A working DNS resolver (not yet tied in to anything)
2007-01-15 17:31:35 +00:00
Michael Brown
df0397f334
Update TFTP and FTP to take the same temporary URI scheme as HTTP
2007-01-15 09:58:26 +00:00
Michael Brown
afa752f5fb
Protocol's get() method no longer takes ownership of the URI. HTTP is the
...
exception rather than the rule; we may as well keep things clean for other
protocols.
2007-01-15 09:18:06 +00:00
Michael Brown
1f92c6b3e8
Must free http on the error path; nothing else will do it
2007-01-15 09:08:40 +00:00
Michael Brown
c676591cd1
Unmaintained example code is probably worse than useless.
2007-01-15 09:06:12 +00:00
Michael Brown
4e20d73bb5
Gave asynchronous operations approximate POSIX signal semantics. This
...
will enable us to cascade async operations, which is necessary in order to
properly support DNS. (For example, an HTTP request may have to redirect
to a new location and will have to perform a new DNS lookup, so we can't
just rely on doing the name lookup at the time of parsing the initial
URL).
Anything other than HTTP is probably broken right now; I'll fix the others
up asap.
2007-01-15 08:49:10 +00:00
Michael Brown
ec75b269d3
Add missing include
2007-01-15 08:44:05 +00:00
Michael Brown
90d859c34b
Add ETIMEDOUT
2007-01-15 02:46:56 +00:00
Michael Brown
26166cf5e0
Added a URI parser that should be standards conformant. (It can certainly
...
handle something as convoluted as
ftp://joe:secret@insecure.org:8081/hidden/path/to?what=is#this
2007-01-14 23:48:31 +00:00
Michael Brown
a5a330339b
Split DBG() statement containing two inet_ntoa() statements; they
...
return a static buffer.
2007-01-14 19:58:41 +00:00
Michael Brown
ce7289a766
Dump buffer and packet information in PXENV_UDP_READ as well
2007-01-14 18:22:37 +00:00
Michael Brown
76aa9ad07d
Make TCP give up immediately when it receives -ENETUNREACH from
...
tcpip_tx(). This avoids the irritating wait when you accidentally type
"kernel pxelinux.0" before bringing up the network interface.
Add ENETUNREACH to strerror()'s list.
2007-01-14 16:47:03 +00:00
Michael Brown
c953c1a1c3
Use -ENETUNREACH to mean "no reachable network device exists, don't bother
...
retrying".
2007-01-14 16:22:10 +00:00
Michael Brown
8edf8f6fa8
Add the "initrd" command
2007-01-14 16:09:48 +00:00
Michael Brown
a5f6408d8e
We can now load an initrd as well as a kernel
2007-01-14 16:09:01 +00:00
Michael Brown
b9f99858ab
Make the getmemsize() prototype available in memsizes.h, for code that
...
doesn't want to go to the hassle of processing a full memory map.
2007-01-14 15:32:25 +00:00
Michael Brown
c1fd6e8dc7
Once image type has been set, do not autoprobe further
2007-01-14 15:25:23 +00:00
Michael Brown
99272f958b
Typo
2007-01-14 15:13:33 +00:00
Michael Brown
10c9b03cdb
Actually, the initrd image should be architecture-independent.
2007-01-14 15:07:11 +00:00
Michael Brown
f92e04dea4
Add dummy "initrd" image format, just so that images can be marked as
...
initrds.
2007-01-14 15:03:39 +00:00
Michael Brown
7dc50167bb
Allow load() and exec() methods to be NULL.
2007-01-14 14:59:36 +00:00
Michael Brown
8a490146bf
Copy command line at execution time rather than load time.
...
Parse command line for "vga=" and "mem=" parameters
2007-01-14 14:29:30 +00:00
Michael Brown
3ccd7335f0
Split bzimage_load into separate functions
2007-01-14 13:36:33 +00:00
Michael Brown
97a3037f76
Can start a Linux kernel directly (albeit with no initrd support)
2007-01-14 12:34:35 +00:00
Michael Brown
3cbf0db0a3
Remove some references to no-longer-existent source files.
...
Add a path for isolinux.bin that is correct on my system; hopefully it
will work on others too.
2007-01-14 11:52:22 +00:00
Michael Brown
b04b0ddc31
.lilo and derived targets (e.g. .iso) now load properly.
2007-01-14 11:50:44 +00:00
Michael Brown
77d280968a
Obsoleted by arch/i386/image/multiboot.c
2007-01-14 11:45:28 +00:00
Michael Brown
784e10635a
Can almost start a kernel now. It dies with "No setup signature found"
2007-01-14 06:36:20 +00:00
Michael Brown
698bbe0155
Obsolete
2007-01-14 04:28:42 +00:00
Michael Brown
b07161f397
Placeholder bzImage support
2007-01-14 04:27:25 +00:00
Michael Brown
797edf28b7
Replace image->entry with image->priv.
2007-01-14 04:04:28 +00:00
Michael Brown
3bdbfe1f00
Mostly updated. Won't work yet.
2007-01-14 03:49:07 +00:00
Michael Brown
644f3674e6
Obsolete for some time
2007-01-14 02:24:41 +00:00
Michael Brown
6dcb182aee
Fill in BufferSize in PXENV_GET_CACHED_INFO
2007-01-14 02:21:02 +00:00
Michael Brown
7bc03d37a2
Select a PXE network device before starting PXE NBP.
...
Move pxe_boot() code to pxe_image.c
2007-01-14 02:20:10 +00:00
Michael Brown
98240d99f0
Do not go past the end of the argv[] array.
...
This bug found by setting read and write watchpoints at NULL in bochs.
2007-01-14 02:01:26 +00:00
Michael Brown
55e6d7b70c
Use debug autocolourisation.
...
Shut down before jumping to the multiboot image.
2007-01-14 00:57:43 +00:00
Michael Brown
dca369ddc3
Call hide_etherboot() from startup(), rather than requiring the prefix to
...
do it.
2007-01-14 00:53:56 +00:00
Michael Brown
c2708df14a
Make shutdown functions callable by OS image's exec methods.
2007-01-14 00:16:41 +00:00
Michael Brown
c088ecf042
Make "boot" a synonym for "imgexec", to match grub
2007-01-14 00:08:13 +00:00
Michael Brown
beb941ed81
Rename "boot" to "autoboot"
2007-01-14 00:06:23 +00:00
Michael Brown
ece4ff929e
Use _text, rather than assuming _text==0.
2007-01-14 00:03:07 +00:00
Michael Brown
f547f148d3
Use {get,set}_fbms() so that allocated base memory is correctly hidden.
2007-01-14 00:01:16 +00:00
Michael Brown
0b0e34e667
Provide {get,set}_fbms() in basemem.h.
...
set_fbms() will also update the E820 hidden region.
2007-01-13 23:57:31 +00:00
Michael Brown
aaed3d50a8
Some operating systems get a nasty shock if a region of the E820 map seems
...
to start on a non-page boundary. Make life safer by rounding out our
edited regions.
2007-01-13 23:38:33 +00:00
Michael Brown
d0f4e9a54b
Add some trace messages for important events
2007-01-13 17:54:41 +00:00
Michael Brown
526d314266
Advertise a larger MSS to improve TCP performance.
2007-01-13 17:36:17 +00:00
Michael Brown
f11900a9c6
I prefer IMAGE_XXX to XXX_IMAGE.
...
Add IMAGE_PXE to use the new image format framework. "kernel pxelinux.0"
now works.
2007-01-13 17:28:51 +00:00
Michael Brown
bd863e4112
Add header for pxe_boot()
2007-01-13 17:23:44 +00:00
Michael Brown
4b77061881
Pick up the return status code from the correct place now that we
...
don't overwrite the parameter block until *after* the debug code.
2007-01-13 16:55:57 +00:00
Michael Brown
5817c9f114
When an UNDI API call fails, print everything there is to know about it.
2007-01-13 16:53:55 +00:00
Michael Brown
3b77c7aa1b
Hex dumps are now integrated into the DBG() framework.
2007-01-13 16:49:38 +00:00
Michael Brown
6a3c76c8e0
Always send EOI. We can't feasibly share interrupts (since we have no
...
clue what the "previous" interrupt handler will do, which could range
from "just an iret" to "disable the interrupt"), and that means that
we have to take responsibility for ACKing all interrupts. Joy.
2007-01-13 14:45:26 +00:00
Michael Brown
86171c53f4
Damn Broadcom and their damned incorrect assumptions about x86 memory
...
allocation.
2007-01-13 01:48:12 +00:00
Michael Brown
341c0b9cfb
Add HTTP test support
2007-01-12 19:19:59 +00:00
Michael Brown
497c3a5aad
Fixed HTTP
2007-01-12 19:18:13 +00:00
Michael Brown
369754f959
Whitespace fix
2007-01-12 19:17:25 +00:00
Michael Brown
63386f4455
Added ENOENT, since HTTP 404 translates to it
2007-01-12 19:14:01 +00:00
Michael Brown
ca3db0bf11
Added isspace() and made strtoul() accept whitespace, as per POSIX.
2007-01-12 19:11:28 +00:00
Michael Brown
83b7933f8a
Damn it; my lovely resilient scheme falls down when you have a protocol
...
that switches from line-oriented to byte-oriented partway through, such as
HTTP.
2007-01-12 18:09:14 +00:00
Michael Brown
ad22cccc09
No need to maintain a received byte count; we always fill in sequential
...
order so we can just use buffer->fill.
2007-01-12 17:16:46 +00:00
Michael Brown
996b091b50
Added generic line-buffering code (a la stdio)
2007-01-12 17:08:37 +00:00
Michael Brown
bcd6ca3291
Place multiboot tables in base memory; at least some OSes won't see it
...
if we don't.
2007-01-12 16:25:05 +00:00
Michael Brown
5c72d9c4e0
Print image physical location in registration message.
2007-01-12 16:20:51 +00:00
Michael Brown
0f29e0e46e
Ensure multiboot modules are in ascending order of memory start
...
address, to work around OS bugs.
2007-01-12 12:03:19 +00:00
Michael Brown
53e948bba8
Fix the memory map.
2007-01-12 11:38:04 +00:00
Michael Brown
112d7f9d79
Code used for load buffer and multiboot image testing
2007-01-12 10:12:11 +00:00
Michael Brown
49fc8dcdc3
Use dhcp(), imgfetch() etc. to boot rather than dhcp_test().
2007-01-12 10:08:27 +00:00
Michael Brown
b45a9bfa2d
Added missing declaration.
2007-01-12 10:07:56 +00:00
Michael Brown
a6afbe762c
Make DEBUG=script echo the commands as they are executed
2007-01-12 10:06:59 +00:00
Michael Brown
9952df9b52
Add "dhcp" command
2007-01-12 09:53:28 +00:00
Michael Brown
e2c0055e23
Let ifmgmt.c take care of calling efree(), since it's the once which
...
took out the contract to eventually call efree() when it called fetch().
Maintain the most recently loaded image at the start of the list, so that
imgautoselect() will pick it.
2007-01-12 09:46:10 +00:00
Michael Brown
39ede8c7e8
Added dhcp() user-level command.
2007-01-12 09:20:11 +00:00
Michael Brown
67aedf34fa
Use systematic names for XXX_IMAGE.
...
Add scripts as an image format (since it's trivial to do).
2007-01-12 09:00:48 +00:00
Michael Brown
83559c668a
Don't print "<NULL>" when we use imgautoselect().
2007-01-12 08:59:25 +00:00
Michael Brown
2be2f3b205
Rearrange struct image to reflect usage of the fields
2007-01-12 08:58:16 +00:00
Michael Brown
eba3609e7f
Add debug message
2007-01-12 08:57:51 +00:00
Michael Brown
5162f30028
Ignore comment lines.
...
Avoid returning errors for comments and empty lines.
2007-01-12 08:56:48 +00:00
Michael Brown
48e0fc3447
API change: the raw image will no longer be (hypothetically) discarded
...
after a call to load().
2007-01-12 08:15:25 +00:00
Michael Brown
6fdc6c81a6
Force probing of multiboot before ELF.
2007-01-12 08:10:35 +00:00
Michael Brown
475d6d1f7c
fetch() now knows nothing about struct image; it simply loads a file and
...
returns the allocated buffer.
2007-01-12 08:02:27 +00:00
Michael Brown
2876197306
Allow "imgexec" with no arguments to boot the file that was loaded with
...
"kernel".
2007-01-12 07:32:46 +00:00
Michael Brown
f135a37f30
Cleaner separation between imgXXX() functions and image_cmd.c
2007-01-12 07:22:20 +00:00
Michael Brown
742f242863
Add free_image
2007-01-12 06:26:59 +00:00
Michael Brown
9817f93094
Add basic "fetch" and "imgstat" commands.
2007-01-12 06:05:27 +00:00
Michael Brown
b9fea9cbac
Added IMAGE_LOADED flag and find_image()
2007-01-12 06:03:02 +00:00
Michael Brown
8b6eaf3c82
Be silent if there are no network interfaces
2007-01-12 05:48:22 +00:00
Michael Brown
e96041872e
Added missing declaration.
2007-01-12 05:27:02 +00:00
Michael Brown
9debfed07a
Place command-line inline, to save on memory allocation hassles.
2007-01-12 05:26:19 +00:00
Michael Brown
f15482d85f
Added basename() to make automatically naming images easier.
2007-01-12 05:24:51 +00:00
Michael Brown
29dadc5ec6
Build automatically expanding buffers from struct buffer and erealloc().
2007-01-12 03:51:04 +00:00
Michael Brown
77b7640af4
Fix the only bug (which was to use DBGC() in place of DBG()!) and add 4kB
...
alignment.
2007-01-12 03:28:03 +00:00
Michael Brown
132a8fe49d
Quick and dirty test for emalloc()
2007-01-12 03:27:05 +00:00
Michael Brown
45ec9c907e
First version of an external memory allocator (not tested)
2007-01-12 03:15:29 +00:00
Michael Brown
1d313234b3
Rename copy_user() to memcpy_user(). Add memmove_user() and
...
userptr_add().
2007-01-12 03:14:15 +00:00
Michael Brown
859da6bd32
Allow external code to update hidden memory regions.
2007-01-12 03:13:04 +00:00
Michael Brown
687c1e3227
Nothing (not even hidemem.c) uses this file!
2007-01-12 02:45:46 +00:00
Michael Brown
39a8ed827c
Long since obsoleted by arch/i386/scripts/i386.lds
2007-01-12 02:43:10 +00:00
Michael Brown
2e088d9afc
Obsoleted by arch/i386/interface/pxe/pxe_call.c
2007-01-12 02:42:14 +00:00
Michael Brown
f81bf3bc52
We *do* have a __data16_array after all!
2007-01-12 02:37:47 +00:00
Michael Brown
2c66588f3e
Add UNULL
2007-01-12 01:40:12 +00:00
Michael Brown
6c894c2a2e
Fix typo
2007-01-12 01:37:38 +00:00
Michael Brown
e4c6418ac0
We may be required to page-align modules, so let's make sure we catch
...
it if we don't.
2007-01-12 00:09:16 +00:00
Michael Brown
7bf94b5ad6
Allow for named images.
2007-01-11 23:45:18 +00:00
Michael Brown
f59ad50504
Provide registration mechanism for loaded images, so that we can e.g.
...
refer to them by name from the command line, or build them into a
multiboot module list.
Use setting image->type to disambiguate between "not my image" and "bad
image"; this avoids relying on specific values of the error code.
2007-01-11 23:43:29 +00:00
Michael Brown
79a399c05a
alloca() can be useful in some (limited) circumstances.
2007-01-11 23:19:31 +00:00
Michael Brown
f31d91bce5
Populate multiboot information structure before calling OS.
2007-01-11 21:21:02 +00:00
Michael Brown
ddbc60b5ae
Whoever put together the grub multiboot.h header is insane.
2007-01-11 21:20:27 +00:00
Michael Brown
c468c68661
Add command line that can be passed to executed images.
2007-01-11 21:19:29 +00:00
Michael Brown
200d92c76d
Avoid namespace clashes
2007-01-11 19:42:26 +00:00
Michael Brown
bcc98c78b8
Added fields present in the documentation but not in the header file.
2007-01-11 19:41:13 +00:00
Michael Brown
dc51af59a4
Capable of starting a multiboot kernel (albeit without the multiboot
...
information table yet).
2007-01-11 18:41:15 +00:00
Michael Brown
9196e9069c
Add PHYS_CODE, for use as in __asm__ ( PHYS_CODE ( ... ) ), comparable
...
to the REAL_CODE interface.
2007-01-11 18:40:46 +00:00
Michael Brown
d488a172eb
Capable of loading a multiboot image into memory
2007-01-11 17:44:42 +00:00
Michael Brown
7cf4a72389
Add placeholder elf_execute()
2007-01-11 17:44:07 +00:00
Michael Brown
819cd3f41c
Limit -ENOEXEC to mean "this is not in my format".
2007-01-11 17:06:25 +00:00
Michael Brown
6a03552381
Distinguish between ENOMEM (as representing a lack of internal memory
...
as allocated by malloc()) versus all other errors, in particular
ENOBUFS (representing a lack of external buffer space, e.g. in a
device's TX queue or a user buffer).
2007-01-11 16:30:21 +00:00
Michael Brown
143e3b84a4
Downloaded from current grub CVS.
2007-01-11 16:22:03 +00:00
Michael Brown
c810baad37
Use generic "struct image" rather than "struct elf".
2007-01-11 16:10:32 +00:00
Michael Brown
c6c63d954d
Rename "image" field to "data", because "image->image" is just confusing.
2007-01-11 16:07:30 +00:00
Michael Brown
4fc9333159
Move include/image.h to include/gpxe/image.h
2007-01-11 16:04:36 +00:00
Michael Brown
d84ec0e5d5
Had this file lying around for ages; may as well check it in.
2007-01-11 15:31:50 +00:00
Michael Brown
91ac92bc86
Try image as ELF file first. (Don't yet actually try to execute it).
2007-01-11 15:27:06 +00:00
Michael Brown
3460860bef
Print informative error message when boot fails.
2007-01-11 15:26:17 +00:00
Michael Brown
230f16538f
Create include/gpxe/elf.h for the ELF bits that aren't part of the ELF
...
standard and so don't belong in include/elf.h
2007-01-11 15:25:07 +00:00
Michael Brown
0010e10ef3
Update TFTP to use a struct buffer rather than a callback.
...
Add debug autocolourisation to TFTP.
2007-01-11 15:14:54 +00:00
Michael Brown
d9204ef676
Use physical address in debug messages; they make more sense to read.
2007-01-11 15:08:58 +00:00
Michael Brown
7ad1c2eaa8
Removed the Etherboot-specific ELF-image code and replaced it with a
...
generic ELF loader, to be used by the multiboot code.
2007-01-11 14:44:03 +00:00
Michael Brown
10980c12ee
Add image directory back in
2007-01-11 14:43:15 +00:00
Michael Brown
3634e705b7
Remove osloader.c and replace with a prep_segment() that uses userptr_t
...
and get_memmap() in image/segment.c
2007-01-11 14:32:26 +00:00
Michael Brown
ceca6b185c
Added user_to_phys() and memset_user().
2007-01-11 14:27:27 +00:00
Michael Brown
c980cdd0aa
Move memmap.h out of arch/i386; it no longer contains anything
...
architecture-dependent and is needed by the ELF code.
2007-01-11 14:08:44 +00:00
Michael Brown
c6a4055fae
Add phys_to_user() and copy_user().
2007-01-11 14:01:20 +00:00
Michael Brown
fbfed96965
buffer.c should be using copy_{to,from}_user, rather than
...
copy_{to,from}_phys.
2007-01-11 05:42:06 +00:00
Michael Brown
037da9d840
I hate NULL pointer dereferences.
2007-01-11 05:27:02 +00:00
Michael Brown
03390f0cd6
Use pkb_pad() rather than doing it the dangerous way :)
2007-01-11 05:26:16 +00:00
Michael Brown
a3ed0cbbc7
Extract packet-padding login from rtl8139.c to a separate pkbpad.c file.
2007-01-11 05:25:50 +00:00
Michael Brown
6918cf9e9e
Change FTP to use a data buffer rather than a callback function.
2007-01-11 04:51:20 +00:00
Michael Brown
c0ef730ec4
Fix bug in buffer.c, add buffer mini-unit test.
2007-01-11 04:46:41 +00:00
Michael Brown
83fa318b86
Added strerror(0)=="No error", so that TCP protocols can use
...
strerror(rc) in their closed() methods without producing "Error
0x0000" when the connection is closed normally.
2007-01-11 04:01:31 +00:00
Michael Brown
e2dcd05b67
Update buffer-handling code to enable expandable buffers.
2007-01-11 03:50:47 +00:00
Michael Brown
bb2024c6d6
Move include/buffer.h to include/gpxe/buffer.h
2007-01-11 01:47:26 +00:00
Michael Brown
de042993c0
Warn when net device on an active route is not open.
2007-01-10 20:58:36 +00:00
Michael Brown
d45c5e7ce7
Add "route" command (which currently only displays the routing table; it
...
can't modify it).
2007-01-10 20:51:14 +00:00
Michael Brown
d9ba8f790b
Add route() function to display routing table.
2007-01-10 20:38:20 +00:00
Michael Brown
78ded6604a
Try booting from the "boot" network device first (i.e. the one which we
...
were loaded from). The code to identify this device isn't present yet,
but the code to act upon the knowledge is.
2007-01-10 20:21:42 +00:00
Michael Brown
1fa5cd0e2b
Add find_pci_netdev()
2007-01-10 16:16:05 +00:00
Michael Brown
fdc97499bf
Add device description fields to struct device.
2007-01-10 15:27:48 +00:00
Michael Brown
489a4004d7
Give UNDI device a more meaningful name.
2007-01-10 05:52:04 +00:00
Michael Brown
f396f1f9d3
Force ordering of commands within help list.
2007-01-10 05:13:20 +00:00
Michael Brown
cef551376f
Force ordering of commands in help list.
2007-01-10 05:10:30 +00:00
Michael Brown
77bb7b13a7
Having forced __table() to natural structure alignment, it now seems
...
that we *can* place arrays in tables, which means we can force the
order within a table without having to resort to explicitly numbered
sections on everything.
2007-01-10 05:08:05 +00:00
Michael Brown
dad5274522
Add "name" field to struct device to allow human-readable hardware device
...
names.
Add "dev" pointer in struct net_device to tie network interfaces back to a
hardware device.
Force natural alignment of data types in __table() macros. This seems to
prevent gcc from taking the unilateral decision to occasionally increase
their alignment (which screws up the table packing).
2007-01-10 04:22:09 +00:00
Michael Brown
cc9b32c405
Remove uIP; we haven't used it for quite some time now.
2007-01-10 02:52:58 +00:00
Michael Brown
753e156844
Allow udp_{send,sendto,sendto_via} to be called outside of the
...
udp_senddata() callback. This will simplify any UDP protocols that don't
need the temporary buffer.
2007-01-10 02:46:39 +00:00
Michael Brown
649b789e93
DHCP transmits via specified net device, so no need to create a dummy
...
routing table entry just to fool ipv4.c any more.
2007-01-10 02:37:23 +00:00
Michael Brown
c821a7b20d
Add udp_sendto_via() to allow e.g. DHCP to transmit without first having
...
to set up dummy routing entries.
2007-01-10 02:31:38 +00:00
Michael Brown
f008b77ba2
Allow an explicit network device to be specified for IP-layer
...
transmissions.
2007-01-10 02:25:11 +00:00
Michael Brown
9869659895
Add interface management commands
2007-01-10 02:04:07 +00:00
Michael Brown
55e590ab3a
Move header file for usr/autoboot.c to include/usr
2007-01-10 02:03:20 +00:00
Michael Brown
d24b80acf2
Added network interface management commands
2007-01-10 01:55:07 +00:00
Michael Brown
98b6154c3e
Add "name" field to network device, to facilitate netdev commands.
2007-01-09 23:48:18 +00:00
Michael Brown
c65fae2475
Add RX quotas to the net device poll() method. This avoids the problem
...
of alloc_pkb() exhaustion when e.g. an iSCSI-booted DOS session is left
idle for a long time at the C:\ prompt and builds up a huge packet
backlog.
2007-01-09 21:47:01 +00:00
Michael Brown
e822bc2a90
Autopadding was sometimes overwriting the struct list_head at the end
...
of the packet buffer. Although pkbuffs are guaranteed to be at least
PKB_ZLEN bytes long, there's no guarantee that the data starts at the
start of the packet buffer.
Since we have to align data for rtl8139 anyway, and since the start of
the packet buffer is guaranteed to be aligned to PKB_ALIGN, we may as
well just shuffle the packet down so that it starts at the start of
the packet buffer. This simultaneously aligns the packet and ensures
that there is enough room for the zero-padding.
2007-01-09 21:01:55 +00:00
Michael Brown
18e5353bed
Rename pkb_available() to pkb_tailroom() for consistency with Linux's
...
skb_tailroom(). Add pkb_headroom().
2007-01-09 20:56:31 +00:00
Michael Brown
b7fcfe8ece
Added net device TX queue; this will be needed to support the PXE UNDI API
...
(which will need us to wait for TX completions).
Added debug autocolourisation to netdevice.c
2007-01-09 20:18:31 +00:00
Michael Brown
8a268073a7
Move start/stop/expire debug messages to DBG2() level.
2007-01-09 17:39:52 +00:00
Michael Brown
3c2cc59d25
Added ability to break ISR processing over several calls to poll().
...
This will allow us to implement RX quotas.
2007-01-09 17:04:10 +00:00
Michael Brown
aa7bda7b47
Send EOI after enabling interrupt, in case the device had asserted IRQ
...
to the PIC while it was disabled.
2007-01-09 14:53:19 +00:00
Michael Brown
a2ffe8c123
Allow boot sector to completely destroy real-mode stack, but still
...
manage to return control.
2007-01-09 14:13:59 +00:00
Michael Brown
a9369bb503
Leave protected-mode return address on PM stack when issuing a
...
real_call(), rather than moving it to the RM stack and back again.
This allows the real-mode function to completely destroy the stack
contents, provided that it manages to return to real_call().
2007-01-09 14:13:06 +00:00
Michael Brown
2eeb7c4fe7
Define "connected" as
...
"when SYN is ACKed and we have already received SYN", or
"when SYN is received and we have already had SYN ACKed"
rather than just
"when SYN is ACKed"
This avoids spuriously calling the connected() method when we receive
a RST,ACK in response to a SYN.
2007-01-09 05:01:22 +00:00
Michael Brown
70cc3a164a
Reset character attributes before start of welcome banner, in case
...
it's a serial console and remembers state from the previous program
run.
2007-01-09 04:51:27 +00:00
Michael Brown
aaca21a2b6
We can't assert that the RX engine is idle in iscsi_done(), because it
...
may be called during the RX data processor, before the RX engine
transitions back to idle. It doesn't really matter if the RX engine
isn't idle when iscsi_done() is called, because it will just pick up
where it left off on the next call. (The same is not true for the TX
engine, so keep the TX engine assertion.)
2007-01-09 04:42:23 +00:00
Michael Brown
6ea07b9247
Use debug auto-colourisation.
2007-01-09 04:38:39 +00:00
Michael Brown
76525294ee
Clean up connection closing and permanent failure logic.
2007-01-09 04:31:33 +00:00
Michael Brown
2738bdf74b
Obsoleted by drivers/net/undionly.c
2007-01-09 03:22:11 +00:00
Michael Brown
d606edb41d
Added UNDI root bus driver (which saves including all the PCI bus code,
...
UNDI ROM code etc. when you just want a "undi.kpxe"-type image).
This driver cannot be used in conjunction with any other driver (it will
crash), or in any other format than .kpxe (it just won't find any network
devices).
2007-01-09 03:20:22 +00:00
Michael Brown
159930862f
Added missing call to undinet_remove()
2007-01-09 03:08:01 +00:00
Michael Brown
6b09dd8244
undipci_probe() has to calculate busdevfn anyway, so we may as well pass
...
it directly to undi_load_pci().
2007-01-09 02:58:07 +00:00
Michael Brown
ed44e3730d
Avoid erasing non-existent signatures in undi_unload()
2007-01-09 02:53:24 +00:00
Michael Brown
a2be828a33
Avoid leaving preloaded_undi with invalid PXENV+/!PXE structure
...
addresses if the signature checks fail.
2007-01-09 02:52:28 +00:00
Michael Brown
697bcc9d24
Since we now always unload the base code stack (even if we keep UNDI),
...
we can never return to the PXE stack and must always use INT 18.
2007-01-09 02:46:58 +00:00
Michael Brown
f2f492a536
If preloaded device matches, use that rather than going via the UNDI
...
loader.
2007-01-09 02:32:06 +00:00
Michael Brown
2436dac281
Populate preloaded_undi device when applicable.
2007-01-09 02:29:54 +00:00
Michael Brown
937289cdc8
Provide storage for an undi_device structure representing the preloaded
...
UNDI stack.
2007-01-09 02:29:18 +00:00
Michael Brown
47222d5ed8
Call PXENV_UNDI_GET_NIC_TYPE to identify NIC physical device.
...
Record all information required for populating a struct undi_device.
Make debugging output more human-readable.
2007-01-09 01:42:28 +00:00
Michael Brown
cea2221737
Use fixed-width fields in struct undi_device, so that pxeprefix.S will be
...
able to populate the structure.
2007-01-09 01:41:26 +00:00
Michael Brown
fbdebac5f4
Copy pxelinux's shutdown sequence: use UNLOAD_STACK without STOP_BASE,
...
and call UNDI_SHUTDOWN first to make sure the NIC is in a safe state.
2007-01-08 05:06:26 +00:00
Michael Brown
8f8af10b22
New strategy: always stop both base code and UNDI. Always free base code
...
memory (unless we get an error while stopping the base code). Leave UNDI
resident (though stopped) for .kpxe.
Still need to add code to record the device identification parameters
prior to stopping UNDI.
2007-01-08 03:48:26 +00:00
Michael Brown
075d79f6d4
Checking in obsolete but working memory-scanning code just for the record
2007-01-08 03:45:00 +00:00
Michael Brown
67e824b539
Neaten up debug messages
2007-01-08 03:42:19 +00:00
Michael Brown
f08093b0d9
Remove spurious debug message
2007-01-08 03:37:32 +00:00
Michael Brown
f0edd11c7d
Now split out into undirom.c and undiload.c
2007-01-08 03:35:51 +00:00
Michael Brown
07e5d4e3dc
Added any-PCI-device UNDI driver
2007-01-08 03:34:47 +00:00
Michael Brown
66f7bcc785
Tidied up debug messages
2007-01-08 03:34:06 +00:00
Michael Brown
79c5f0ba04
Added PCI_BASE_CLASS() macro
2007-01-08 03:32:41 +00:00
Michael Brown
5af4918356
Added support for wildcard device/vendor ID matches
2007-01-08 03:23:38 +00:00
Michael Brown
20c9fc407e
Remove types and prototypes now provided in the undi*.h headers.
2007-01-08 03:05:34 +00:00
Michael Brown
a6ba48e51e
Added debugging statements
2007-01-08 03:04:54 +00:00
Michael Brown
239965ff3b
Added missing includes
2007-01-08 03:03:42 +00:00
Michael Brown
6115356859
Added missing declarations
2007-01-08 02:51:27 +00:00
Michael Brown
aff96c13d2
Added missing include
2007-01-08 02:51:04 +00:00
Michael Brown
afc01a1a7f
Split UNDI load/unload out into undiload.c.
2007-01-08 02:48:17 +00:00
Michael Brown
359c888aec
Remove obsolete includes
2007-01-08 02:39:56 +00:00
Michael Brown
6fc75f659b
Separated out UNDI ROM location code into undirom.c, and use struct
...
undi_rom rather than struct pxe_driver. (This is part of the naming
consistency fixes).
2007-01-08 02:38:10 +00:00
Michael Brown
675fe200e5
Use "struct undi_device" instead of "struct pxe_device", and use the
...
function prefix "undinet_" and the variable name "undinic" in undinet.c,
so that we can reserve the variable name "undi" for a struct undi_device.
The idea is that we preserve the Etherboot 5.4 convention that the "UNDI"
code refers to our using an underlying UNDI stack, while the "PXE" code
refers to our providing a PXE API.
2007-01-08 02:24:53 +00:00
Michael Brown
36c1e1aa57
Renamed undi.c to undinet.c. (undi.c will become the UNDI PCI driver)
2007-01-08 02:02:07 +00:00
Michael Brown
234d81728a
Obsolete
2007-01-08 02:00:55 +00:00
Michael Brown
7b9617f5df
Add device to hierarchy before calling the driver's probe() function; this
...
way everything remains consistent if the probe() ends up creating child
devices.
2007-01-08 01:29:51 +00:00
Michael Brown
d3558fdd3a
Remove accidentally checked-in code
2007-01-07 19:05:28 +00:00
Michael Brown
85a41b25fe
Move START_UNDI, UNDI_STARTUP, UNDI_INITIALIZE and
...
UNDI_GET_INFORMATION calls into drivers/net/undi.c. undi_probe() now
gets given a pxe_device representing a PXE stack that has been loaded
into memory but not initialised in any way.
2007-01-07 19:02:17 +00:00
Michael Brown
23cb837951
Remember to enable/disable the interrupt at the PIC.
...
Handle failures in undi_open() properly.
2007-01-07 13:31:39 +00:00
Michael Brown
9ab5c0dde7
Remove redundant debug message
2007-01-05 16:15:50 +00:00
Michael Brown
fa9055197d
UNDI loader routine now works
2007-01-05 16:11:05 +00:00
Michael Brown
477a70697a
Added PnP BIOS scanning code, separated out from the UNDI driver
2007-01-05 16:10:03 +00:00
Marty Connor
7dee2556f4
Fixed typo
2007-01-05 16:09:47 +00:00
Michael Brown
d0a3cc3417
Avoid creating implicit memcpy()s
2007-01-05 14:48:20 +00:00
Michael Brown
9780fef360
Partial implementation of UNDI loader caller.
2007-01-05 03:24:39 +00:00
Michael Brown
0638945c7e
Add PXE driver-scanning code, capable of locating all PXE ROMs in a system
...
and matching them up to (e.g. PCI) devices.
2007-01-05 01:52:06 +00:00
Michael Brown
ef50ea0b2b
Renamed undi_net.c to undi.c.
2007-01-04 19:43:35 +00:00
Michael Brown
6cf488dcf7
Obsolete; net driver functionality is now in undi_net.c and bus driver
...
functionality is now in pxebus.c. (Not all bus functionality is ported
across yet.)
2007-01-04 19:42:05 +00:00
Michael Brown
7e07dfb2f4
Added PXE bus driver (with support only for using PXE structures found
...
lying about in memory, not for loading from ROM), and UNDI net driver.
2007-01-04 19:38:34 +00:00
Michael Brown
e28db95de6
Obsolete
2007-01-04 19:37:31 +00:00
Michael Brown
3b2f6e4585
Currently unusable; do not attempt to compile
2007-01-04 19:37:21 +00:00
Michael Brown
70acce06e4
This file is no longer used
2007-01-04 19:36:31 +00:00
Michael Brown
b12cd68726
Ripped out everything except the ability to send EOI to the PIC.
2007-01-04 19:36:18 +00:00
Michael Brown
de2fc50f4c
Add as a separate file so that we can do "make bin/xxxx.kpxe" rather than
...
having to edit PXELOADER_KEEP_ALL as a config option.
2007-01-04 19:35:10 +00:00
Michael Brown
350603cb86
Don't include __FUNCTION__ in assert() messages; it was causing the
...
function name to appear within the objects even in non-asserting
builds. (This could be considered a gcc bug.)
Removing __FUNCTION__ from assert() reduces the size of bin/blib.a by
around 2.5%!
2007-01-04 13:48:13 +00:00
Michael Brown
20681d6168
Allow empty checksums on received packets
2007-01-04 05:17:28 +00:00
Michael Brown
290c5ee779
Don't automatically call gateA20_set() when returning from a real-mode
...
call.
2007-01-04 04:32:18 +00:00
Michael Brown
0c03bb5a9a
Make open() and close() an official part of the netdevice API.
...
Call netdevice's poll() and transmit() methods only when device is open.
2007-01-04 04:20:08 +00:00
Michael Brown
d4894f0127
We *should* use the persistent reference API for our netdev reference,
...
but there's so much else missing that it's not worth doing right now.
2007-01-04 03:44:36 +00:00
Michael Brown
7fafa89258
A DHCP session holds a persistent reference to a network device
2007-01-04 03:42:28 +00:00
Michael Brown
ac53da1790
Added missing #include
2007-01-04 03:40:07 +00:00
Michael Brown
b29861a5aa
IPv6 minirouting table entries hold persistent references to net devices.
2007-01-04 03:28:30 +00:00
Michael Brown
b22d4405c0
An AoE session holds a persistent reference to a net device.
2007-01-04 03:21:45 +00:00
Michael Brown
35b5e5d3f5
Minirouting table entries hold a persistent reference to a net_device.
2007-01-04 03:10:21 +00:00
Michael Brown
bdf79ec8dc
Use hotplug support to notify persistent reference holders when a
...
net_device is unregistered.
2007-01-04 03:09:28 +00:00
Michael Brown
0063725d28
Minimal hotplug support: provide a facility for notifying persistent
...
reference holders that their reference is about to become invalid.
2007-01-04 03:08:16 +00:00
Michael Brown
b0daa99dce
Send RST packets when we get a non-matching connection, or receive an
...
out-of-range ACK.
2007-01-03 22:21:59 +00:00
Michael Brown
eea1167a85
Accept RST on received packets
2007-01-03 21:51:36 +00:00
Michael Brown
94fc68895d
Improve consistency between TCP and UDP RX datapaths
2007-01-03 21:13:11 +00:00
Michael Brown
a0525a4ed3
Verify checksums on the RX datapath.
...
Simplify checksum generation on the TX datapath.
2007-01-03 20:48:52 +00:00
Michael Brown
285beeff7c
Tidy up debug messages
...
Move routing into a separate function
2007-01-03 16:39:11 +00:00
Michael Brown
718294553b
Fix compiler warning
2007-01-03 15:56:15 +00:00
Michael Brown
b91b9d3d88
Use whole bytes for the ACKED and RCVD portions of tcp_state; it
...
produces slightly smaller code.
2006-12-30 01:32:22 +00:00
Michael Brown
83e1340d88
Use autocolourisation
2006-12-29 14:09:23 +00:00
Michael Brown
feb4f65d1e
Use auto-colourisation for debug messages.
...
Truncate TX length to TCP window at time of transmission rather than at
time of adding to TX packet; this is conceptually cleaner and also allows
the application to call tcp_send() multiple times to build up a single
packet.
2006-12-29 14:03:03 +00:00
Michael Brown
2494625702
Added auto-colourising DBGC() macro
2006-12-29 03:05:21 +00:00
Michael Brown
ce9819af27
Redefine TCP state to include "flags that have been sent" rather than
...
"flags that are currently being sent". This allows at least one special
case (checking that we haven't already sent a FIN in tcp_rx_fin()) to be
collapsed.
2006-12-29 00:44:31 +00:00
Michael Brown
be31970e36
Don't send a second FIN if we receive a FIN while in FIN_WAIT_2
2006-12-27 23:44:05 +00:00
Michael Brown
61ed298bc7
Merge changes from mcb-tcp-fixes branch.
2006-12-27 23:09:46 +00:00
Michael Brown
b6def29f2b
Keep running the main processing loop while waiting for input.
2006-12-27 22:59:40 +00:00
Michael Brown
1a11cc5c5b
Added times to start/stop log messages
2006-12-27 22:56:39 +00:00
Michael Brown
4cc1c1bd4c
Ensure that old TCP connection state is destroyed before attempting to
...
reopen connection. (The TCP API will soon change to render this step
unnecessary.)
2006-12-22 13:04:50 +00:00
Michael Brown
a2e3357825
Cannot immediately overwrite the peer address when we parse
...
TargetAddress from the login response, because we still need the old
address while we close the connection!
2006-12-22 12:24:12 +00:00
Michael Brown
73e3e02367
Fix prototype of random() and move to stdlib.h
2006-12-22 01:44:51 +00:00
Michael Brown
66a7ed23cb
Make start_timer() and stop_timer() robust against incorrect usage.
2006-12-22 01:35:21 +00:00
Michael Brown
9485478acc
ibft_fill_data() prototype change.
2006-12-21 18:42:51 +00:00
Michael Brown
d6f9152bfa
Avoid null pointer dereferences when no username/password specified.
2006-12-21 18:38:24 +00:00
Michael Brown
6ceb55fad0
When login fails, leave the session open but not in full feature
...
phase. In iscsi_issue(), detect this state and immediately refuse the
operation. This avoids trying multiple logins when scsi.c tries
several times to read the drive capacity.
2006-12-21 17:43:43 +00:00
Michael Brown
024809d454
Use a bigger buffer for the initiator IQN
2006-12-21 17:42:02 +00:00
Michael Brown
ab242a760d
Add ability to shut down iSCSI connection
2006-12-21 17:17:47 +00:00
Michael Brown
7ce3df65c2
Default to port 0 (sic).
2006-12-21 17:16:06 +00:00
Michael Brown
286db6ffa3
Print explicit error message on iSCSI boot failure, and add
...
"Permission denied" as an error text to strerror().
2006-12-21 16:16:24 +00:00
Michael Brown
fbc7b4dfa8
Add iSCSI initiator IQN as a setting
2006-12-21 16:08:37 +00:00
Michael Brown
f58f193633
Engage brain: since when was zero >= 0x80 ?
2006-12-21 05:15:26 +00:00
Michael Brown
9c3b4e5b0b
Some BIOSes return 0xe0 for extended characters. Just assume that
...
anything over 0x80 is an extended character.
2006-12-21 00:07:48 +00:00
Michael Brown
839d425c6e
Added missing header
2006-12-20 23:43:44 +00:00
Michael Brown
dbb7b30cca
Return ANSI sequences for special keys
2006-12-20 23:42:28 +00:00
Michael Brown
f33a03c1e5
Use getkey() and symbolic key names.
2006-12-20 22:25:54 +00:00
Michael Brown
cacd6b1d04
KEY_XXX constants are now defined in gpxe/keys.h. Kept separate from
...
curses.h so that you don't have to suffer the curses namespace pollution
just to get the symbolic key names.
2006-12-20 22:24:45 +00:00
Michael Brown
4b2b8b02ab
Use symbolic key names, and avoid moving beyond end of string
2006-12-20 22:21:09 +00:00
Michael Brown
46c3eeba2a
Fix definition of KEY_END
2006-12-20 22:17:44 +00:00
Michael Brown
c5df1bc7df
Use getkey() and symbolic key names.
2006-12-20 22:12:53 +00:00
Michael Brown
ae728f8d23
Some key sequences seem to end with a tilde
2006-12-20 22:12:25 +00:00
Michael Brown
2ae27f44d9
Add insert/delete and document keys, and documentation.
2006-12-20 22:11:28 +00:00
Michael Brown
791c7d3bf4
Added code to interpret ANSI keypress sequences into KEY_XXX constants.
2006-12-20 21:56:50 +00:00
Michael Brown
96a1a2c6f0
Key definitions
2006-12-20 21:53:07 +00:00
Michael Brown
b9f8599537
Define KEY_MIN and use it in kb.c.
2006-12-20 21:10:32 +00:00
Michael Brown
43d976edd0
Prevent NULL from ever pointing to some real code or data. (This was
...
causing the serial console to ignore input, because it happened to end up
linked with serial_ischar() at address 0, which core/console.c decided was
invalid).
2006-12-20 20:28:20 +00:00
Michael Brown
6ceaa158da
Return -EIO when verification fails, instead of -EINVAL.
2006-12-20 14:11:50 +00:00
Michael Brown
cbeec25662
settings_ui() now returns a status code.
2006-12-20 11:42:48 +00:00
Michael Brown
07ddaedd33
Add EIO.
...
Kill errortab array; it can screw up alignment.
2006-12-20 07:57:40 +00:00
Michael Brown
60a3f77711
Close UDP connection when DHCP completes.
2006-12-20 07:19:48 +00:00
Michael Brown
c21502acad
No longer needed
2006-12-20 07:13:46 +00:00
Michael Brown
a6d1815bc6
Obsolete for some time now.
2006-12-20 07:05:32 +00:00
Michael Brown
84202d89f0
Split the (quick hack) boot logic out from main.c to autoboot.c, add a
...
"boot" command to attempt booting from within the command shell, fall back
to shell if boot fails for any reason.
2006-12-20 07:04:08 +00:00
Michael Brown
9ab17484d0
Explicitly call erase(), to cope with platforms where the ANSI clear
...
screen sequence doesn't work (like bios_console.c on some platforms).
2006-12-20 06:12:04 +00:00
Michael Brown
f8910410fe
Add attr_{get,set,on,off} as static inlines.
2006-12-20 06:06:38 +00:00
Michael Brown
8f9336e0c1
Add "config" command to access config UI
2006-12-20 05:37:33 +00:00
Michael Brown
666b309c0c
Add instruction row, and save option
2006-12-20 05:37:15 +00:00
Michael Brown
75430e813e
Only need printf(), so use vsprintf.h instead of console.h
2006-12-20 05:33:12 +00:00
Michael Brown
2b97d2ebc5
8-bit integers are 1 byte long, not 8...
2006-12-20 05:04:17 +00:00
Michael Brown
e4f489636f
Clear message on alert row before printing new one
2006-12-20 05:03:55 +00:00
Michael Brown
b93ff48173
Added descriptive text for settings and setting types, and display it in
...
the option config UI.
2006-12-20 04:58:26 +00:00
Michael Brown
35edecac34
Move {show,set,clear}_setting() to {show,set,clear}_named_setting().
...
Introduce new {show,set,clear}_setting() that take a struct setting *
rather than a const char *.
set_setting() handles calling clear_setting() when appropriate, so that
individual setting types don't have to check for empty strings.
2006-12-20 04:20:13 +00:00
Michael Brown
fc7dcc201b
Added messages for some of the most common errors
2006-12-20 03:54:20 +00:00
Michael Brown
7766e34ed1
Split strerror() out from errno.c
2006-12-20 03:49:36 +00:00
Michael Brown
65e97c4f22
Alert when saving settings fails
2006-12-20 03:43:24 +00:00
Michael Brown
4b33c03942
Increase colour pair limit
2006-12-20 03:42:35 +00:00
Michael Brown
c66b99272f
Fix (hopefully) the scrolling logic
2006-12-20 03:41:55 +00:00
Michael Brown
84a2b886e1
Split error-message table portions of errno.h out to gpxe/errortab.h
2006-12-20 03:40:48 +00:00
Michael Brown
e5f0898f38
Move strerror() prototype to string.h, where it belongs
2006-12-20 03:35:49 +00:00
Michael Brown
04da3556f9
Differentiate between ENOSPC and ENOMEM
2006-12-20 03:34:27 +00:00
Michael Brown
4f506328ad
Use -ENOSPC rather than -ENOMEM, to distinguish the cases "generic out of
...
memory" and "no space left for DHCP options"
2006-12-20 03:33:37 +00:00
Michael Brown
637a891264
Fix prototype of sleep() and move it to unistd.h
2006-12-20 03:14:59 +00:00
Michael Brown
1e322d4b4c
Add (partly-functional) user interface for editing configuration settings
2006-12-20 03:04:07 +00:00
Michael Brown
3e0f7621eb
Don't automatically redraw the edit box; this allows better inheritance.
2006-12-20 02:09:41 +00:00
Michael Brown
35dcbfe771
Editable text box widget based on mucurses and edit_string.
2006-12-20 01:40:57 +00:00
Michael Brown
82ec3fc5cc
Reset screen on exit as well as entry
2006-12-20 01:30:40 +00:00
Michael Brown
24f945edce
Add "exit --help" to preempt the pedants.
2006-12-20 00:44:16 +00:00
Michael Brown
d7cffd33e1
Remove obsolete mechanism for including nvo_cmd.o
2006-12-20 00:39:52 +00:00
Michael Brown
ec5789bf0c
Select required commands via config.h
2006-12-20 00:39:06 +00:00
Michael Brown
9f953322a1
Remove warning (at least on platforms with uint32_t == unsigned long).
2006-12-20 00:34:53 +00:00
Michael Brown
a1685cb3e2
Move nvo_cmd.c to hci/commands.
2006-12-20 00:31:34 +00:00
Michael Brown
4d0d275ce4
Functionality now replaced by a combination of readline() and system().
2006-12-20 00:27:11 +00:00
Michael Brown
38ad706b08
Use new minimal shell
2006-12-20 00:26:01 +00:00
Michael Brown
4919646fb9
Separated out (and tidied up) shell banner code
2006-12-20 00:24:13 +00:00
Michael Brown
a2c5744daf
Minimal shell implementation using readline() and system().
2006-12-19 23:55:05 +00:00
Michael Brown
a646e38f03
Use stdlib.h for malloc() instead of malloc.h.
2006-12-19 23:42:46 +00:00
Michael Brown
b613086bfe
Explicitly print out-of-memory message to avoid tricking the user into
...
thinking that a command executed successfully.
2006-12-19 23:37:51 +00:00
Michael Brown
22289ca8f6
Functioning readline()
2006-12-19 23:25:44 +00:00
Michael Brown
66007fa448
Provide an edit history to allow caller to efficiently update display.
2006-12-19 23:24:16 +00:00
Michael Brown
abbfbd678d
Explicitly move cursor to top-left of screen, in case the clear screen
...
call doesn't do it.
2006-12-19 22:37:12 +00:00
Michael Brown
b3c535e550
Skeletal (non-echoing) version of readline()
2006-12-19 22:35:10 +00:00
Michael Brown
19e1d674d3
Catch attempts to print NULL strings
2006-12-19 22:33:42 +00:00
Michael Brown
1bc3514bd8
Start of generic editable string support
2006-12-19 19:28:12 +00:00
Michael Brown
70d20c4e7a
Use common symbols to avoid dragging in getopt.o unless a getopt-using
...
command is linked in.
2006-12-19 16:27:15 +00:00
Michael Brown
c1bac56f85
Use current attributes when erasing.
2006-12-19 01:17:10 +00:00
Michael Brown
cdfe61662b
Assume a 24-line screen, since we can't (easily) avoid scrolling after
...
printing in the bottom-right position.
2006-12-19 01:16:43 +00:00
Michael Brown
0aa1223264
Optimise bios_putchar for speed(!) by avoiding two separate real-mode
...
calls. This does make a visible difference when clearing the screen with
werase() inside bochs or qemu.
2006-12-19 01:15:05 +00:00
Michael Brown
e85bf52446
Avoid cursor move on every single character
2006-12-19 00:51:32 +00:00
Michael Brown
8e460de6be
Obsolete, and no longer functions
2006-12-19 00:34:54 +00:00
Michael Brown
e7cc1c6c35
Use ANSI escape sequence to reset and clear terminal, rather than using
...
the (slow) werase().
2006-12-19 00:33:36 +00:00
Michael Brown
edbdce6e3d
Now basically functioning on ANSI-supporting consoles.
2006-12-19 00:27:25 +00:00
Michael Brown
09f9142cbf
Adjusted to use the normal internal mucurses API rather than accessing
...
stdscr directly.
2006-12-18 21:44:44 +00:00
Michael Brown
b6b36e8ac4
Remove more dynamic allocation
2006-12-18 21:28:35 +00:00
Michael Brown
04d15fb8f8
There seems to be no reason why pos_x is static...
2006-12-18 21:12:58 +00:00