Align netgraph message fields ready for 64-bit (and 128 bit :-) machines.

requires a recompile of netgraph users.
Also change the size of a field in the bluetooth code
that was waiting for the next change that needed recompiles so
it could piggyback its way in.

Submitted by:	jdp, maksim
MFC after:	2 days
This commit is contained in:
julian 2004-08-20 01:24:23 +00:00
parent 80ff6433dd
commit fe9f220a60
4 changed files with 14 additions and 10 deletions

View File

@ -21,6 +21,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 5.x IS SLOW:
developers choose to disable these features on build machines
to maximize performance.
20040819:
Netgraph changed its message format slightly to align the data
portion well on 64 bit machines.
Netgraph using utilities (e.g. ngctl, nghook, ppp, mpd,
pppoed, bluetooth, ATM) should be recompiled when a new kernel
is installed.
20040817:
IPFW has been converted to use PFIL_HOOKS. This change is
transparent to userland and preserves the ipfw ABI. The ipfw

View File

@ -42,17 +42,12 @@
/*
* Bluetooth version of struct sockaddr for raw HCI sockets
*
* XXX: sizeof(hci_node) was NG_NODELEN + 1, but NG_NODESIZ (the equivalent
* of NG_NODELEN + 1) has been bumped to 32. The code currently
* truncates the node name to sizeof(hci_node), although it would be
* possible to correctly handle this by means of the hci_len field.
*/
struct sockaddr_hci {
u_char hci_len; /* total length */
u_char hci_family; /* address family */
char hci_node[16]; /* address */
char hci_node[32]; /* address (size == NG_NODESIZ ) */
};
/* Raw HCI socket options */

View File

@ -62,7 +62,7 @@
* Change it for NETGRAPH_DEBUG version so we cannot mix debug and non debug
* modules.
*/
#define _NG_ABI_VERSION 9
#define _NG_ABI_VERSION 10
#ifdef NETGRAPH_DEBUG /*----------------------------------------------*/
#define NG_ABI_VERSION (_NG_ABI_VERSION + 0x10000)
#else /* NETGRAPH_DEBUG */ /*----------------------------------------------*/

View File

@ -67,10 +67,11 @@ struct ng_mesg {
u_char version; /* == NGM_VERSION */
u_char spare; /* pad to 2 bytes */
u_int16_t arglen; /* length of data */
u_int32_t cmd; /* command identifier */
u_int32_t flags; /* message status */
u_int32_t spare2; /* pad to 8 bytes */
u_int32_t token; /* match with reply */
u_int32_t typecookie; /* node's type cookie */
u_int32_t cmd; /* command identifier */
u_char cmdstr[NG_CMDSTRSIZ]; /* cmd string + \0 */
} header;
char data[]; /* placeholder for actual data */
@ -84,10 +85,11 @@ struct ng_mesg {
{ "version", &ng_parse_uint8_type }, \
{ "spare", &ng_parse_uint8_type }, \
{ "arglen", &ng_parse_uint16_type }, \
{ "cmd", &ng_parse_uint32_type }, \
{ "flags", &ng_parse_hint32_type }, \
{ "spare2", &ng_parse_uint32_type }, \
{ "token", &ng_parse_uint32_type }, \
{ "typecookie", &ng_parse_uint32_type }, \
{ "cmd", &ng_parse_uint32_type }, \
{ "cmdstr", &ng_parse_cmdbuf_type }, \
{ "data", (dtype) }, \
{ NULL } \
@ -98,7 +100,7 @@ struct ng_mesg {
* Interfaces within the kernel are defined by a different
* value (see NG_ABI_VERSION in netgraph.g)
*/
#define NG_VERSION 6
#define NG_VERSION 7
/* Flags field flags */
#define NGF_ORIG 0x00000000 /* the msg is the original request */