This commit is contained in:
purplerain 2023-05-02 22:23:09 +00:00
parent 01bad5edf2
commit f609457dcf
Signed by: purplerain
GPG Key ID: F42C07F07E2E35B7
85 changed files with 1589 additions and 1491 deletions

View File

@ -1,5 +1,5 @@
#!/bin/ksh
# $OpenBSD: install.sub,v 1.1243 2023/04/25 14:20:13 kn Exp $
# $OpenBSD: install.sub,v 1.1244 2023/05/02 15:55:58 deraadt Exp $
#
# Copyright (c) 1997-2015 Todd Miller, Theo de Raadt, Ken Westerback
# Copyright (c) 2015, Robert Peichaer <rpe@openbsd.org>
@ -3102,7 +3102,7 @@ Create a passphrase protected CRYPTO softraid volume to be used as root disk.
__EOT
diskinfo $(get_dkdevs);;
'') ;;
no) return;;
n|no) return;;
*) isin "$resp" $(get_dkdevs) && break
echo 'No such disk.';;
esac

View File

@ -1 +1 @@
# SecBSD 1.3-df696c4: Mon May 2 00:00:00 UTC 2023 (Quetzalcoatl)
# SecBSD 1.3-8bfda6e: Mon May 2 00:00:00 UTC 2023 (Quetzalcoatl)

View File

@ -3508,7 +3508,7 @@ else
lt_cv_sys_max_cmd_len=8192;
;;
netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
netbsd* | freebsd* | openbsd* | darwin* | dragonfly* | secbsd*)
# This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`

View File

@ -185,7 +185,7 @@ case ${generic_target} in
esac ;;
i386-*-openbsd[0-2].* | \
i386-*-openbsd3.[0-2]) fmt=aout em=obsd ;;
i386-*-openbsd* | i386-*-secbsd) fmt=elf em=obsd ;;
i386-*-openbsd* | i386-*-secbsd*) fmt=elf em=obsd ;;
i386-*-linux*aout*) fmt=aout em=linux ;;
i386-*-linux*oldld) fmt=aout em=linux ;;
i386-*-linux*coff*) fmt=coff em=linux ;;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: ec_curve.c,v 1.39 2023/05/01 17:53:01 tb Exp $ */
/* $OpenBSD: ec_curve.c,v 1.41 2023/05/02 13:01:57 tb Exp $ */
/*
* Written by Nils Larsch for the OpenSSL project.
*/
@ -3000,11 +3000,10 @@ static const struct ec_list_element {
static EC_GROUP *
ec_group_new_from_data(const struct ec_list_element *curve)
{
EC_GROUP *group = NULL;
EC_POINT *P = NULL;
EC_GROUP *group = NULL, *ret = NULL;
EC_POINT *generator = NULL;
BN_CTX *ctx = NULL;
BIGNUM *p, *a, *b, *x, *y, *order, *cofactor;
int ok = 0;
if ((ctx = BN_CTX_new()) == NULL) {
ECerror(ERR_R_MALLOC_FAILURE);
@ -3057,8 +3056,9 @@ ec_group_new_from_data(const struct ec_list_element *curve)
ECerror(ERR_R_EC_LIB);
goto err;
}
EC_GROUP_set_curve_name(group, curve->nid);
if ((P = EC_POINT_new(group)) == NULL) {
if ((generator = EC_POINT_new(group)) == NULL) {
ECerror(ERR_R_EC_LIB);
goto err;
}
@ -3070,7 +3070,7 @@ ec_group_new_from_data(const struct ec_list_element *curve)
ECerror(ERR_R_BN_LIB);
goto err;
}
if (!EC_POINT_set_affine_coordinates(group, P, x, y, ctx)) {
if (!EC_POINT_set_affine_coordinates(group, generator, x, y, ctx)) {
ECerror(ERR_R_EC_LIB);
goto err;
}
@ -3082,51 +3082,45 @@ ec_group_new_from_data(const struct ec_list_element *curve)
ECerror(ERR_R_BN_LIB);
goto err;
}
if (!EC_GROUP_set_generator(group, P, order, cofactor)) {
if (!EC_GROUP_set_generator(group, generator, order, cofactor)) {
ECerror(ERR_R_EC_LIB);
goto err;
}
if (curve->seed != NULL) {
if (!EC_GROUP_set_seed(group, curve->seed, curve->seed_len)) {
ECerror(ERR_R_EC_LIB);
goto err;
}
}
ok = 1;
ret = group;
group = NULL;
err:
if (!ok) {
EC_GROUP_free(group);
group = NULL;
}
EC_POINT_free(P);
EC_GROUP_free(group);
EC_POINT_free(generator);
BN_CTX_end(ctx);
BN_CTX_free(ctx);
return group;
return ret;
}
EC_GROUP *
EC_GROUP_new_by_curve_name(int nid)
{
size_t i;
EC_GROUP *ret = NULL;
if (nid <= 0)
return NULL;
for (i = 0; i < CURVE_LIST_LENGTH; i++) {
if (curve_list[i].nid == nid) {
ret = ec_group_new_from_data(&curve_list[i]);
break;
}
if (curve_list[i].nid == nid)
return ec_group_new_from_data(&curve_list[i]);
}
if (ret == NULL) {
ECerror(EC_R_UNKNOWN_GROUP);
return NULL;
}
EC_GROUP_set_curve_name(ret, nid);
return ret;
ECerror(EC_R_UNKNOWN_GROUP);
return NULL;
}
size_t

View File

@ -1,4 +1,4 @@
.\" $OpenBSD: X509_NAME_get_index_by_NID.3,v 1.13 2022/07/02 17:09:09 jsing Exp $
.\" $OpenBSD: X509_NAME_get_index_by_NID.3,v 1.14 2023/05/02 14:13:05 beck Exp $
.\" OpenSSL aebb9aac Jul 19 09:27:53 2016 -0400
.\"
.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
@ -49,7 +49,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
.\" OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd $Mdocdate: July 2 2022 $
.Dd $Mdocdate: May 2 2023 $
.Dt X509_NAME_GET_INDEX_BY_NID 3
.Os
.Sh NAME
@ -136,22 +136,32 @@ run from 0 to
.Fn X509_NAME_get_text_by_NID
and
.Fn X509_NAME_get_text_by_OBJ
retrieve the "text" from the first entry in
retrieve the bytes encoded as UTF-8 from the first entry in
.Fa name
which matches
.Fa nid
or
.Fa obj .
At most
.Fa len
bytes will be written and the text written to
.Fa buf
will be NUL terminated.
If
.Fa buf
is
.Dv NULL ,
nothing is written, but the return value is calculated as usual.
If
.Fa buf
is not
.Dv NULL ,
no more than
.Fa len
bytes will be written and the text written to
.Fa buf
will be NUL terminated.
.Pp
Nothing is written and it is a failure if
.Fa len
is not large enough to hold the NUL byte terminated UTF-8 encoding of
the text, or if the UTF-8 encoding ot the text would contins a NUL
byte.
.Pp
All relevant
.Dv NID_*
@ -189,8 +199,8 @@ if the index is invalid.
.Fn X509_NAME_get_text_by_NID
and
.Fn X509_NAME_get_text_by_OBJ
return the length of the output string written, not counting the
terminating NUL, or -1 if no match is found.
return the length of the output UTF-8 string written, not counting the
terminating NUL, or -1 in the case of an error or no match being found.
.Pp
In some cases of failure of
.Fn X509_NAME_get_index_by_NID

View File

@ -1,4 +1,4 @@
/* $OpenBSD: pk7_mime.c,v 1.17 2023/04/26 14:25:58 tb Exp $ */
/* $OpenBSD: pk7_mime.c,v 1.19 2023/05/02 09:56:12 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
*/
@ -71,8 +71,7 @@ LCRYPTO_ALIAS(BIO_new_PKCS7);
int
i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags)
{
return i2d_ASN1_bio_stream(out, (ASN1_VALUE *)p7, in, flags,
&PKCS7_it);
return i2d_ASN1_bio_stream(out, (ASN1_VALUE *)p7, in, flags, &PKCS7_it);
}
LCRYPTO_ALIAS(i2d_PKCS7_bio_stream);
@ -87,16 +86,14 @@ LCRYPTO_ALIAS(PEM_write_bio_PKCS7_stream);
int
SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags)
{
STACK_OF(X509_ALGOR) *mdalgs;
int ctype_nid = OBJ_obj2nid(p7->type);
if (ctype_nid == NID_pkcs7_signed)
STACK_OF(X509_ALGOR) *mdalgs = NULL;
int ctype_nid;
if ((ctype_nid = OBJ_obj2nid(p7->type)) == NID_pkcs7_signed)
mdalgs = p7->d.sign->md_algs;
else
mdalgs = NULL;
flags ^= SMIME_OLDMIME;
return SMIME_write_ASN1(bio, (ASN1_VALUE *)p7, data, flags,
ctype_nid, NID_undef, mdalgs, &PKCS7_it);
}

View File

@ -1,4 +1,4 @@
/* $OpenBSD: x509name.c,v 1.31 2023/02/16 08:38:17 tb Exp $ */
/* $OpenBSD: x509name.c,v 1.32 2023/05/02 14:13:05 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@ -66,6 +66,7 @@
#include <openssl/stack.h>
#include <openssl/x509.h>
#include "bytestring.h"
#include "x509_local.h"
int
@ -84,21 +85,37 @@ int
X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, char *buf,
int len)
{
int i;
unsigned char *text = NULL;
ASN1_STRING *data;
int i, text_len;
int ret = -1;
CBS cbs;
i = X509_NAME_get_index_by_OBJ(name, obj, -1);
if (i < 0)
return (-1);
goto err;
data = X509_NAME_ENTRY_get_data(X509_NAME_get_entry(name, i));
i = (data->length > (len - 1)) ? (len - 1) : data->length;
if (buf == NULL)
return (data->length);
if (i >= 0) {
memcpy(buf, data->data, i);
buf[i] = '\0';
/*
* Fail if we cannot encode as UTF-8, or if the UTF-8 encoding of the
* string contains a 0 byte, because mortal callers seldom handle the
* length difference correctly
*/
if ((text_len = ASN1_STRING_to_UTF8(&text, data)) < 0)
goto err;
CBS_init(&cbs, text, text_len);
if (CBS_contains_zero_byte(&cbs))
goto err;
/* We still support the "pass NULL to find out how much" API */
if (buf != NULL) {
if (!CBS_write_bytes(&cbs, buf, len - 1, NULL))
goto err;
/* It must be a C string */
buf[text_len] = '\0';
}
return (i);
ret = text_len;
err:
free(text);
return (ret);
}
LCRYPTO_ALIAS(X509_NAME_get_text_by_OBJ);

View File

@ -35,12 +35,11 @@ The changes made in version 1.2.13.1 are documented in the file ChangeLog.
Unsupported third party contributions are provided in directory contrib/ .
zlib is available in Java using the java.util.zip package, documented at
http://java.sun.com/developer/technicalArticles/Programming/compression/ .
zlib is available in Java using the java.util.zip package. Follow the API
Documentation link at: https://docs.oracle.com/search/?q=java.util.zip .
A Perl interface to zlib written by Paul Marquess <pmqs@cpan.org> is available
at CPAN (Comprehensive Perl Archive Network) sites, including
http://search.cpan.org/~pmqs/IO-Compress-Zlib/ .
A Perl interface to zlib and bzip2 written by Paul Marquess <pmqs@cpan.org>
can be found at https://github.com/pmqs/IO-Compress .
A Python interface to zlib written by A.M. Kuchling <amk@amk.ca> is
available in Python 1.5 and later versions, see

View File

@ -522,7 +522,7 @@ typedef uLong FAR uLongf;
#if !defined(_WIN32) && defined(Z_LARGE64)
# define z_off64_t off64_t
#else
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
# if defined(_WIN32) && !defined(__GNUC__)
# define z_off64_t __int64
# else
# define z_off64_t z_off_t

View File

@ -729,7 +729,7 @@ ZEXTERN int ZEXPORT deflateParams(z_streamp strm,
Then no more input data should be provided before the deflateParams() call.
If this is done, the old level and strategy will be applied to the data
compressed before deflateParams(), and the new level and strategy will be
applied to the the data compressed after deflateParams().
applied to the data compressed after deflateParams().
deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream
state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if

View File

@ -1,4 +1,4 @@
/* $OpenBSD: bio_asn1.c,v 1.3 2023/04/25 19:48:24 tb Exp $ */
/* $OpenBSD: bio_asn1.c,v 1.4 2023/05/02 09:30:37 tb Exp $ */
/*
* Copyright (c) 2023 Theo Buehler <tb@openbsd.org>
@ -125,8 +125,8 @@ test_prefix_leak(void)
if ((bio_out = BIO_new(BIO_s_mem())) == NULL)
goto err;
if (!i2d_ASN1_bio_stream(bio_out, (ASN1_VALUE *)pkcs7, bio_in,
SMIME_STREAM | SMIME_BINARY, &PKCS7_it))
if (!i2d_PKCS7_bio_stream(bio_out, pkcs7, bio_in,
SMIME_STREAM | SMIME_BINARY))
goto err;
if (set_me != 1) {

View File

@ -272,7 +272,7 @@ try_again:
print "D- $line\n" if $verbose;
next;
}
if ($id =~ /^(?:ASN1|BN|X509(?:V3)?)_[FR]_\w+$/) {
if ($id =~ /^(?:ASN1|BIO|BN|X509(?:V3)?)_[FR]_\w+$/) {
print "D- $line\n" if $verbose;
next;
}

View File

@ -1,4 +1,4 @@
/* $OpenBSD: x509_asn1.c,v 1.16 2023/05/01 11:02:23 job Exp $ */
/* $OpenBSD: x509_asn1.c,v 1.17 2023/05/02 14:13:05 beck Exp $ */
/*
* Copyright (c) 2023 Job Snijders <job@openbsd.org>
*
@ -512,13 +512,88 @@ test_x509_req_setters(void)
return failed;
}
int main(void)
static const struct testcase {
char *data;
int len;
int len_to_pass;
int encode_type;
int expected_result;
char *expected_string;
} testCases[] = {
/* should work */
{"fozzie", 6, 80, MBSTRING_ASC, 6, "fozzie"},
/* should work */
{"fozzie", 6, -1, MBSTRING_ASC, 6, ""},
/* should fail, truncation */
{"muppet", 6, 5, MBSTRING_ASC, -1, ""},
/* should fail, contains 0 byte */
{"g\0nzo", 5, 80, MBSTRING_ASC, -1, ""},
/* should fail, can't encode as utf-8 */
{"\x30\x00", 2, 80, V_ASN1_SEQUENCE, -1, ""},
};
#define NUM_TEST_CASES (sizeof(testCases) / sizeof(testCases[0]))
static int
test_x509_name_get(void)
{
int failed = 0;
size_t i;
for (i = 0; i < NUM_TEST_CASES; i++) {
const struct testcase *test = testCases + i;
X509_NAME_ENTRY *entry = NULL;
X509_NAME *name = NULL;
char textbuf[80];
int result;
textbuf[0] = '\0';
if ((name = X509_NAME_new()) == NULL)
err(1, "X509_NAME_new");
if ((entry = X509_NAME_ENTRY_new()) == NULL)
err(1, "X509_NAME_ENTRY_new");
if (!X509_NAME_ENTRY_set_object(entry,
OBJ_nid2obj(NID_commonName)))
err(1, "X509_NAME_ENTRY_set_object");
if (!X509_NAME_ENTRY_set_data(entry, test->encode_type,
test->data, test->len))
err(1, "X509_NAME_ENTRY_set_data");
if (!X509_NAME_add_entry(name, entry, -1, 0))
err(1, "X509_NAME_add_entry");
if (test->len_to_pass == -1)
result = X509_NAME_get_text_by_NID(name, NID_commonName,
NULL, 0);
else
result = X509_NAME_get_text_by_NID(name, NID_commonName,
textbuf, test->len_to_pass);
if (result != test->expected_result) {
fprintf(stderr,
"Test %zu X509_GET_text_by_NID returned %d,"
"expected %d\n", i, result, test->expected_result);
failed++;
}
if (result != -1 &&
strcmp(test->expected_string, textbuf) != 0) {
fprintf(stderr,
"Test %zu, X509_GET_text_by_NID returned bytes do"
"not match \n", i);
failed++;
}
X509_NAME_ENTRY_free(entry);
X509_NAME_free(name);
}
return failed;
}
int
main(void)
{
int failed = 0;
failed |= test_x509_setters();
/* failed |= */ test_x509_crl_setters();
/* failed |= */ test_x509_req_setters();
failed |= test_x509_name_get();
OPENSSL_cleanup();

View File

@ -1,4 +1,4 @@
# $OpenBSD: airport,v 1.89 2023/04/21 00:37:10 kn Exp $
# $OpenBSD: airport,v 1.90 2023/05/02 08:48:06 stsp Exp $
# @(#)airport 8.1 (Berkeley) 6/8/93
#
# Some of this information from the Airport Search Engine at
@ -374,6 +374,7 @@ CPR:Casper/Natrone County International, Wyoming, USA
CPT:Cape Town International, Cape Town, South Africa
CRD:Comodoro Rivadavia, Chubut, Argentina
CRI:Crooked Island, Bahamas
CRL:Brussels South / Gosselies, Charleroi, Belgium
CRM:Charleston (WV) Yeager, South Carolina, USA
CRP:Corpus Christi International, Texas, USA
CRU:Carriacou Island, Grenada

View File

@ -3452,7 +3452,7 @@ struct atom_svid2_voltage_object_v4
struct atom_voltage_object_header_v4 header; // voltage mode = VOLTAGE_OBJ_SVID2
uint8_t loadline_psi1; // bit4:0= loadline setting ( Core Loadline trim and offset trim ), bit5=0:PSI1_L disable =1: PSI1_L enable
uint8_t psi0_l_vid_thresd; // VR PSI0_L VID threshold
uint8_t psi0_enable; //
uint8_t psi0_enable;
uint8_t maxvstep;
uint8_t telemetry_offset;
uint8_t telemetry_gain;

View File

@ -407,7 +407,7 @@ typedef struct _ATOM_ADJUST_MEMORY_CLOCK_FREQ
typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS
{
ULONG ulClock; //When returen, it's the re-calculated clock based on given Fb_div Post_Div and ref_div
ULONG ulClock; //When return, it's the re-calculated clock based on given Fb_div Post_Div and ref_div
UCHAR ucAction; //0:reserved //1:Memory //2:Engine
UCHAR ucReserved; //may expand to return larger Fbdiv later
UCHAR ucFbDiv; //return value
@ -428,14 +428,14 @@ typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V2
#define USE_NON_BUS_CLOCK_MASK 0x01000000 //Applicable to both memory and engine clock change, when set, it uses another clock as the temporary clock (engine uses memory and vice versa)
#define USE_MEMORY_SELF_REFRESH_MASK 0x02000000 //Only applicable to memory clock change, when set, using memory self refresh during clock transition
#define SKIP_INTERNAL_MEMORY_PARAMETER_CHANGE 0x04000000 //Only applicable to memory clock change, when set, the table will skip predefined internal memory parameter change
#define FIRST_TIME_CHANGE_CLOCK 0x08000000 //Applicable to both memory and engine clock change,when set, it means this is 1st time to change clock after ASIC bootup
#define FIRST_TIME_CHANGE_CLOCK 0x08000000 //Applicable to both memory and engine clock change, when set, it means this is 1st time to change clock after ASIC bootup
#define SKIP_SW_PROGRAM_PLL 0x10000000 //Applicable to both memory and engine clock change, when set, it means the table will not program SPLL/MPLL
#define USE_SS_ENABLED_PIXEL_CLOCK USE_NON_BUS_CLOCK_MASK
#define b3USE_NON_BUS_CLOCK_MASK 0x01 //Applicable to both memory and engine clock change, when set, it uses another clock as the temporary clock (engine uses memory and vice versa)
#define b3USE_MEMORY_SELF_REFRESH 0x02 //Only applicable to memory clock change, when set, using memory self refresh during clock transition
#define b3SKIP_INTERNAL_MEMORY_PARAMETER_CHANGE 0x04 //Only applicable to memory clock change, when set, the table will skip predefined internal memory parameter change
#define b3FIRST_TIME_CHANGE_CLOCK 0x08 //Applicable to both memory and engine clock change,when set, it means this is 1st time to change clock after ASIC bootup
#define b3FIRST_TIME_CHANGE_CLOCK 0x08 //Applicable to both memory and engine clock change,i when set, it means this is 1st time to change clock after ASIC bootup
#define b3SKIP_SW_PROGRAM_PLL 0x10 //Applicable to both memory and engine clock change, when set, it means the table will not program SPLL/MPLL
typedef struct _ATOM_COMPUTE_CLOCK_FREQ
@ -1711,9 +1711,9 @@ typedef struct _PIXEL_CLOCK_PARAMETERS_V6
#define PIXEL_CLOCK_V6_MISC_HDMI_BPP_MASK 0x0c
#define PIXEL_CLOCK_V6_MISC_HDMI_24BPP 0x00
#define PIXEL_CLOCK_V6_MISC_HDMI_36BPP 0x04
#define PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6 0x08 //for V6, the correct defintion for 36bpp should be 2 for 36bpp(2:1)
#define PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6 0x08 //for V6, the correct definition for 36bpp should be 2 for 36bpp(2:1)
#define PIXEL_CLOCK_V6_MISC_HDMI_30BPP 0x08
#define PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6 0x04 //for V6, the correct defintion for 30bpp should be 1 for 36bpp(5:4)
#define PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6 0x04 //for V6, the correct definition for 30bpp should be 1 for 36bpp(5:4)
#define PIXEL_CLOCK_V6_MISC_HDMI_48BPP 0x0c
#define PIXEL_CLOCK_V6_MISC_REF_DIV_SRC 0x10
#define PIXEL_CLOCK_V6_MISC_GEN_DPREFCLK 0x40
@ -2221,7 +2221,7 @@ typedef struct _SET_VOLTAGE_PARAMETERS
typedef struct _SET_VOLTAGE_PARAMETERS_V2
{
UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ
UCHAR ucVoltageMode; // Not used, maybe use for state machine for differen power mode
UCHAR ucVoltageMode; // Not used, maybe use for state machine for different power mode
USHORT usVoltageLevel; // real voltage level
}SET_VOLTAGE_PARAMETERS_V2;
@ -2247,7 +2247,7 @@ typedef struct _SET_VOLTAGE_PARAMETERS_V1_3
#define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID, not used for SetVoltage v1.4
#define ATOM_GET_LEAKAGE_ID 8 //Get Leakage Voltage Id ( starting from SMU7x IP ), SetVoltage v1.4
// define vitual voltage id in usVoltageLevel
// define virtual voltage id in usVoltageLevel
#define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01
#define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02
#define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03
@ -2346,7 +2346,7 @@ typedef struct _TV_ENCODER_CONTROL_PS_ALLOCATION
/****************************************************************************/
typedef struct _ATOM_MASTER_LIST_OF_DATA_TABLES
{
USHORT UtilityPipeLine; // Offest for the utility to get parser info,Don't change this position!
USHORT UtilityPipeLine; // Offest for the utility to get parser info, Don't change this position!
USHORT MultimediaCapabilityInfo; // Only used by MM Lib,latest version 1.1, not configuable from Bios, need to include the table to build Bios
USHORT MultimediaConfigInfo; // Only used by MM Lib,latest version 2.1, not configuable from Bios, need to include the table to build Bios
USHORT StandardVESA_Timing; // Only used by Bios
@ -2891,7 +2891,7 @@ ulOtherDisplayMisc: [15:8]- Bootup LCD Expansion selection; 0-center, 1-full pan
ulDDISlot1Config: Describes the PCIE lane configuration on this DDI PCIE slot (ADD2 card) or connector (Mobile design).
[3:0] - Bit vector to indicate PCIE lane config of the DDI slot/connector on chassis (bit 0=1 lane 3:0; bit 1=1 lane 7:4; bit 2=1 lane 11:8; bit 3=1 lane 15:12)
[7:4] - Bit vector to indicate PCIE lane config of the same DDI slot/connector on docking station (bit 4=1 lane 3:0; bit 5=1 lane 7:4; bit 6=1 lane 11:8; bit 7=1 lane 15:12)
When a DDI connector is not "paired" (meaming two connections mutualexclusive on chassis or docking, only one of them can be connected at one time.
When a DDI connector is not "paired" (meaning two connections mutually exclusive on chassis or docking, only one of them can be connected at one time.
in both chassis and docking, SBIOS has to duplicate the same PCIE lane info from chassis to docking or vice versa. For example:
one DDI connector is only populated in docking with PCIE lane 8-11, but there is no paired connection on chassis, SBIOS has to copy bit 6 to bit 2.
@ -3584,7 +3584,7 @@ typedef struct _ATOM_LCD_INFO_V13
//uceDPToLVDSRxId
#define eDP_TO_LVDS_RX_DISABLE 0x00 // no eDP->LVDS translator chip
#define eDP_TO_LVDS_COMMON_ID 0x01 // common eDP->LVDS translator chip without AMD SW init
#define eDP_TO_LVDS_RT_ID 0x02 // RT tanslator which require AMD SW init
#define eDP_TO_LVDS_RT_ID 0x02 // RT translator which require AMD SW init
typedef struct _ATOM_PATCH_RECORD_MODE
{
@ -3825,11 +3825,11 @@ typedef struct _ATOM_DPCD_INFO
// note2: From RV770, the memory is more than 32bit addressable, so we will change
// ucTableFormatRevision=1,ucTableContentRevision=4, the structure remains
// exactly same as 1.1 and 1.2 (1.3 is never in use), but ulStartAddrUsedByFirmware
// (in offset to start of memory address) is KB aligned instead of byte aligend.
// (in offset to start of memory address) is KB aligned instead of byte aligned.
/***********************************************************************************/
// Note3:
/* If we change usReserved to "usFBUsedbyDrvInKB", then to VBIOS this usFBUsedbyDrvInKB is a predefined, unchanged constant across VGA or non VGA adapter,
for CAIL, The size of FB access area is known, only thing missing is the Offset of FB Access area, so we can have:
for CAIL, The size of FB access area is known, only thing missing is the Offset of FB Access area, so we can have:
If (ulStartAddrUsedByFirmware!=0)
FBAccessAreaOffset= ulStartAddrUsedByFirmware - usFBUsedbyDrvInKB;
@ -3942,9 +3942,9 @@ typedef struct _ATOM_GPIO_INFO
#define ATOM_CV_LINE3_ASPECTRATIO_EXIST 0x80 //bit 7
//GPIO bit index in gpio setting per mode value, also represend the block no. in gpio blocks.
#define ATOM_GPIO_INDEX_LINE3_ASPECRATIO_GPIO_A 3 //bit 3 in uc480i/uc480p/uc720p/uc1080i, which represend the default gpio bit setting for the mode.
#define ATOM_GPIO_INDEX_LINE3_ASPECRATIO_GPIO_B 4 //bit 4 in uc480i/uc480p/uc720p/uc1080i, which represend the default gpio bit setting for the mode.
//GPIO bit index in gpio setting per mode value, also represent the block no. in gpio blocks.
#define ATOM_GPIO_INDEX_LINE3_ASPECRATIO_GPIO_A 3 //bit 3 in uc480i/uc480p/uc720p/uc1080i, which represent the default gpio bit setting for the mode.
#define ATOM_GPIO_INDEX_LINE3_ASPECRATIO_GPIO_B 4 //bit 4 in uc480i/uc480p/uc720p/uc1080i, which represent the default gpio bit setting for the mode.
typedef struct _ATOM_COMPONENT_VIDEO_INFO
@ -4020,7 +4020,7 @@ typedef struct _ATOM_DISPLAY_OBJECT_PATH
USHORT usSize; //the size of ATOM_DISPLAY_OBJECT_PATH
USHORT usConnObjectId; //Connector Object ID
USHORT usGPUObjectId; //GPU ID
USHORT usGraphicObjIds[1]; //1st Encoder Obj source from GPU to last Graphic Obj destinate to connector.
USHORT usGraphicObjIds[1]; //1st Encoder Obj source from GPU to last Graphic Obj destinate to connector.
}ATOM_DISPLAY_OBJECT_PATH;
typedef struct _ATOM_DISPLAY_EXTERNAL_OBJECT_PATH
@ -4191,12 +4191,12 @@ typedef struct _ATOM_COMMON_RECORD_HEADER
#define ATOM_ROUTER_DATA_CLOCK_PATH_SELECT_RECORD_TYPE 15
#define ATOM_CONNECTOR_HPDPIN_LUT_RECORD_TYPE 16 //This is for the case when connectors are not known to object table
#define ATOM_CONNECTOR_AUXDDC_LUT_RECORD_TYPE 17 //This is for the case when connectors are not known to object table
#define ATOM_OBJECT_LINK_RECORD_TYPE 18 //Once this record is present under one object, it indicats the oobject is linked to another obj described by the record
#define ATOM_OBJECT_LINK_RECORD_TYPE 18 //Once this record is present under one object, it indicats the object is linked to another obj described by the record
#define ATOM_CONNECTOR_REMOTE_CAP_RECORD_TYPE 19
#define ATOM_ENCODER_CAP_RECORD_TYPE 20
#define ATOM_BRACKET_LAYOUT_RECORD_TYPE 21
//Must be updated when new record type is added,equal to that record definition!
//Must be updated when new record type is added, equal to that record definition!
#define ATOM_MAX_OBJECT_RECORD_NUMBER ATOM_BRACKET_LAYOUT_RECORD_TYPE
typedef struct _ATOM_I2C_RECORD
@ -4611,7 +4611,7 @@ typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3
{
ATOM_VOLTAGE_OBJECT_HEADER_V3 sHeader; // voltage mode = VOLTAGE_OBJ_GPIO_LUT or VOLTAGE_OBJ_PHASE_LUT
UCHAR ucVoltageGpioCntlId; // default is 0 which indicate control through CG VID mode
UCHAR ucGpioEntryNum; // indiate the entry numbers of Votlage/Gpio value Look up table
UCHAR ucGpioEntryNum; // indicate the entry numbers of Voltage/Gpio value Look up table
UCHAR ucPhaseDelay; // phase delay in unit of micro second
UCHAR ucReserved;
ULONG ulGpioMaskVal; // GPIO Mask value
@ -5139,7 +5139,7 @@ usNBP0Voltage: VID for voltage on NB P0 State
usNBP1Voltage: VID for voltage on NB P1 State
usNBP2Voltage: VID for voltage on NB P2 State
usNBP3Voltage: VID for voltage on NB P3 State
usBootUpNBVoltage: Voltage Index of GNB voltage configured by SBIOS, which is suffcient to support VBIOS DISPCLK requirement.
usBootUpNBVoltage: Voltage Index of GNB voltage configured by SBIOS, which is sufficient to support VBIOS DISPCLK requirement.
usExtDispConnInfoOffset: Offset to sExtDispConnInfo inside the structure
usPanelRefreshRateRange: Bit vector for LCD supported refresh rate range. If DRR is requestd by the platform, at least two bits need to be set
to indicate a range.
@ -5152,9 +5152,9 @@ ucUMAChannelNumber: System memory channel numbers.
ulCSR_M3_ARB_CNTL_DEFAULT[10]: Arrays with values for CSR M3 arbiter for default
ulCSR_M3_ARB_CNTL_UVD[10]: Arrays with values for CSR M3 arbiter for UVD playback.
ulCSR_M3_ARB_CNTL_FS3D[10]: Arrays with values for CSR M3 arbiter for Full Screen 3D applications.
sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high
sAvail_SCLK[5]: Arrays to provide available list of SLCK and corresponding voltage, order from low to high
ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns.
ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calcualte data reconnection latency. Unit in 10kHz.
ulMinimumNClk: Minimum NCLK speed among all NB-Pstates to calculate data reconnection latency. Unit in 10kHz.
ulIdleNClk: NCLK speed while memory runs in self-refresh state. Unit in 10kHz.
ulDDR_DLL_PowerUpTime: DDR PHY DLL power up time. Unit in ns.
ulDDR_PLL_PowerUpTime: DDR PHY PLL power up time. Unit in ns.
@ -5206,7 +5206,7 @@ ucLVDSPwrOffSeqBLONtoVARY_BL_in4Ms:
ucMinAllowedBL_Level: Lowest LCD backlight PWM level. This is customer platform specific parameters. By default it is 0.
ulNbpStateMemclkFreq[4]: system memory clock frequncey in unit of 10Khz in different NB pstate.
ulNbpStateMemclkFreq[4]: system memory clock frequency in unit of 10Khz in different NB pstate.
**********************************************************************************************************************/
@ -5312,7 +5312,7 @@ usRequestedPWMFreqInHz: When it's set to 0x0 by SBIOS: the LCD BackLig
Any attempt to change BL using VBIOS function or enable VariBri from PP table is not effective since ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==0;
When it's set to a non-zero frequency, the BackLight is controlled by GPU (SW) in one of two ways below:
1. SW uses the GPU BL PWM output to control the BL, in chis case, this non-zero frequency determines what freq GPU should use;
1. SW uses the GPU BL PWM output to control the BL, in this case, this non-zero frequency determines what freq GPU should use;
VBIOS will set up proper PWM frequency and ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU==1,as the result,
Changing BL using VBIOS function is functional in both driver and non-driver present environment;
and enabling VariBri under the driver environment from PP table is optional.
@ -5326,7 +5326,7 @@ usRequestedPWMFreqInHz: When it's set to 0x0 by SBIOS: the LCD BackLig
ucHtcTmpLmt: Refer to D18F3x64 bit[22:16], HtcTmpLmt. Threshold on value to enter HTC_active state.
ucHtcHystLmt: Refer to D18F3x64 bit[27:24], HtcHystLmt.
To calculate threshold off value to exit HTC_active state, which is Threshold on vlaue minus ucHtcHystLmt.
To calculate threshold off value to exit HTC_active state, which is Threshold on value minus ucHtcHystLmt.
ulSystemConfig: Bit[0]=0: PCIE Power Gating Disabled
=1: PCIE Power Gating Enabled
@ -5339,7 +5339,7 @@ ulSystemConfig: Bit[0]=0: PCIE Power Gating Disabled
ulCPUCapInfo: TBD
usExtDispConnInfoOffset: Offset to sExtDispConnInfo inside the structure
usPanelRefreshRateRange: Bit vector for LCD supported refresh rate range. If DRR is requestd by the platform, at least two bits need to be set
usPanelRefreshRateRange: Bit vector for LCD supported refresh rate range. If DRR is requested by the platform, at least two bits need to be set
to indicate a range.
SUPPORTED_LCD_REFRESHRATE_30Hz 0x0004
SUPPORTED_LCD_REFRESHRATE_40Hz 0x0008
@ -5351,7 +5351,7 @@ ucUMAChannelNumber: System memory channel numbers.
strVBIOSMsg[40]: VBIOS boot up customized message string
sAvail_SCLK[5]: Arrays to provide availabe list of SLCK and corresponding voltage, order from low to high
sAvail_SCLK[5]: Arrays to provide available list of SLCK and corresponding voltage, order from low to high
ulGMCRestoreResetTime: GMC power restore and GMC reset time to calculate data reconnection latency. Unit in ns.
ulIdleNClk: NCLK speed while memory runs in self-refresh state, used to calculate self-refresh latency. Unit in 10kHz.
@ -5993,7 +5993,7 @@ typedef struct _ATOM_ASIC_INTERNAL_SS_INFO_V3
#define GET_DATA_TABLE_MINOR_REVISION GET_COMMAND_TABLE_PARAMETER_REVISION
/****************************************************************************/
//Portion III: Definitinos only used in VBIOS
//Portion III: Definitions only used in VBIOS
/****************************************************************************/
#define ATOM_DAC_SRC 0x80
#define ATOM_SRC_DAC1 0
@ -6396,7 +6396,7 @@ typedef struct _ATOM_VRAM_MODULE_V1
USHORT usReserved;
UCHAR ucExtMemoryID; // An external indicator (by hardcode, callback or pin) to tell what is the current memory module
UCHAR ucMemoryType; // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4;[3:0] reserved;
UCHAR ucMemoryVenderID; // Predefined,never change across designs or memory type/vender
UCHAR ucMemoryVenderID; // Predefined,never change across designs or memory type/vendor
UCHAR ucMemoryDeviceCfg; // [7:4]=0x0:4M;=0x1:8M;=0x2:16M;0x3:32M....[3:0]=0x0:x4;=0x1:x8;=0x2:x16;=0x3:x32...
UCHAR ucRow; // Number of Row,in power of 2;
UCHAR ucColumn; // Number of Column,in power of 2;
@ -6423,7 +6423,7 @@ typedef struct _ATOM_VRAM_MODULE_V2
USHORT usReserved;
UCHAR ucExtMemoryID; // An external indicator (by hardcode, callback or pin) to tell what is the current memory module
UCHAR ucMemoryType; // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4;[3:0] - must not be used for now;
UCHAR ucMemoryVenderID; // Predefined,never change across designs or memory type/vender. If not predefined, vendor detection table gets executed
UCHAR ucMemoryVenderID; // Predefined,never change across designs or memory type/vendor. If not predefined, vendor detection table gets executed
UCHAR ucMemoryDeviceCfg; // [7:4]=0x0:4M;=0x1:8M;=0x2:16M;0x3:32M....[3:0]=0x0:x4;=0x1:x8;=0x2:x16;=0x3:x32...
UCHAR ucRow; // Number of Row,in power of 2;
UCHAR ucColumn; // Number of Column,in power of 2;
@ -6555,7 +6555,7 @@ typedef struct _ATOM_MEMORY_FORMAT
USHORT usDDR3_MR3; // Used for DDR3 memory
};
UCHAR ucMemoryType; // [7:4]=0x1:DDR1;=0x2:DDR2;=0x3:DDR3;=0x4:DDR4;[3:0] - must not be used for now;
UCHAR ucMemoryVenderID; // Predefined,never change across designs or memory type/vender. If not predefined, vendor detection table gets executed
UCHAR ucMemoryVenderID; // Predefined,never change across designs or memory type/vendor. If not predefined, vendor detection table gets executed
UCHAR ucRow; // Number of Row,in power of 2;
UCHAR ucColumn; // Number of Column,in power of 2;
UCHAR ucBank; // Nunber of Bank;
@ -6565,7 +6565,7 @@ typedef struct _ATOM_MEMORY_FORMAT
UCHAR ucRefreshRateFactor; // memory refresh rate in unit of ms
UCHAR ucDensity; // _8Mx32, _16Mx32, _16Mx16, _32Mx16
UCHAR ucPreamble; //[7:4] Write Preamble, [3:0] Read Preamble
UCHAR ucMemAttrib; // Memory Device Addribute, like RDBI/WDBI etc
UCHAR ucMemAttrib; // Memory Device Attribute, like RDBI/WDBI etc
ATOM_MEMORY_TIMING_FORMAT asMemTiming[5]; //Memory Timing block sort from lower clock to higher clock
}ATOM_MEMORY_FORMAT;
@ -6579,7 +6579,7 @@ typedef struct _ATOM_VRAM_MODULE_V3
UCHAR ucExtMemoryID; // An external indicator (by hardcode, callback or pin) to tell what is the current memory module
UCHAR ucChannelNum; // board dependent parameter:Number of channel;
UCHAR ucChannelSize; // board dependent parameter:32bit or 64bit
UCHAR ucVREFI; // board dependnt parameter: EXT or INT +160mv to -140mv
UCHAR ucVREFI; // board dependent parameter: EXT or INT +160mv to -140mv
UCHAR ucNPL_RT; // board dependent parameter:NPL round trip delay, used for calculate memory timing parameters
UCHAR ucFlag; // To enable/disable functionalities based on memory type
ATOM_MEMORY_FORMAT asMemory; // describ all of video memory parameters from memory spec
@ -7092,7 +7092,7 @@ typedef struct _ATOM_DISP_OUT_INFO_V3
UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE
UCHAR ucDispCaps;
UCHAR ucReserved[2];
ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only
ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alignment only
}ATOM_DISP_OUT_INFO_V3;
//ucDispCaps
@ -7382,7 +7382,7 @@ typedef struct _GFX_HAVESTING_PARAMETERS {
#define GFX_HARVESTING_PRIM_ID 2
/****************************************************************************/
//Portion VI: Definitinos for vbios MC scratch registers that driver used
//Portion VI: Definitions for vbios MC scratch registers that driver used
/****************************************************************************/
#define MC_MISC0__MEMORY_TYPE_MASK 0xF0000000
@ -7403,7 +7403,7 @@ typedef struct _GFX_HAVESTING_PARAMETERS {
#define ATOM_MEM_TYPE_DDR3_STRING "DDR3"
/****************************************************************************/
//Portion VI: Definitinos being oboselete
//Portion VI: Definitions being obsolete
/****************************************************************************/
//==========================================================================================
@ -7597,7 +7597,7 @@ typedef struct _ATOM_XTMDS_INFO
ATOM_I2C_ID_CONFIG_ACCESS sucI2cId; //Point the ID on which I2C is used to control external chip
UCHAR ucXtransimitterID;
UCHAR ucSupportedLink; // Bit field, bit0=1, single link supported;bit1=1,dual link supported
UCHAR ucSequnceAlterID; // Even with the same external TMDS asic, it's possible that the program seqence alters
UCHAR ucSequnceAlterID; // Even with the same external TMDS asic, it's possible that the program sequence alters
// due to design. This ID is used to alert driver that the sequence is not "standard"!
UCHAR ucMasterAddress; // Address to control Master xTMDS Chip
UCHAR ucSlaveAddress; // Address to control Slave xTMDS Chip
@ -7705,12 +7705,12 @@ typedef struct _ATOM_POWERMODE_INFO_V3
ULONG ulMiscInfo2;
ULONG ulEngineClock;
ULONG ulMemoryClock;
UCHAR ucVoltageDropIndex; // index to Core (VDDC) votage table
UCHAR ucVoltageDropIndex; // index to Core (VDDC) voltage table
UCHAR ucSelectedPanel_RefreshRate;// panel refresh rate
UCHAR ucMinTemperature;
UCHAR ucMaxTemperature;
UCHAR ucNumPciELanes; // number of PCIE lanes
UCHAR ucVDDCI_VoltageDropIndex; // index to VDDCI votage table
UCHAR ucVDDCI_VoltageDropIndex; // index to VDDCI voltage table
}ATOM_POWERMODE_INFO_V3;

View File

@ -1,4 +1,4 @@
/* $OpenBSD: if_aq_pci.c,v 1.21 2023/05/01 08:25:55 kettenis Exp $ */
/* $OpenBSD: if_aq_pci.c,v 1.22 2023/05/02 12:32:22 kettenis Exp $ */
/* $NetBSD: if_aq.c,v 1.27 2021/06/16 00:21:18 riastradh Exp $ */
/*
@ -1970,7 +1970,7 @@ aq2_fw_reboot(struct aq_softc *sc)
snprintf(buf, sizeof(buf), "(unknown 0x%08x)", v);
break;
}
printf(", Atlantic2 %s, F/W version %d.%d.%d\n", buf,
printf(", Atlantic2 %s, F/W version %d.%d.%d", buf,
FW_VERSION_MAJOR(sc), FW_VERSION_MINOR(sc), FW_VERSION_BUILD(sc));
aq2_interface_buffer_read(sc, AQ2_FW_INTERFACE_OUT_FILTER_CAPS_REG,

View File

@ -526,7 +526,7 @@ typedef uLong FAR uLongf;
#if !defined(_WIN32) && defined(Z_LARGE64)
# define z_off64_t off64_t
#else
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
# if defined(_WIN32) && !defined(__GNUC__)
# define z_off64_t __int64
# else
# define z_off64_t z_off_t

View File

@ -729,7 +729,7 @@ ZEXTERN int ZEXPORT deflateParams(z_streamp strm,
Then no more input data should be provided before the deflateParams() call.
If this is done, the old level and strategy will be applied to the data
compressed before deflateParams(), and the new level and strategy will be
applied to the the data compressed after deflateParams().
applied to the data compressed after deflateParams().
deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream
state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if

View File

@ -1,4 +1,4 @@
/* $OpenBSD: nd6.c,v 1.272 2023/04/05 23:01:03 kn Exp $ */
/* $OpenBSD: nd6.c,v 1.273 2023/05/02 06:06:13 bluhm Exp $ */
/* $KAME: nd6.c,v 1.280 2002/06/08 19:52:07 itojun Exp $ */
/*
@ -303,7 +303,8 @@ nd6_llinfo_timer(struct rtentry *rt)
if (ln->ln_asked < nd6_mmaxtries) {
ln->ln_asked++;
nd6_llinfo_settimer(ln, RETRANS_TIMER / 1000);
nd6_ns_output(ifp, NULL, &dst->sin6_addr, ln, 0);
nd6_ns_output(ifp, NULL, &dst->sin6_addr,
&ln->ln_saddr6, 0);
} else {
struct mbuf_list ml;
struct mbuf *m;
@ -336,6 +337,7 @@ nd6_llinfo_timer(struct rtentry *rt)
ln = NULL;
}
break;
case ND6_LLINFO_REACHABLE:
if (!ND6_LLINFO_PERMANENT(ln)) {
ln->ln_state = ND6_LLINFO_STALE;
@ -357,14 +359,16 @@ nd6_llinfo_timer(struct rtentry *rt)
ln->ln_asked = 1;
ln->ln_state = ND6_LLINFO_PROBE;
nd6_llinfo_settimer(ln, RETRANS_TIMER / 1000);
nd6_ns_output(ifp, &dst->sin6_addr, &dst->sin6_addr, ln, 0);
nd6_ns_output(ifp, &dst->sin6_addr, &dst->sin6_addr,
&ln->ln_saddr6, 0);
break;
case ND6_LLINFO_PROBE:
if (ln->ln_asked < nd6_umaxtries) {
ln->ln_asked++;
nd6_llinfo_settimer(ln, RETRANS_TIMER / 1000);
nd6_ns_output(ifp, &dst->sin6_addr,
&dst->sin6_addr, ln, 0);
nd6_ns_output(ifp, &dst->sin6_addr, &dst->sin6_addr,
&ln->ln_saddr6, 0);
} else {
nd6_free(rt);
ln = NULL;
@ -1247,7 +1251,9 @@ nd6_resolve(struct ifnet *ifp, struct rtentry *rt0, struct mbuf *m,
struct sockaddr_dl *sdl;
struct rtentry *rt;
struct llinfo_nd6 *ln = NULL;
struct in6_addr saddr6;
time_t uptime;
int solicit = 0;
if (m->m_flags & M_MCAST) {
ETHER_MAP_IPV6_MULTICAST(&satosin6(dst)->sin6_addr, desten);
@ -1357,9 +1363,13 @@ nd6_resolve(struct ifnet *ifp, struct rtentry *rt0, struct mbuf *m,
if (!ND6_LLINFO_PERMANENT(ln) && ln->ln_asked == 0) {
ln->ln_asked++;
nd6_llinfo_settimer(ln, RETRANS_TIMER / 1000);
nd6_ns_output(ifp, NULL, &satosin6(dst)->sin6_addr, ln, 0);
saddr6 = ln->ln_saddr6;
solicit = 1;
}
KERNEL_UNLOCK();
if (solicit)
nd6_ns_output(ifp, NULL, &satosin6(dst)->sin6_addr, &saddr6, 0);
return (EAGAIN);
bad:

View File

@ -1,4 +1,4 @@
/* $OpenBSD: nd6.h,v 1.97 2023/04/05 21:51:47 bluhm Exp $ */
/* $OpenBSD: nd6.h,v 1.98 2023/05/02 06:06:13 bluhm Exp $ */
/* $KAME: nd6.h,v 1.95 2002/06/08 11:31:06 itojun Exp $ */
/*
@ -141,7 +141,7 @@ void nd6_na_output(struct ifnet *, const struct in6_addr *,
const struct in6_addr *, u_long, int, struct sockaddr *);
void nd6_ns_input(struct mbuf *, int, int);
void nd6_ns_output(struct ifnet *, const struct in6_addr *,
const struct in6_addr *, const struct llinfo_nd6 *, int);
const struct in6_addr *, const struct in6_addr *, int);
caddr_t nd6_ifptomac(struct ifnet *);
void nd6_dad_start(struct ifaddr *);
void nd6_dad_stop(struct ifaddr *);

View File

@ -1,4 +1,4 @@
/* $OpenBSD: nd6_nbr.c,v 1.146 2023/04/28 14:09:06 phessler Exp $ */
/* $OpenBSD: nd6_nbr.c,v 1.147 2023/05/02 06:06:13 bluhm Exp $ */
/* $KAME: nd6_nbr.c,v 1.61 2001/02/10 16:06:14 jinmei Exp $ */
/*
@ -360,7 +360,7 @@ nd6_ns_input(struct mbuf *m, int off, int icmp6len)
*/
void
nd6_ns_output(struct ifnet *ifp, const struct in6_addr *daddr6,
const struct in6_addr *taddr6, const struct llinfo_nd6 *ln, int dad)
const struct in6_addr *taddr6, const struct in6_addr *saddr6, int dad)
{
struct mbuf *m;
struct ip6_hdr *ip6;
@ -423,7 +423,7 @@ nd6_ns_output(struct ifnet *ifp, const struct in6_addr *daddr6,
bzero(&dst_sa, sizeof(dst_sa));
src_sa.sin6_family = dst_sa.sin6_family = AF_INET6;
src_sa.sin6_len = dst_sa.sin6_len = sizeof(struct sockaddr_in6);
if (daddr6)
if (daddr6 != NULL)
dst_sa.sin6_addr = *daddr6;
else {
dst_sa.sin6_addr.s6_addr16[0] = __IPV6_ADDR_INT16_MLL;
@ -451,14 +451,13 @@ nd6_ns_output(struct ifnet *ifp, const struct in6_addr *daddr6,
* - if taddr is link local saddr6 must be link local as well
* Otherwise, we perform the source address selection as usual.
*/
if (ln != NULL)
src_sa.sin6_addr = ln->ln_saddr6;
if (saddr6 != NULL)
src_sa.sin6_addr = *saddr6;
if (!IN6_IS_ADDR_LINKLOCAL(taddr6) ||
IN6_IS_ADDR_UNSPECIFIED(&src_sa.sin6_addr) ||
IN6_IS_ADDR_LINKLOCAL(&src_sa.sin6_addr) ||
!in6ifa_ifpwithaddr(ifp, &src_sa.sin6_addr)) {
struct rtentry *rt;
rt = rtalloc(sin6tosa(&dst_sa), RT_RESOLVE,

View File

@ -1,4 +1,4 @@
/* $OpenBSD: ttymsg.c,v 1.20 2021/10/24 21:24:17 deraadt Exp $ */
/* $OpenBSD: ttymsg.c,v 1.21 2023/05/02 09:51:22 tb Exp $ */
/* $NetBSD: ttymsg.c,v 1.3 1994/11/17 07:17:55 jtc Exp $ */
/*
@ -54,11 +54,7 @@ char *ttymsg(struct iovec *, int, char *, int);
* ignored (exclusive-use, lack of permission, etc.).
*/
char *
ttymsg(iov, iovcnt, line, tmout)
struct iovec *iov;
int iovcnt;
char *line;
int tmout;
ttymsg(struct iovec *iov, int iovcnt, char *line, int tmout)
{
static char device[MAXNAMLEN] = _PATH_DEV;
static char errbuf[1024];

View File

@ -1,4 +1,4 @@
/* $OpenBSD: vmctl.c,v 1.87 2023/04/28 19:46:41 dv Exp $ */
/* $OpenBSD: vmctl.c,v 1.88 2023/05/02 13:02:51 jsg Exp $ */
/*
* Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org>
@ -202,7 +202,7 @@ vm_start(uint32_t start_id, const char *name, size_t memsize, int nnics,
imsg_compose(ibuf, IMSG_VMDOP_START_VM_REQUEST, 0, 0, vmc->vmc_kernel,
vmc, sizeof(struct vmop_create_params));
free(vcp);
free(vmc);
return (0);
}